Protection enabled.Protection enabled."use strict";
(self["webpackChunkelementor_pro_notes"] = self["webpackChunkelementor_pro_notes"] || []).push([["notes-app"],{
/***/ "../assets/js/app/app.js":
/*!*******************************!*\
!*** ../assets/js/app/app.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ App)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _components_marks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/marks */ "../assets/js/app/components/marks.js");
/* harmony import */ var _components_panel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/panel */ "../assets/js/app/components/panel.js");
/* harmony import */ var _query_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./query-client */ "../assets/js/app/query-client.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/es/index.js");
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony import */ var react_query_devtools__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-query/devtools */ "../../../node_modules/react-query/devtools/index.js");
/* harmony import */ var _context_elements__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./context/elements */ "../assets/js/app/context/elements.js");
/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-toast */ "../../../node_modules/@radix-ui/react-toast/dist/index.module.js");
/* harmony import */ var _components_ui_toast_toast_viewport__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/ui/toast/toast-viewport */ "../assets/js/app/components/ui/toast/toast-viewport.js");
const store = window.top.$e.store.getReduxStore();
function App() {
const {
is_debug: isDebug
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_4__["default"])(),
Wrapper = isDebug ? (react__WEBPACK_IMPORTED_MODULE_0___default().StrictMode) : (react__WEBPACK_IMPORTED_MODULE_0___default().Fragment);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Wrapper, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("link", {
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_redux__WEBPACK_IMPORTED_MODULE_5__.Provider, {
store: store
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_context_elements__WEBPACK_IMPORTED_MODULE_8__.ElementsProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_10__.ToastProvider, {
duration: Infinity
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_toast_toast_viewport__WEBPACK_IMPORTED_MODULE_9__["default"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_query__WEBPACK_IMPORTED_MODULE_6__.QueryClientProvider, {
client: _query_client__WEBPACK_IMPORTED_MODULE_3__["default"]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_marks__WEBPACK_IMPORTED_MODULE_1__["default"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_panel__WEBPACK_IMPORTED_MODULE_2__["default"], null), isDebug && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_query_devtools__WEBPACK_IMPORTED_MODULE_7__.ReactQueryDevtools, {
initialIsOpen: false
}))))));
}
/***/ }),
/***/ "../assets/js/app/components/marks-edit-note-form.js":
/*!***********************************************************!*\
!*** ../assets/js/app/components/marks-edit-note-form.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksEditNoteForm)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/button */ "../assets/js/app/components/ui/button.js");
/* harmony import */ var _hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/use-notes-mutations */ "../assets/js/app/hooks/use-notes-mutations.js");
/* harmony import */ var _marks_note_textarea__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./marks-note-textarea */ "../assets/js/app/components/marks-note-textarea.js");
/* harmony import */ var _shared_note_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/note-form */ "../assets/js/app/components/shared/note-form.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var _hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/use-forms-in-writing-mode */ "../assets/js/app/hooks/use-forms-in-writing-mode.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
/* harmony import */ var _hooks_use_reverse_html_entities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-reverse-html-entities */ "../assets/js/app/hooks/use-reverse-html-entities.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function MarksEditNoteForm(props) {
const formId = `e-notes-edit-${props.note.id}`;
const noteContent = (0,_hooks_use_reverse_html_entities__WEBPACK_IMPORTED_MODULE_8__.useReverseHtmlEntities)(props.note.content);
const updateMutation = (0,_hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__.useUpdateMutation)(),
{
isInWritingMode
} = (0,_hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_6__["default"])();
const onSubmit = async (e, {
content,
form
}) => {
window.top.$e.run('notes/edit', {
noteId: props.note.id
});
await updateMutation.mutateAsync({
id: props.note.id,
values: {
content
}
});
form.reset();
props.onClose();
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
onSubmit: onSubmit,
id: formId
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_textarea__WEBPACK_IMPORTED_MODULE_3__["default"], {
disabled: updateMutation.isLoading,
defaultValue: noteContent,
onMetaAndEnterKeyDown: e => (0,_utils__WEBPACK_IMPORTED_MODULE_7__.submitForm)(e.currentTarget.form),
isReply: props.note.isReply()
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_form__WEBPACK_IMPORTED_MODULE_4__["default"].ButtonsContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
disabled: updateMutation.isLoading || !isInWritingMode(formId),
type: "submit"
}, __('Save', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
disabled: updateMutation.isLoading,
variant: 'outlined',
type: "reset",
onClick: e => {
window.top.$e.run('notes/cancel-edit', {
noteId: props.note.id
});
e.target.form.reset();
props.onClose(e);
}
}, __('Cancel', 'elementor-pro'))));
}
MarksEditNoteForm.propTypes = {
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_5__["default"]).isRequired,
onClose: PropTypes.func.isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-element-portal.js":
/*!***********************************************************!*\
!*** ../assets/js/app/components/marks-element-portal.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksElementPortal)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-portal */ "../../../node_modules/@radix-ui/react-portal/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _context_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../context/elements */ "../assets/js/app/context/elements.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledPortal = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_3__.Portal)).withConfig({
shouldForwardProp: prop => 'position' !== prop
})`
all: revert;
position: absolute;
z-index: 98; // One under sticky elements & wp-admin-bar.
top: ${({
position
}) => position?.y || 0}%;
left: ${({
position
}) => position?.x || 0}%;
transform: translate( -25%, -100% );
`;
function MarksElementPortal(props) {
const {
elements
} = (0,_context_elements__WEBPACK_IMPORTED_MODULE_1__.useElements)();
const ref = {
current: elements.get(props.elementId)
};
// Don't render marker of a non-existing element.
if (!ref.current) {
return null;
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledPortal, {
containerRef: ref,
"data-e-notes-portal": true,
position: props.position
}, props.children);
}
MarksElementPortal.propTypes = {
elementId: PropTypes.string.isRequired,
position: PropTypes.shape({
x: PropTypes.number.isRequired,
y: PropTypes.number.isRequired
}),
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)])
};
/***/ }),
/***/ "../assets/js/app/components/marks-new-thread-form.js":
/*!************************************************************!*\
!*** ../assets/js/app/components/marks-new-thread-form.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNewThreadForm)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/button */ "../assets/js/app/components/ui/button.js");
/* harmony import */ var _hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/use-notes-mutations */ "../assets/js/app/hooks/use-notes-mutations.js");
/* harmony import */ var _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-active-thread */ "../assets/js/app/hooks/use-active-thread.js");
/* harmony import */ var _marks_note_textarea__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./marks-note-textarea */ "../assets/js/app/components/marks-note-textarea.js");
/* harmony import */ var _shared_note_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shared/note-form */ "../assets/js/app/components/shared/note-form.js");
/* harmony import */ var _hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/use-forms-in-writing-mode */ "../assets/js/app/hooks/use-forms-in-writing-mode.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const formId = 'e-notes-new-thread';
function MarksNewThreadForm(props) {
const {
clearActive,
setActive
} = (0,_hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__["default"])(),
createMutation = (0,_hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__.useCreateMutation)(),
{
isInWritingMode
} = (0,_hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_6__["default"])();
const onSubmit = async (e, {
content,
form
}) => {
window.top.$e.run('notes/create');
const createdThread = await createMutation.mutateAsync({
elementId: props.elementId,
parentId: 0,
content,
position: props.position
});
form.reset();
setActive({
type: _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__.THREAD,
data: {
noteId: createdThread.id
}
});
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
onSubmit: onSubmit,
id: formId
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_textarea__WEBPACK_IMPORTED_MODULE_4__["default"], {
disabled: createMutation.isLoading,
onMetaAndEnterKeyDown: e => (0,_utils__WEBPACK_IMPORTED_MODULE_7__.submitForm)(e.currentTarget.form)
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_form__WEBPACK_IMPORTED_MODULE_5__["default"].ButtonsContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
disabled: createMutation.isLoading || !isInWritingMode(formId),
type: "submit"
}, __('Leave a Note', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
disabled: createMutation.isLoading,
variant: 'outlined',
type: "reset",
onClick: e => {
window.top.$e.run('notes/cancel-create');
e.target.form.reset();
clearActive();
}
}, __('Cancel', 'elementor-pro'))));
}
MarksNewThreadForm.propTypes = {
elementId: PropTypes.string.isRequired,
position: PropTypes.shape({
x: PropTypes.number.isRequired,
y: PropTypes.number.isRequired
})
};
/***/ }),
/***/ "../assets/js/app/components/marks-new-thread.js":
/*!*******************************************************!*\
!*** ../assets/js/app/components/marks-new-thread.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNewThread)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/button */ "../assets/js/app/components/ui/button.js");
/* harmony import */ var _ui_marker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/marker */ "../assets/js/app/components/ui/marker.js");
/* harmony import */ var _ui_popover_popover__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/popover/popover */ "../assets/js/app/components/ui/popover/popover.js");
/* harmony import */ var _marks_new_thread_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./marks-new-thread-form */ "../assets/js/app/components/marks-new-thread-form.js");
/* harmony import */ var _hooks_use_scroll_into_view__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/use-scroll-into-view */ "../assets/js/app/hooks/use-scroll-into-view.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _shared_note_popover_content__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shared/note-popover-content */ "../assets/js/app/components/shared/note-popover-content.js");
/* harmony import */ var _marks_element_portal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./marks-element-portal */ "../assets/js/app/components/marks-element-portal.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_6__["default"]))`
display: flex !important;
flex-direction: column !important;
gap: 28px !important;
padding: 20px 16px !important;
width: 360px !important;
border-radius: 4px !important;
`;
function MarksNewThread(props) {
const ref = (0,_hooks_use_scroll_into_view__WEBPACK_IMPORTED_MODULE_5__["default"])();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_element_portal__WEBPACK_IMPORTED_MODULE_8__["default"], {
elementId: props.elementId,
position: props.position
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_3__["default"], {
defaultOpen: true,
onOpenChange: props.onOpenChange
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_3__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
variant: 'transparent',
ref: ref
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_marker__WEBPACK_IMPORTED_MODULE_2__["default"], {
variant: "active",
size: "md"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_popover_content__WEBPACK_IMPORTED_MODULE_7__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_new_thread_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
elementId: props.elementId,
position: props.position
})))));
}
MarksNewThread.propTypes = {
elementId: PropTypes.string.isRequired,
position: PropTypes.shape({
x: PropTypes.number.isRequired,
y: PropTypes.number.isRequired
}),
onOpenChange: PropTypes.func.isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-actions-delete-dialog.js":
/*!***********************************************************************!*\
!*** ../assets/js/app/components/marks-note-actions-delete-dialog.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteActionsDeleteDialog)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/alert-dialog/alert-dialog */ "../assets/js/app/components/ui/alert-dialog/alert-dialog.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var _hooks_use_watch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-watch */ "../assets/js/app/hooks/use-watch.js");
/* harmony import */ var _hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/use-notes-mutations */ "../assets/js/app/hooks/use-notes-mutations.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function MarksNoteActionsDeleteDialog(props) {
const deleteMutation = (0,_hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_4__.useDeleteMutation)();
(0,_hooks_use_watch__WEBPACK_IMPORTED_MODULE_3__["default"])(() => {
if (props.onLoadingChange) {
props.onLoadingChange(deleteMutation.isLoading);
}
}, [deleteMutation.isLoading]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
open: props.isOpen,
onOpenChange: props.onOpenChange
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"].Content, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"].DescriptionContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"].Title, null, props.note.isReply() ? __('Delete this reply?', 'elementor-pro') : __('Delete this note?', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"].Description, null, props.note.isReply() ? __('Deleted replies can\'t be recovered.', 'elementor-pro') : __('Deleted notes can\'t be recovered.', 'elementor-pro'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"].ActionsContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"].Cancel, null, __('Cancel', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_alert_dialog_alert_dialog__WEBPACK_IMPORTED_MODULE_1__["default"].Action, {
onClick: () => {
window.top.$e.run('notes/delete', {
noteId: props.note.id
});
deleteMutation.mutateAsync({
id: props.note.id,
parentId: props.note.parentId,
force: true
});
}
}, __('Delete', 'elementor-pro')))));
}
MarksNoteActionsDeleteDialog.propTypes = {
isOpen: PropTypes.bool.isRequired,
onOpenChange: PropTypes.func.isRequired,
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_2__["default"]),
onLoadingChange: PropTypes.func
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-actions-read.js":
/*!**************************************************************!*\
!*** ../assets/js/app/components/marks-note-actions-read.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteActionsRead)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/dropdown/dropdown */ "../assets/js/app/components/ui/dropdown/dropdown.js");
/* harmony import */ var _hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/use-notes-mutations */ "../assets/js/app/hooks/use-notes-mutations.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function MarksNoteActionsRead(props) {
const alreadyRead = props.note.isRead,
readMutation = (0,_hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__.useReadMutation)();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Item, {
icon: "eicon-envelope",
disabled: readMutation.isLoading,
onSelect: () => readMutation.mutateAsync({
ids: [props.note.id, props.note.parentId],
isRead: !alreadyRead
})
}, alreadyRead ? __('Mark as unread', 'elementor-pro') : __('Mark as read', 'elementor-pro'));
}
MarksNoteActionsRead.propTypes = {
note: PropTypes.shape({
id: PropTypes.number,
parentId: PropTypes.number,
isRead: PropTypes.bool
}).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-actions-resolve.js":
/*!*****************************************************************!*\
!*** ../assets/js/app/components/marks-note-actions-resolve.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteActionsResolve)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/icon-button/icon-button */ "../assets/js/app/components/ui/icon-button/icon-button.js");
/* harmony import */ var _components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/ui/tooltip/tooltip */ "../assets/js/app/components/ui/tooltip/tooltip.js");
/* harmony import */ var _hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-notes-mutations */ "../assets/js/app/hooks/use-notes-mutations.js");
/* harmony import */ var _hooks_use_watch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/use-watch */ "../assets/js/app/hooks/use-watch.js");
/* harmony import */ var _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/use-active-thread */ "../assets/js/app/hooks/use-active-thread.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function MarksNoteActionsResolve(props) {
const alreadyResolved = props.note.isResolved,
resolveMutation = (0,_hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_3__.useResolveMutation)(),
{
clearActive
} = (0,_hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_5__["default"])();
(0,_hooks_use_watch__WEBPACK_IMPORTED_MODULE_4__["default"])(() => {
if (props.onLoadingChange) {
props.onLoadingChange(resolveMutation.isLoading);
}
}, [resolveMutation.isLoading]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
name: alreadyResolved ? 'eicon-check-circle-o' : 'eicon-check',
disabled: resolveMutation.isLoading,
onClick: async () => {
const isResolved = !alreadyResolved;
if (isResolved) {
window.top.$e.run('notes/resolve', {
noteId: props.note.id
});
} else {
window.top.$e.run('notes/re-open', {
noteId: props.note.id
});
}
await resolveMutation.mutateAsync({
id: props.note.id,
isResolved
});
if (isResolved) {
clearActive(props.note.id);
}
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Content, null, alreadyResolved ? __('Re-open', 'elementor-pro') : __('Resolve', 'elementor-pro'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Arrow, null)));
}
MarksNoteActionsResolve.propTypes = {
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_6__["default"]).isRequired,
onLoadingChange: PropTypes.func
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-actions-show-readers.js":
/*!**********************************************************************!*\
!*** ../assets/js/app/components/marks-note-actions-show-readers.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteActionsShowReaders)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/ui/tooltip/tooltip */ "../assets/js/app/components/ui/tooltip/tooltip.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/icon */ "../assets/js/app/components/ui/icon.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const TooltipContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].Content)`
max-width: 200px;
`;
const Icon = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_ui_icon__WEBPACK_IMPORTED_MODULE_2__["default"]))`
padding: 4px !important;
color: #a4afb7 !important;
transition: 0.2s all !important;
display: grid !important;
place-items: center !important;
font-size: 18px !important;
border-radius: 100% !important;
&:hover, &:focus {
color: #6d7882;
outline: none;
background: #f1f3f5;
}
`;
function MarksNoteActionsShowReaders(props) {
if (0 === props.readers.length) {
return null;
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"], {
delayDuration: 400
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {
className: "eicon-preview-medium",
tabIndex: 0
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(TooltipContent, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, __('Seen by', 'elementor-pro') + ': '), props.readers.map(reader => reader.name).join(', '), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].Arrow, null)));
}
MarksNoteActionsShowReaders.propTypes = {
readers: PropTypes.arrayOf(PropTypes.shape({
name: PropTypes.string
})).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-actions.js":
/*!*********************************************************!*\
!*** ../assets/js/app/components/marks-note-actions.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteActions)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/dropdown/dropdown */ "../assets/js/app/components/ui/dropdown/dropdown.js");
/* harmony import */ var _ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/icon-button/icon-button */ "../assets/js/app/components/ui/icon-button/icon-button.js");
/* harmony import */ var _marks_note_actions_delete_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./marks-note-actions-delete-dialog */ "../assets/js/app/components/marks-note-actions-delete-dialog.js");
/* harmony import */ var _marks_note_actions_read__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./marks-note-actions-read */ "../assets/js/app/components/marks-note-actions-read.js");
/* harmony import */ var _marks_note_actions_resolve__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./marks-note-actions-resolve */ "../assets/js/app/components/marks-note-actions-resolve.js");
/* harmony import */ var _marks_note_actions_show_readers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./marks-note-actions-show-readers */ "../assets/js/app/components/marks-note-actions-show-readers.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _hooks_use_user_can__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-user-can */ "../assets/js/app/hooks/use-user-can.js");
/* harmony import */ var _services_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../services/copy-to-clipboard */ "../assets/js/services/copy-to-clipboard/index.js");
/* harmony import */ var _marks_thread__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./marks-thread */ "../assets/js/app/components/marks-thread.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function MarksNoteActions(props) {
const {
direction
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_7__["default"])(),
{
setIsDisabled
} = (0,_marks_thread__WEBPACK_IMPORTED_MODULE_10__.useMarksThreadContext)(),
[isDeleteDialogOpen, setIsDeleteDialogOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
canDeleteNote = (0,_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_8__["default"])(_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_8__.CAPABILITY_DELETE, props.note),
canEditNote = (0,_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_8__["default"])(_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_8__.CAPABILITY_EDIT, props.note),
canResolveNote = props.note.isThread() && canEditNote,
shouldRenderDropdown = canEditNote || canDeleteNote || props.note.isThread();
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
return () => setIsDisabled(false);
}, []);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, canResolveNote && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_actions_resolve__WEBPACK_IMPORTED_MODULE_5__["default"], {
note: props.note,
onLoadingChange: isLoading => setIsDisabled(isLoading)
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_actions_show_readers__WEBPACK_IMPORTED_MODULE_6__["default"], {
readers: props.note.readers
}), shouldRenderDropdown && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"], {
modal: false,
dir: direction,
onOpenChange: isOpen => {
if (isOpen) {
window.top.$e.run('notes/open-note-actions');
} else {
window.top.$e.run('notes/close-note-actions');
}
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__["default"], {
name: "eicon-ellipsis-h"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Content, {
align: "end"
}, props.note.isThread() && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_actions_read__WEBPACK_IMPORTED_MODULE_4__["default"], {
note: props.note
}), canEditNote && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Item, {
onSelect: () => props.setIsEditMode(true),
icon: "eicon-edit"
}, __('Edit', 'elementor-pro')), props.note.isThread() && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Item, {
onSelect: () => {
window.top.$e.run('notes/copy-link', {
id: props.note.id
});
},
icon: "eicon-copy",
disabled: !(0,_services_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_9__.canCopyToClipboard)(),
tooltip: !(0,_services_copy_to_clipboard__WEBPACK_IMPORTED_MODULE_9__.canCopyToClipboard)() && __('Supported in "https" sites only', 'elementor-pro')
}, __('Copy Link', 'elementor-pro')), canDeleteNote && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Separator, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Item, {
onSelect: () => setIsDeleteDialogOpen(true),
icon: "eicon-trash",
variant: "danger"
}, __('Delete', 'elementor-pro'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_dropdown_dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Arrow, null))), canDeleteNote && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_actions_delete_dialog__WEBPACK_IMPORTED_MODULE_3__["default"], {
note: props.note,
isOpen: isDeleteDialogOpen,
onOpenChange: setIsDeleteDialogOpen,
onLoadingChange: isLoading => setIsDisabled(isLoading)
}));
}
MarksNoteActions.propTypes = {
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_11__["default"]).isRequired,
setIsEditMode: PropTypes.func.isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-textarea.js":
/*!**********************************************************!*\
!*** ../assets/js/app/components/marks-note-textarea.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteTextarea)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_textarea__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/textarea */ "../assets/js/app/components/ui/textarea.js");
/* harmony import */ var _hooks_use_auto_focus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/use-auto-focus */ "../assets/js/app/hooks/use-auto-focus.js");
/* harmony import */ var _mentions_mentions_user_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mentions/mentions-user-list */ "../assets/js/app/components/mentions/mentions-user-list.js");
/* harmony import */ var _ui_typeahead_typeahead__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ui/typeahead/typeahead */ "../assets/js/app/components/ui/typeahead/typeahead.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony import */ var _query_client__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../query-client */ "../assets/js/app/query-client.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_7__["default"]))`
position: relative;
`;
function MarksNoteTextarea(props) {
const ref = (0,_hooks_use_auto_focus__WEBPACK_IMPORTED_MODULE_2__["default"])(props.defaultValue),
placeholder = props.isReply ? __('Type your reply. Use @ to mention...', 'elementor-pro') : __('Type a note. Use @ to mention...', 'elementor-pro');
const fragment = ({
search
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_query__WEBPACK_IMPORTED_MODULE_5__.QueryClientProvider, {
client: _query_client__WEBPACK_IMPORTED_MODULE_6__["default"]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mentions_mentions_user_list__WEBPACK_IMPORTED_MODULE_3__["default"], {
search: search
}));
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_typeahead_typeahead__WEBPACK_IMPORTED_MODULE_4__["default"], {
debounce: 250,
fragment: fragment,
onSelect: () => window.top.$e.run('notes/choose-mention')
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_textarea__WEBPACK_IMPORTED_MODULE_1__["default"], {
name: "content",
placeholder: placeholder,
onKeyDown: e => {
if (props.onMetaAndEnterKeyDown && (e.metaKey || e.ctrlKey) && 'enter' === e.key.toLowerCase()) {
props.onMetaAndEnterKeyDown(e);
}
},
disabled: props.disabled,
ref: ref,
defaultValue: props.defaultValue,
onChange: props.onChange,
rows: 1,
maxRows: 6,
autoSize: true
})));
}
MarksNoteTextarea.propTypes = {
name: PropTypes.string,
disabled: PropTypes.bool,
onMetaAndEnterKeyDown: PropTypes.func,
defaultValue: PropTypes.string,
onChange: PropTypes.func,
isReply: PropTypes.bool.isRequired
};
MarksNoteTextarea.defaultProps = {
isReply: false
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-view-external-indicator.js":
/*!*************************************************************************!*\
!*** ../assets/js/app/components/marks-note-view-external-indicator.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteViewExternalIndicator)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Text = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].p`
all: revert;
color: #a4afb6 !important;
margin: 0 !important;
padding: 0 !important;
font-family: Roboto, sans-serif !important;
font-size: 10px !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: 1.5 !important;
letter-spacing: normal !important;
word-spacing: normal !important;
`;
const Strong = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].strong`
font-weight: 500;
`;
// Responsible for showing an indicator if the note was created in another route or post.
function MarksNoteViewExternalIndicator(props) {
const {
route: currentRoute
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_1__["default"])(),
isSameDocument = props.note.document?.id === currentRoute.post_id,
isSameRoute = props.note.routeUrl === currentRoute.url;
// If the document is not loaded on the note or the route and the document are the same the current route
// and current document, this component should not render anything.
if (!props.note.document || isSameDocument && isSameRoute) {
return null;
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Text, null, __('Noted on:', 'elementor-pro'), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Strong, null, isSameDocument ? props.note.routeTitle : props.note.document.typeTitle));
}
MarksNoteViewExternalIndicator.propTypes = {
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_2__["default"]).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-note-view.js":
/*!******************************************************!*\
!*** ../assets/js/app/components/marks-note-view.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksNoteView)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_avatar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/avatar */ "../assets/js/app/components/ui/avatar.js");
/* harmony import */ var _marks_note_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./marks-note-actions */ "../assets/js/app/components/marks-note-actions.js");
/* harmony import */ var _marks_edit_note_form__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./marks-edit-note-form */ "../assets/js/app/components/marks-edit-note-form.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var _shared_note_content__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shared/note-content */ "../assets/js/app/components/shared/note-content/index.js");
/* harmony import */ var _marks_note_view_external_indicator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./marks-note-view-external-indicator */ "../assets/js/app/components/marks-note-view-external-indicator.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _hooks_use_reverse_html_entities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-reverse-html-entities */ "../assets/js/app/hooks/use-reverse-html-entities.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const sizesMap = {
sm: {
text: 9
},
md: {
text: 12
}
};
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_7__["default"]))`
--color-gray-500: #a4afb6;
--color-gray-600: #6d7882;
display: flex !important;
align-items: start !important;
gap: 12px !important;
&, & *:not( [class*="eicon"] ) {
font-family: Roboto, sans-serif !important;
}
`;
const Body = (0,styled_components__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_7__["default"]))`
display: flex !important;
flex-direction: column !important;
gap: 12px !important;
flex-grow: 1 !important;
line-height: 1 !important;
`;
const Header = (0,styled_components__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_7__["default"]))`
display: flex !important;
gap: 10px !important;
padding-top: 4px !important;
line-height: 1 !important;
`;
const HeaderMeta = (0,styled_components__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_7__["default"]))`
display: flex !important;
flex-direction: column !important;
gap: 5px !important;
flex-grow: 1 !important;
line-height: 1 !important;
`;
const HeaderActions = (0,styled_components__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_7__["default"]))`
display: flex !important;
gap: 5px !important;
flex-shrink: 0 !important;
align-items: center !important;
line-height: 1 !important;
`;
const Text = styled_components__WEBPACK_IMPORTED_MODULE_9__["default"].span`
color: var(${({
muted
}) => muted ? '--color-gray-500' : '--color-gray-600'}) !important;
margin: 0 !important;
padding: 0 !important;
${({
size
}) => size && (0,styled_components__WEBPACK_IMPORTED_MODULE_9__.css)`
font-size: ${sizesMap[size].text}px !important;
`};
${({
weight
}) => weight && (0,styled_components__WEBPACK_IMPORTED_MODULE_9__.css)`
font-weight: ${weight} !important;
`};
${({
lineHeight
}) => (0,styled_components__WEBPACK_IMPORTED_MODULE_9__.css)`
line-height: ${lineHeight || 1} !important;
`};
`;
function MarksNoteView(props) {
const [isEditMode, setIsEditMode] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
noteContent = (0,_hooks_use_reverse_html_entities__WEBPACK_IMPORTED_MODULE_8__.useReverseHtmlEntities)(props.note.content);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_avatar__WEBPACK_IMPORTED_MODULE_1__["default"], {
size: 'md',
src: props.note.author.avatarUrls['48']
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Body, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(HeaderMeta, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Text, {
size: 'md',
weight: 500
}, props.note.author.name), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Text, {
size: 'sm',
lineHeight: 1.5,
muted: true
}, props.note.getFormattedCreatedAt())), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(HeaderActions, null, !isEditMode && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_actions__WEBPACK_IMPORTED_MODULE_2__["default"], {
note: props.note,
setIsEditMode: setIsEditMode
}))), !isEditMode && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_content__WEBPACK_IMPORTED_MODULE_5__["default"], null, noteContent), isEditMode && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_edit_note_form__WEBPACK_IMPORTED_MODULE_3__["default"], {
note: props.note,
onClose: () => setIsEditMode(false)
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_view_external_indicator__WEBPACK_IMPORTED_MODULE_6__["default"], {
note: props.note
})));
}
MarksNoteView.propTypes = {
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_4__["default"]).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-reply-form.js":
/*!*******************************************************!*\
!*** ../assets/js/app/components/marks-reply-form.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksReplyForm)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/button */ "../assets/js/app/components/ui/button.js");
/* harmony import */ var _hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/use-notes-mutations */ "../assets/js/app/hooks/use-notes-mutations.js");
/* harmony import */ var _marks_note_textarea__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./marks-note-textarea */ "../assets/js/app/components/marks-note-textarea.js");
/* harmony import */ var _shared_note_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/note-form */ "../assets/js/app/components/shared/note-form.js");
/* harmony import */ var _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/use-active-thread */ "../assets/js/app/hooks/use-active-thread.js");
/* harmony import */ var _hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/use-forms-in-writing-mode */ "../assets/js/app/hooks/use-forms-in-writing-mode.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function MarksReplyForm(props) {
const formId = `e-notes-new-reply-for-${props.thread.id}`;
const createMutation = (0,_hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_2__.useCreateMutation)(),
{
clearActive
} = (0,_hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_5__["default"])(),
{
isInWritingMode
} = (0,_hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_6__["default"])();
const onSubmit = async (e, {
content,
form
}) => {
window.top.$e.run('notes/reply', {
parentId: props.thread.id
});
await createMutation.mutateAsync({
elementId: props.thread.elementId,
parentId: props.thread.id,
content
});
form.reset();
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
id: formId,
onSubmit: onSubmit
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_textarea__WEBPACK_IMPORTED_MODULE_3__["default"], {
disabled: createMutation.isLoading,
onMetaAndEnterKeyDown: e => (0,_utils__WEBPACK_IMPORTED_MODULE_7__.submitForm)(e.currentTarget.form),
isReply: true
}), isInWritingMode(formId) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_form__WEBPACK_IMPORTED_MODULE_4__["default"].ButtonsContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
disabled: createMutation.isLoading,
type: "submit"
}, __('Reply', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
disabled: createMutation.isLoading,
variant: 'outlined',
type: "reset",
onClick: e => {
window.top.$e.run('notes/cancel-reply', {
parentId: props.thread.id
});
e.target.form.reset();
clearActive();
}
}, __('Cancel', 'elementor-pro'))));
}
MarksReplyForm.propTypes = {
thread: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_8__["default"])
};
/***/ }),
/***/ "../assets/js/app/components/marks-thread-view.js":
/*!********************************************************!*\
!*** ../assets/js/app/components/marks-thread-view.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MarksThreadView)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _marks_note_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./marks-note-view */ "../assets/js/app/components/marks-note-view.js");
/* harmony import */ var _hooks_use_note__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/use-note */ "../assets/js/app/hooks/use-note.js");
/* harmony import */ var _hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-notes-mutations */ "../assets/js/app/hooks/use-notes-mutations.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _marks_reply_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./marks-reply-form */ "../assets/js/app/components/marks-reply-form.js");
/* harmony import */ var _ui_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ui/icon */ "../assets/js/app/components/ui/icon.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Loader = (0,styled_components__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_ui_icon__WEBPACK_IMPORTED_MODULE_5__["default"])).attrs({
className: 'eicon-loading eicon-animation-spin'
})`
align-self: center !important;
color: #a4afb6 !important;
`;
const Error = styled_components__WEBPACK_IMPORTED_MODULE_6__["default"].p`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 12px !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
color: #6d7882 !important;
margin: 0 !important;
padding: 0 !important;
`;
function MarksThreadView(props) {
const {
isLoading,
isPlaceholderData,
isFetching,
data: thread,
isSuccess,
isError
} = (0,_hooks_use_note__WEBPACK_IMPORTED_MODULE_2__["default"])(props.threadId),
hasReplies = 0 !== thread.repliesCount;
// Set read status.
useSetReadStatus({
thread,
shouldTrigger: isSuccess && !isPlaceholderData && !isFetching
});
if (isLoading) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Loader, null);
}
if (isError) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Error, null, __('Something went wrong.', 'elementor-pro'));
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_view__WEBPACK_IMPORTED_MODULE_1__["default"], {
note: thread,
key: thread.id
}),
// Show a loader until the replies are loaded.
hasReplies && isPlaceholderData && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Loader, null), thread.replies.map(reply => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_note_view__WEBPACK_IMPORTED_MODULE_1__["default"], {
key: reply.id,
note: reply
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_reply_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
thread: thread
}));
}
// Hook to set Thread (& replies) read status.
function useSetReadStatus({
thread,
shouldTrigger
}) {
// Flag to run the hook action once and prevent unnecessary calculations / requests.
const didRunOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false),
readMutation = (0,_hooks_use_notes_mutations__WEBPACK_IMPORTED_MODULE_3__.useReadMutation)();
// Set thread as read.
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (didRunOnce.current || !shouldTrigger) {
return;
}
const ids = [thread, ...(thread.replies || [])].filter(note => !note.isRead).map(note => note.id);
if (0 !== ids.length) {
readMutation.mutate({
ids,
isRead: true
});
}
didRunOnce.current = true;
}, [thread, shouldTrigger]);
}
MarksThreadView.propTypes = {
threadId: PropTypes.number.isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks-thread.js":
/*!***************************************************!*\
!*** ../assets/js/app/components/marks-thread.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Context: () => (/* binding */ Context),
/* harmony export */ "default": () => (/* binding */ MarksThread),
/* harmony export */ useMarksThreadContext: () => (/* binding */ useMarksThreadContext)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/button */ "../assets/js/app/components/ui/button.js");
/* harmony import */ var _ui_marker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/marker */ "../assets/js/app/components/ui/marker.js");
/* harmony import */ var _ui_popover_popover__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/popover/popover */ "../assets/js/app/components/ui/popover/popover.js");
/* harmony import */ var _marks_thread_view__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./marks-thread-view */ "../assets/js/app/components/marks-thread-view.js");
/* harmony import */ var _hooks_use_new_thread_events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/use-new-thread-events */ "../assets/js/app/hooks/use-new-thread-events.js");
/* harmony import */ var _hooks_use_scroll_into_view__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/use-scroll-into-view */ "../assets/js/app/hooks/use-scroll-into-view.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _shared_note_popover_content__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./shared/note-popover-content */ "../assets/js/app/components/shared/note-popover-content.js");
/* harmony import */ var _marks_element_portal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./marks-element-portal */ "../assets/js/app/components/marks-element-portal.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_11__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_8__["default"]))`
display: flex !important;
flex-direction: column !important;
gap: 28px !important;
padding: 20px 16px !important;
width: 360px !important;
border-radius: 4px !important;
transition: 0.3s all !important;
${({
disabled
}) => disabled && (0,styled_components__WEBPACK_IMPORTED_MODULE_11__.css)`
opacity: 0.5;
pointer-events: none;
`}
`;
const Context = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();
function useMarksThreadContext() {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(Context);
}
function MarksThread(props) {
const [isDisabled, setIsDisabled] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
ref = (0,_hooks_use_scroll_into_view__WEBPACK_IMPORTED_MODULE_6__["default"])(props.isActive);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_element_portal__WEBPACK_IMPORTED_MODULE_10__["default"], {
elementId: props.note.elementId,
position: props.note.position
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_3__["default"], {
open: props.isActive,
onOpenChange: props.onOpenChange
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_3__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_button__WEBPACK_IMPORTED_MODULE_1__["default"], {
variant: 'transparent',
className: _hooks_use_new_thread_events__WEBPACK_IMPORTED_MODULE_5__.DISABLE_NEW_THREAD
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_marker__WEBPACK_IMPORTED_MODULE_2__["default"], {
ref: ref,
variant: props.isActive || props.note.isUnreadThread() ? 'solid' : 'ghost',
size: 'md',
muted: props.note.isResolved
}, props.note.id))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_note_popover_content__WEBPACK_IMPORTED_MODULE_9__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, {
disabled: isDisabled
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Context.Provider, {
value: {
isDisabled,
setIsDisabled
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_thread_view__WEBPACK_IMPORTED_MODULE_4__["default"], {
threadId: props.note.id
}))))));
}
MarksThread.propTypes = {
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_7__["default"]).isRequired,
onOpenChange: PropTypes.func.isRequired,
isActive: PropTypes.bool.isRequired
};
/***/ }),
/***/ "../assets/js/app/components/marks.js":
/*!********************************************!*\
!*** ../assets/js/app/components/marks.js ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Marks)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _marks_thread__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./marks-thread */ "../assets/js/app/components/marks-thread.js");
/* harmony import */ var _marks_new_thread__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./marks-new-thread */ "../assets/js/app/components/marks-new-thread.js");
/* harmony import */ var _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-active-thread */ "../assets/js/app/hooks/use-active-thread.js");
/* harmony import */ var _hooks_use_notes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/use-notes */ "../assets/js/app/hooks/use-notes.js");
/* harmony import */ var _hooks_use_new_thread_events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/use-new-thread-events */ "../assets/js/app/hooks/use-new-thread-events.js");
function Marks() {
const {
data: notes = []
} = (0,_hooks_use_notes__WEBPACK_IMPORTED_MODULE_4__["default"])(),
{
activeThread,
clearActive,
setActive,
isThreadActive
} = (0,_hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__["default"])();
(0,_hooks_use_new_thread_events__WEBPACK_IMPORTED_MODULE_5__["default"])();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, notes.map(note => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_thread__WEBPACK_IMPORTED_MODULE_1__["default"], {
key: note.id,
note: note,
isActive: isThreadActive(note.id),
onOpenChange: isOpen => {
if (!isOpen) {
clearActive(note.id);
return;
}
setActive({
type: _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__.THREAD,
data: {
noteId: note.id
}
});
}
})), _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__.NEW_THREAD === activeThread?.type && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_marks_new_thread__WEBPACK_IMPORTED_MODULE_2__["default"], {
elementId: activeThread.data.elementId,
position: activeThread.data.position,
onOpenChange: isOpen => {
if (!isOpen) {
clearActive();
}
}
}));
}
/***/ }),
/***/ "../assets/js/app/components/mentions/mentions-user-disabled.js":
/*!**********************************************************************!*\
!*** ../assets/js/app/components/mentions/mentions-user-disabled.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MentionsUserDisabled)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../models/user */ "../assets/js/app/models/user.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _hooks_use_user_can__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../hooks/use-user-can */ "../assets/js/app/hooks/use-user-can.js");
/* harmony import */ var _ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/tooltip/tooltip */ "../assets/js/app/components/ui/tooltip/tooltip.js");
/* harmony import */ var _ui_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui/icon */ "../assets/js/app/components/ui/icon.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const UserDisabledTooltip = styled_components__WEBPACK_IMPORTED_MODULE_6__["default"].div`
display: flex !important;
position: absolute !important;
width: 100% !important;
height: 100% !important;
inset-inline-start: 0 !important;
margin: 0 !important;
padding: 0 !important;
font-size: 11px !important;
// Fixes bug with the position of Popover with portalled=false inside another Popover
// @see https://github.com/radix-ui/primitives/issues/370
[data-radix-popper-content-wrapper] {
transform: translateY(-100%) !important;
top: 10px !important;
inset-inline-start: auto !important;
inset-inline-end: -10px !important;
}
`;
const TooltipShadow = styled_components__WEBPACK_IMPORTED_MODULE_6__["default"].div`
overflow: hidden !important;
position: relative !important;
flex: 1 !important;
height: 100% !important;
&::before {
content: '' !important;
position: absolute !important;
width: 100vw !important;
height: 100vh !important;
top: 50% !important;
transform: translateY(-50%) !important;
inset-inline-end: 0 !important;
box-shadow: inset 0 0 60px 40px #f1f3f5 !important;
}
`;
const TooltipTriggerText = styled_components__WEBPACK_IMPORTED_MODULE_6__["default"].div`
display: inline-flex !important;
align-items: center !important;
white-space: pre-wrap !important;
padding: 10px !important;
background: #f1f3f5 !important;
`;
const SetPermissionsLink = styled_components__WEBPACK_IMPORTED_MODULE_6__["default"].a.attrs(() => ({
target: '_blank',
rel: 'noreferrer'
}))`
color: #6d7882 !important;
background: #f1f3f5 !important;
padding: 10px !important;
display: inline-flex !important;
align-items: center !important;
&:hover,
&:focus {
color: #58d0f5 !important;
text-decoration: none !important;
}
`;
const TooltipContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_6__["default"])(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"].Content)`
background: #ffffff !important;
color: #6d7882 !important;
line-height: 1.3 !important;
font-style: italic !important;
padding: 12px !important;
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15) !important;
max-width: 262px !important;
box-sizing: border-box !important;
&::after {
content: '' !important;
position: absolute !important;
width: 10px !important;
height: 10px !important;
border: 5px solid transparent !important;
border-top-color: #ffffff !important;
bottom: -9px !important;
inset-inline-end: 20px !important;
}
`;
const LearnMoreLink = styled_components__WEBPACK_IMPORTED_MODULE_6__["default"].a.attrs(() => ({
target: '_blank'
}))`
all: revert;
display: block !important;
text-decoration: none !important;
color: #58d0f5 !important;
&:hover,
&:focus {
text-decoration: underline !important;
}
`;
function MentionsUserDisabled(props) {
const {
urls
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_2__["default"])(),
mentionedUserCanEditPost = props.user.capabilities.post.edit,
currentUserCanEditUsers = (0,_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_3__["default"])(_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_3__.CAPABILITY_EDIT_USERS),
currentUserCanFixPermissions = currentUserCanEditUsers && mentionedUserCanEditPost;
const tooltipLink = currentUserCanEditUsers ? urls.help_notes_features : '';
const tooltipLabel = currentUserCanFixPermissions ? __('Give access to Notes', 'elementor-pro') : __("Can't mention them", 'elementor-pro');
const tooltipMessage = useTooltipMessage(props.user.capabilities);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(UserDisabledTooltip, {
role: "tooltip",
"aria-label": tooltipLabel
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(TooltipShadow, null), currentUserCanFixPermissions ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(SetPermissionsLink, {
href: `${urls.admin_url_edit_user}?user_id=${props.user.id}#e-notes`,
className: "elementor-clickable"
}, tooltipLabel + ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon__WEBPACK_IMPORTED_MODULE_5__["default"], {
className: "eicon-editor-external-link"
})) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"], {
delayDuration: 0
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"].Trigger, {
onMouseDown: e => e.preventDefault(),
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(TooltipTriggerText, {
"aria-label": tooltipMessage
}, tooltipLabel + ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon__WEBPACK_IMPORTED_MODULE_5__["default"], {
className: "eicon-help-o"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(TooltipContent, {
portalled: false
}, tooltipMessage, tooltipLink && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(LearnMoreLink, {
href: tooltipLink,
className: "elementor-clickable"
}, __('Learn more', 'elementor-pro')))))));
}
MentionsUserDisabled.propTypes = {
user: PropTypes.instanceOf(_models_user__WEBPACK_IMPORTED_MODULE_1__["default"]).isRequired
};
function useTooltipMessage(capabilities) {
const mentionedUserCanReadNotes = capabilities.notes.read,
mentionedUserCanEditPost = capabilities.post.edit,
currentUserCanEditUsers = (0,_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_3__["default"])(_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_3__.CAPABILITY_EDIT_USERS);
if (!currentUserCanEditUsers) {
return __('Contact the site admin to give this person the right permissions.', 'elementor-pro');
}
if (!mentionedUserCanEditPost) {
if (!mentionedUserCanReadNotes) {
return __('This person needs: (1) permission to view this post, as well as (2) access to use Notes.', 'elementor-pro');
}
return __('They need permission to view this post.', 'elementor-pro');
}
return '';
}
/***/ }),
/***/ "../assets/js/app/components/mentions/mentions-user-list.js":
/*!******************************************************************!*\
!*** ../assets/js/app/components/mentions/mentions-user-list.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ MentionsUserList)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _hooks_use_users__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../hooks/use-users */ "../assets/js/app/hooks/use-users.js");
/* harmony import */ var _ui_typeahead_typeahead__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/typeahead/typeahead */ "../assets/js/app/components/ui/typeahead/typeahead.js");
/* harmony import */ var _ui_avatar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/avatar */ "../assets/js/app/components/ui/avatar.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _hooks_use_user_can__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../hooks/use-user-can */ "../assets/js/app/hooks/use-user-can.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _mentions_user_disabled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./mentions-user-disabled */ "../assets/js/app/components/mentions/mentions-user-disabled.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const defaultParams = {
limit: 5,
order_by: 'user_registered',
order: 'desc'
};
const List = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])(_ui_typeahead_typeahead__WEBPACK_IMPORTED_MODULE_2__["default"].List)`
position: absolute !important;
top: 100% !important;
`;
const UserDetails = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_6__["default"]))`
display: flex !important;
flex-direction: column !important;
justify-content: space-between !important;
gap: 2px !important;
&::before,
&::after {
display: none !important;
}
`;
const UserContainer = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])(_ui_typeahead_typeahead__WEBPACK_IMPORTED_MODULE_2__["default"].ListItem)`
display: flex !important;
flex-direction: row !important;
align-items: center !important;
gap: 10px !important;
position: relative !important;
&[aria-disabled='true'] {
opacity: 1 !important;
&:hover {
background-color: #f1f3f5 !important;
}
${UserDetails} {
opacity: .5 !important;
}
&:not(:hover) {
> [role='tooltip'] {
display: none !important;
}
}
}
`;
const UserName = styled_components__WEBPACK_IMPORTED_MODULE_8__["default"].span`
all: revert;
padding: 0 !important;
margin: 0 !important;
font-size: 12px !important;
font-weight: 500 !important;
color: inherit !important;
`;
const UserSlug = styled_components__WEBPACK_IMPORTED_MODULE_8__["default"].span`
font-size: 10px !important;
color: #a4afb6 !important;
`;
const Link = styled_components__WEBPACK_IMPORTED_MODULE_8__["default"].a.attrs(() => ({
target: '_blank',
rel: 'noreferrer'
}))`
all: revert;
color: #58d0f5 !important;
font-family: Roboto, sans-serif !important;
font-size: 1em !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: underline !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
&:hover,
&:focus {
color: #6d7882 !important;
text-decoration: underline; // Repeat in order to override theme styles.
}
`;
const FooterTitle = styled_components__WEBPACK_IMPORTED_MODULE_8__["default"].strong`
font-weight: 500 !important;
`;
function MentionsUserList(props) {
var _route$post_id;
const {
route,
urls
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_4__["default"])(),
canCreateUsers = (0,_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_5__["default"])(_hooks_use_user_can__WEBPACK_IMPORTED_MODULE_5__.CAPABILITY_CREATE_USERS);
const {
data = [],
isSuccess
} = (0,_hooks_use_users__WEBPACK_IMPORTED_MODULE_1__["default"])({
params: {
...defaultParams,
search: props.search,
post_id: (_route$post_id = route.post_id) !== null && _route$post_id !== void 0 ? _route$post_id : null
}
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(List, null, data.map(user => {
const isUserDisabled = !user.capabilities.notes.read || !user.capabilities.post.edit;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(UserContainer, {
key: user.id,
value: user.slug,
disabled: isUserDisabled
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_avatar__WEBPACK_IMPORTED_MODULE_3__["default"], {
size: 'md',
src: user.avatarUrls['48']
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(UserDetails, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(UserName, null, user.name), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(UserSlug, null, user.slug)), isUserDisabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mentions_user_disabled__WEBPACK_IMPORTED_MODULE_7__["default"], {
user: user
}));
}), isSuccess && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_typeahead_typeahead__WEBPACK_IMPORTED_MODULE_2__["default"].ListFooter, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FooterTitle, null, __("Can't find someone?", 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, canCreateUsers ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, __('Add them from the', 'elementor-pro'), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Link, {
href: urls.admin_url_create_user,
className: "elementor-clickable"
}, __('WP Dashboard', 'elementor-pro'))) : __('Ask the site admin to add them', 'elementor-pro'))));
}
MentionsUserList.propTypes = {
search: PropTypes.string
};
/***/ }),
/***/ "../assets/js/app/components/panel-body-current-route.js":
/*!***************************************************************!*\
!*** ../assets/js/app/components/panel-body-current-route.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelBodyCurrentRoute)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _panel_note_item__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel-note-item */ "../assets/js/app/components/panel-note-item.js");
/* harmony import */ var _panel_page_title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./panel-page-title */ "../assets/js/app/components/panel-page-title.js");
/* harmony import */ var _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-active-thread */ "../assets/js/app/hooks/use-active-thread.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var _panel_empty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./panel-empty */ "../assets/js/app/components/panel-empty.js");
/* harmony import */ var _ui_toast_toast__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ui/toast/toast */ "../assets/js/app/components/ui/toast/toast.js");
/* harmony import */ var _ui_toast_toast_icon__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/toast/toast-icon */ "../assets/js/app/components/ui/toast/toast-icon.js");
/* harmony import */ var _ui_toast_toast_title__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ui/toast/toast-title */ "../assets/js/app/components/ui/toast/toast-title.js");
/* harmony import */ var _ui_toast_toast_description__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/toast/toast-description */ "../assets/js/app/components/ui/toast/toast-description.js");
/* harmony import */ var _ui_toast_toast_close__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/toast/toast-close */ "../assets/js/app/components/ui/toast/toast-close.js");
/* harmony import */ var _hooks_use_stoppable_effect__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../hooks/use-stoppable-effect */ "../assets/js/app/hooks/use-stoppable-effect.js");
/* harmony import */ var _hooks_use_viewable_notes__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../hooks/use-viewable-notes */ "../assets/js/app/hooks/use-viewable-notes.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function PanelBodyCurrentRoute(props) {
const {
route
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_4__["default"])(),
{
activeThread,
isThreadActive,
setActive,
clearActive
} = (0,_hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__["default"])(),
[isToastOpen, setIsToastOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
[viewableNotes, nonViewableNotes] = (0,_hooks_use_viewable_notes__WEBPACK_IMPORTED_MODULE_13__["default"])(props.notes);
// Clear the active thread if it isn't viewable.
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const {
noteId
} = activeThread?.data || {};
if (noteId) {
const isActiveNoteViewable = !!viewableNotes.find(note => note.id === noteId && note.isThread());
if (!isActiveNoteViewable) {
clearActive(noteId);
}
}
}, [viewableNotes, activeThread]);
// Show toast only once, when there are some non-viewable notes on the page.
(0,_hooks_use_stoppable_effect__WEBPACK_IMPORTED_MODULE_12__["default"])(stop => {
const shouldShowToast = nonViewableNotes.length > 0;
if (shouldShowToast) {
setIsToastOpen(true);
stop();
}
}, [nonViewableNotes]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, !viewableNotes.length ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_empty__WEBPACK_IMPORTED_MODULE_6__["default"], null) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_page_title__WEBPACK_IMPORTED_MODULE_2__["default"], {
count: viewableNotes.length
}, route.title), viewableNotes.map(note => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_note_item__WEBPACK_IMPORTED_MODULE_1__["default"], {
key: note.id,
note: note,
isActive: isThreadActive(note.id),
onClick: () => setActive({
type: _hooks_use_active_thread__WEBPACK_IMPORTED_MODULE_3__.THREAD,
data: {
noteId: note.id
}
})
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_toast_toast__WEBPACK_IMPORTED_MODULE_7__["default"], {
open: isToastOpen,
onOpenChange: setIsToastOpen,
variant: "info"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_toast_toast_icon__WEBPACK_IMPORTED_MODULE_8__["default"], {
className: "eicon-info-circle"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_toast_toast_title__WEBPACK_IMPORTED_MODULE_9__["default"], null, __('Some notes are not shown.', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_toast_toast_description__WEBPACK_IMPORTED_MODULE_10__["default"], null, __('This page contains notes on elements that are still in draft mode.', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_toast_toast_close__WEBPACK_IMPORTED_MODULE_11__["default"], null)));
}
PanelBodyCurrentRoute.propTypes = {
notes: PropTypes.arrayOf(PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_5__["default"])).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/panel-body-summary.js":
/*!*********************************************************!*\
!*** ../assets/js/app/components/panel-body-summary.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelBodySummary)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _panel_page_title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel-page-title */ "../assets/js/app/components/panel-page-title.js");
/* harmony import */ var _models_note_summary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../models/note-summary */ "../assets/js/app/models/note-summary.js");
/* harmony import */ var _ui_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/icon */ "../assets/js/app/components/ui/icon.js");
/* harmony import */ var _ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ui/tooltip/tooltip */ "../assets/js/app/components/ui/tooltip/tooltip.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _panel_empty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./panel-empty */ "../assets/js/app/components/panel-empty.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledLink = styled_components__WEBPACK_IMPORTED_MODULE_7__["default"].a`
position: absolute !important;
font-size: 14px !important;
inset-inline-end: 14px !important;
top: 50% !important;
margin-top: -.5em !important;
color: #a4afb7 !important;
`;
function PanelBodySummary(props) {
const {
route: {
url: currentRouteURL
}
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_5__["default"])();
if (!props.notesSummary.length) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_empty__WEBPACK_IMPORTED_MODULE_6__["default"], null);
}
return props.notesSummary.map(noteSummary => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_page_title__WEBPACK_IMPORTED_MODULE_1__["default"], {
count: noteSummary.notesCount,
key: noteSummary.url
}, noteSummary.title, noteSummary.url !== currentRouteURL && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledLink, {
href: `${noteSummary.fullURL}#e:run:notes/open`,
rel: "noopener noreferrer",
target: "_blank",
className: "elementor-clickable"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon__WEBPACK_IMPORTED_MODULE_3__["default"], {
className: "eicon-editor-external-link"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"].Content, null, __('Open page in a new tab', 'elementor-pro'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"].Arrow, null)))));
}
PanelBodySummary.propTypes = {
notesSummary: PropTypes.arrayOf(PropTypes.instanceOf(_models_note_summary__WEBPACK_IMPORTED_MODULE_2__["default"])).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/panel-close-button.js":
/*!*********************************************************!*\
!*** ../assets/js/app/components/panel-close-button.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelCloseButton)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/tooltip/tooltip */ "../assets/js/app/components/ui/tooltip/tooltip.js");
/* harmony import */ var _ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/icon-button/icon-button */ "../assets/js/app/components/ui/icon-button/icon-button.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
function PanelCloseButton() {
const handleClick = () => window.top.$e.run('notes/close');
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__["default"], {
name: "eicon-editor-close",
onClick: handleClick
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].Content, null, __('Close notes mode', 'elementor-pro'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].Arrow, null)));
}
/***/ }),
/***/ "../assets/js/app/components/panel-empty.js":
/*!**************************************************!*\
!*** ../assets/js/app/components/panel-empty.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelEmpty)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _ui_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/icon */ "../assets/js/app/components/ui/icon.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
display: flex !important;
align-items: center !important;
justify-content: center !important;
height: 100% !important;
width: 100% !important;
text-align: center !important;
padding: 13px 20px 43px 20px !important;
`;
const IconContainer = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
font-size: 30px !important;
color: #a4afb6 !important;
margin: 0 0 20px 0 !important;
`;
const Heading = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].h4`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 16px !important;
font-weight: 700 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: 1.4 !important;
letter-spacing: normal !important;
word-spacing: normal !important;
color: #6d7882 !important;
margin: 0 0 12px 0 !important;
padding: 0 15px !important;
&::before, &::after {
display: none;
}
`;
const Text = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].p`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 11px !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: 1.5 !important;
letter-spacing: normal !important;
word-spacing: normal !important;
margin: 0 !important;
color: #6d7882 !important;
`;
const Link = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].a`
all: revert;
display: inline-flex !important;
justify-content: center !important;
align-item: center !important;
font-family: Roboto, sans-serif !important;
font-size: 12px !important;
font-weight: 500 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: 1.4 !important;
letter-spacing: normal !important;
word-spacing: normal !important;
margin: 42px 0 0 0 !important;
color: #6d7882 !important;
> i {
color: #a4afb7 !important;
font-size: 18px !important;
margin-inline-start: 4px !important;
}
&:hover {
i::before {
color: #58d0f5;
content: '\\e926'; // eicon-info-circle
}
}
`;
function PanelEmpty() {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(IconContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon__WEBPACK_IMPORTED_MODULE_2__["default"], {
className: "eicon-commenting-o"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Heading, null, __('Share your thoughts with a Note', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Text, null, __('Select an element on the page to leave a comment, ask a question, etc.', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Link, {
href: "https://go.elementor.com/app-notes/",
target: "_blank",
className: "elementor-clickable"
}, __('Learn More', 'elementor-pro'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon__WEBPACK_IMPORTED_MODULE_2__["default"], {
className: "eicon-info"
}))));
}
/***/ }),
/***/ "../assets/js/app/components/panel-error.js":
/*!**************************************************!*\
!*** ../assets/js/app/components/panel-error.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelError)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
display: flex !important;
align-items: center !important;
justify-content: center !important;
height: 100% !important;
width: 100% !important;
text-align: center !important;
padding: 13px 13px 43px 13px !important;
`;
const Text = styled_components__WEBPACK_IMPORTED_MODULE_2__["default"].p`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 12px !important;
font-weight: ${({
weight
}) => weight || 400} !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
margin: 0 !important;
color: #6d7882 !important;
`;
function PanelError() {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Text, {
weight: 700
}, __('Could not load the panel.', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Text, null, __('Please refresh the page and try again.', 'elementor-pro'))));
}
/***/ }),
/***/ "../assets/js/app/components/panel-fetch-icon.js":
/*!*******************************************************!*\
!*** ../assets/js/app/components/panel-fetch-icon.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelFetchIcon)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/icon-button/icon-button */ "../assets/js/app/components/ui/icon-button/icon-button.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/tooltip/tooltip */ "../assets/js/app/components/ui/tooltip/tooltip.js");
/* harmony import */ var _hooks_use_watch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-watch */ "../assets/js/app/hooks/use-watch.js");
/* harmony import */ var _styles_animation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../styles/animation */ "../assets/js/app/styles/animation.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledIconButton = (0,styled_components__WEBPACK_IMPORTED_MODULE_5__["default"])((0,_ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_1__["default"]))`
animation-duration: 1.3s;
animation-iteration-count: infinite;
animation-timing-function: linear;
&[data-state="loading"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_4__.spin};
}
&[data-state="none"] {
animation-name: none;
}
`;
function PanelFetchIcon(props) {
const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(props.isFetching);
(0,_hooks_use_watch__WEBPACK_IMPORTED_MODULE_3__["default"])(() => {
if (props.isFetching) {
setLoading(true);
}
}, [props.isFetching]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledIconButton, {
name: "eicon-sync",
"data-state": loading ? 'loading' : 'none',
onClick: () => {
window.top.$e.run('notes/refresh-panel');
props.refetch();
},
onAnimationIteration: () => {
// Make sure to finish spin only when the animation ends.
if (!props.isFetching) {
setLoading(false);
}
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Content, null, __('Refresh', 'elementor-pro'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Arrow, null)));
}
PanelFetchIcon.propTypes = {
isFetching: PropTypes.bool.isRequired,
refetch: PropTypes.func.isRequired
};
/***/ }),
/***/ "../assets/js/app/components/panel-note-item.js":
/*!******************************************************!*\
!*** ../assets/js/app/components/panel-note-item.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelNoteItem)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_marker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/marker */ "../assets/js/app/components/ui/marker.js");
/* harmony import */ var _hooks_use_scroll_into_view__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-scroll-into-view */ "../assets/js/app/hooks/use-scroll-into-view.js");
/* harmony import */ var _shared_note_content__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/note-content */ "../assets/js/app/components/shared/note-content/index.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _ui_button_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui/button-base */ "../assets/js/app/components/ui/button-base.js");
/* harmony import */ var _hooks_use_reverse_html_entities__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/use-reverse-html-entities */ "../assets/js/app/hooks/use-reverse-html-entities.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_ui_button_base__WEBPACK_IMPORTED_MODULE_6__["default"]))`
--spacing: 12px;
--background: #fafbfb;
--color: #6d7882;
--padding: var( --spacing );
--font-family: Roboto, sans-serif;
--font-size: 12px;
--font-weight: 400;
--width: 100%;
--display: flex;
gap: var( --spacing );
margin: 1px 0 0 0 !important;
border: none;
text-align: inherit;
border-radius: 0;
transition: 0.2s all;
line-height: 1.5;
cursor: pointer;
white-space: normal;
&:hover,
&:focus {
--background: #f1f1f1;
--color: #6d7882;
}
${({
isActive
}) => {
return isActive && (0,styled_components__WEBPACK_IMPORTED_MODULE_8__.css)`
--background: #e8f4fb;
&:hover,
&:focus {
--background: #e0f2fc;
}
`;
}}
`;
const IconCol = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_5__["default"]))`
flex-shrink: 0;
&::before,
&::after {
display: none !important;
}
`;
const ContentCol = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_5__["default"]))`
flex-grow: 1;
&::before,
&::after {
display: none !important;
}
`;
const Title = styled_components__WEBPACK_IMPORTED_MODULE_8__["default"].p`
all: revert;
margin: 0 0 8px 0 !important;
font-family: Roboto, sans-serif !important;
font-size: 10px !important;
font-weight: 500 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
`;
const Date = styled_components__WEBPACK_IMPORTED_MODULE_8__["default"].span`
color: #a4afb6;
`;
const RepliesCount = styled_components__WEBPACK_IMPORTED_MODULE_8__["default"].p`
all: revert;
margin: 4px 0 0 0 !important;
color: #a4afb6 !important;
font-family: Roboto, sans-serif !important;
font-size: 10px !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
`;
const NoteContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_shared_note_content__WEBPACK_IMPORTED_MODULE_4__["default"]))`
--line-height: 1.5;
--max-rows: 6;
display: -webkit-box !important;
-webkit-box-orient: vertical !important;
-webkit-line-clamp: var( --max-rows ) !important;
max-height: calc( ( 1em * var( --line-height ) * var( --max-rows ) ) ) !important;
overflow: hidden !important;
& > p {
margin: 0 !important; // To make the ellipsis look better on multi-paragraph content.
}
`;
function PanelNoteItem(props) {
const ref = (0,_hooks_use_scroll_into_view__WEBPACK_IMPORTED_MODULE_3__["default"])(props.isActive, {
block: 'nearest',
inline: 'nearest'
}),
noteContent = (0,_hooks_use_reverse_html_entities__WEBPACK_IMPORTED_MODULE_7__.useReverseHtmlEntities)(props.note.content);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, {
isActive: props.isActive,
onClick: props.onClick,
ref: ref
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(IconCol, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_marker__WEBPACK_IMPORTED_MODULE_2__["default"], {
variant: props.isActive || props.note.isUnreadThread() ? 'solid' : 'ghost',
size: 'sm',
muted: props.note.isResolved
}, props.note.id)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ContentCol, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Title, null, props.note.author.name, " ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Date, null, props.note.getFormattedCreatedAt())), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NoteContent, {
disableInteractions: true
}, noteContent), props.note.repliesCount > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RepliesCount, null, __('%s replies', 'elementor-pro').replace('%s', props.note.repliesCount))));
}
PanelNoteItem.propTypes = {
note: PropTypes.instanceOf(_models_note__WEBPACK_IMPORTED_MODULE_1__["default"]).isRequired,
onClick: PropTypes.func,
isActive: PropTypes.bool
};
/***/ }),
/***/ "../assets/js/app/components/panel-page-title.js":
/*!*******************************************************!*\
!*** ../assets/js/app/components/panel-page-title.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelPageTitle)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledPanelPageTitle = styled_components__WEBPACK_IMPORTED_MODULE_1__["default"].h4`
all: revert;
padding: 10px 12px !important;
background: #fff !important;
font-family: Roboto, sans-serif !important;
font-size: 12px !important;
font-weight: 600 !important;
color: #6d7882 !important;
margin: 1px 0 0 0 !important;
line-height: 1.2 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
letter-spacing: normal !important;
word-spacing: normal !important;
position: relative !important;
&::before, &::after {
display: none !important;
}
`;
const StyledCount = styled_components__WEBPACK_IMPORTED_MODULE_1__["default"].span`
color: #a4afb6;
font-size: 11px;
`;
function PanelPageTitle(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledPanelPageTitle, null, props.children, ' ', props.count && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledCount, null, "(", props.count, ")"));
}
PanelPageTitle.propTypes = {
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
count: PropTypes.number
};
/***/ }),
/***/ "../assets/js/app/components/panel-popover.js":
/*!****************************************************!*\
!*** ../assets/js/app/components/panel-popover.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelPopover)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ui_checkbox_checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/checkbox/checkbox */ "../assets/js/app/components/ui/checkbox/checkbox.js");
/* harmony import */ var _ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/icon-button/icon-button */ "../assets/js/app/components/ui/icon-button/icon-button.js");
/* harmony import */ var _ui_label_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/label/label */ "../assets/js/app/components/ui/label/label.js");
/* harmony import */ var _ui_popover_popover__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ui/popover/popover */ "../assets/js/app/components/ui/popover/popover.js");
/* harmony import */ var _ui_radio_radio__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ui/radio/radio */ "../assets/js/app/components/ui/radio/radio.js");
/* harmony import */ var _ui_separator_separator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui/separator/separator */ "../assets/js/app/components/ui/separator/separator.js");
/* harmony import */ var _hooks_use_notes_filters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/use-notes-filters */ "../assets/js/app/hooks/use-notes-filters.js");
/* harmony import */ var _hooks_use_notes_or_notes_summary__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-notes-or-notes-summary */ "../assets/js/app/hooks/use-notes-or-notes-summary.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const PopoverContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_10__["default"])(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_4__["default"].Content)`
padding: 16px 16px 10px !important;
`;
function PanelPopover(props) {
const [filters, setFilters] = (0,_hooks_use_notes_filters__WEBPACK_IMPORTED_MODULE_7__["default"])();
const {
direction
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_9__["default"])();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_4__["default"], {
onOpenChange: isOpen => {
if (isOpen) {
window.top.$e.run('notes/open-panel-filters');
} else {
window.top.$e.run('notes/close-panel-filters');
}
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_4__["default"].Trigger, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__["default"], {
name: "eicon-ellipsis-h",
size: "sm"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PopoverContent, {
align: 'rtl' === direction ? 'end' : 'start',
sideOffset: 5
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_radio_radio__WEBPACK_IMPORTED_MODULE_5__["default"].Group, {
value: props.view,
onValueChange: props.setView,
dir: direction
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_label_label__WEBPACK_IMPORTED_MODULE_3__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_radio_radio__WEBPACK_IMPORTED_MODULE_5__["default"], {
value: _hooks_use_notes_or_notes_summary__WEBPACK_IMPORTED_MODULE_8__.VIEW_NOTES
}), __('Current page', 'elementor-pro'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_label_label__WEBPACK_IMPORTED_MODULE_3__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_radio_radio__WEBPACK_IMPORTED_MODULE_5__["default"], {
value: _hooks_use_notes_or_notes_summary__WEBPACK_IMPORTED_MODULE_8__.VIEW_NOTES_SUMMARY
}), __('All site', 'elementor-pro')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_separator_separator__WEBPACK_IMPORTED_MODULE_6__["default"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_radio_radio__WEBPACK_IMPORTED_MODULE_5__["default"].Group, {
value: filters.only_relevant ? '1' : '0',
onValueChange: value => setFilters({
only_relevant: '1' === value ? true : null
}),
dir: direction
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_label_label__WEBPACK_IMPORTED_MODULE_3__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_radio_radio__WEBPACK_IMPORTED_MODULE_5__["default"], {
value: "0"
}), __('All notes', 'elementor-pro'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_label_label__WEBPACK_IMPORTED_MODULE_3__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_radio_radio__WEBPACK_IMPORTED_MODULE_5__["default"], {
value: "1"
}), __('Only yours', 'elementor-pro')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_separator_separator__WEBPACK_IMPORTED_MODULE_6__["default"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_label_label__WEBPACK_IMPORTED_MODULE_3__["default"], {
htmlFor: "notes-filter-show-resolved"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_checkbox_checkbox__WEBPACK_IMPORTED_MODULE_1__["default"], {
id: "notes-filter-show-resolved",
checked: null === filters.is_resolved,
onCheckedChange: value => setFilters({
is_resolved: value ? null : false
})
}), __('Show resolved', 'elementor-pro'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_label_label__WEBPACK_IMPORTED_MODULE_3__["default"], {
htmlFor: "notes-filter-only-unread"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_checkbox_checkbox__WEBPACK_IMPORTED_MODULE_1__["default"], {
id: "notes-filter-only-unread",
checked: filters.only_unread,
onCheckedChange: value => setFilters({
only_unread: value ? true : null
})
}), __('Show unread only', 'elementor-pro'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_4__["default"].Arrow, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_4__["default"].CloseButton, null)));
}
PanelPopover.propTypes = {
view: PropTypes.string.isRequired,
setView: PropTypes.func.isRequired
};
/***/ }),
/***/ "../assets/js/app/components/panel.js":
/*!********************************************!*\
!*** ../assets/js/app/components/panel.js ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Panel)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _panel_body_current_route__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel-body-current-route */ "../assets/js/app/components/panel-body-current-route.js");
/* harmony import */ var _panel_body_summary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./panel-body-summary */ "../assets/js/app/components/panel-body-summary.js");
/* harmony import */ var _panel_close_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./panel-close-button */ "../assets/js/app/components/panel-close-button.js");
/* harmony import */ var _panel_error__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./panel-error */ "../assets/js/app/components/panel-error.js");
/* harmony import */ var _panel_popover__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./panel-popover */ "../assets/js/app/components/panel-popover.js");
/* harmony import */ var _ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui/panel/panel */ "../assets/js/app/components/ui/panel/panel.js");
/* harmony import */ var _hooks_use_notes_or_notes_summary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/use-notes-or-notes-summary */ "../assets/js/app/hooks/use-notes-or-notes-summary.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _panel_fetch_icon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./panel-fetch-icon */ "../assets/js/app/components/panel-fetch-icon.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
function Panel() {
const {
direction
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_8__["default"])(),
{
view,
setView,
data = [],
refetch,
isSuccess,
isLoading,
isFetching,
isError,
isNotesView,
isNotesSummaryView
} = (0,_hooks_use_notes_or_notes_summary__WEBPACK_IMPORTED_MODULE_7__["default"])();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"], {
isFloating: true,
defaultPosition: {
x: 'rtl' === direction ? -50 : 50,
y: 50
},
defaultSize: {
width: 240,
height: 400
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"].HeaderSideCol, {
align: "start"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_popover__WEBPACK_IMPORTED_MODULE_5__["default"], {
view: view,
setView: setView
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"].HeaderTitle, null, __('Notes Panel', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"].HeaderSideCol, {
align: "end"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_fetch_icon__WEBPACK_IMPORTED_MODULE_9__["default"], {
isFetching: isFetching,
refetch: refetch
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_close_button__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"].Body, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"].Loading, {
show: isLoading
}), isError && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_error__WEBPACK_IMPORTED_MODULE_4__["default"], null), isSuccess && isNotesView && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_body_current_route__WEBPACK_IMPORTED_MODULE_1__["default"], {
notes: data
}), isSuccess && isNotesSummaryView && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_body_summary__WEBPACK_IMPORTED_MODULE_2__["default"], {
notesSummary: data
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ui_panel_panel__WEBPACK_IMPORTED_MODULE_6__["default"].Footer, null));
}
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/index.js":
/*!****************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/index.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _note_content__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./note-content */ "../assets/js/app/components/shared/note-content/note-content.js");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_note_content__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content-email.js":
/*!*****************************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content-email.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NoteContentEmail)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _note_content_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./note-content-link */ "../assets/js/app/components/shared/note-content/note-content-link.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function NoteContentEmail(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_note_content_link__WEBPACK_IMPORTED_MODULE_1__["default"], {
href: `mailto:${props.token.value}`
}, props.children);
}
NoteContentEmail.propTypes = {
children: PropTypes.node.isRequired,
token: PropTypes.shape({
value: PropTypes.string
}).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content-link.js":
/*!****************************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content-link.js ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const NoteContentLink = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].a`
all: revert;
--color-editor-info: #58d0f5;
--color-editor-info-dark: #10bcf2;
font-family: Roboto, sans-serif !important;
font-size: 1em !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
cursor: pointer;
&,
&:visited {
color: var( --color-editor-info ) !important;
}
&:hover,
&:focus {
color: var( --color-editor-info-dark ) !important;
}
`;
NoteContentLink.defaultProps = {
target: '_blank',
rel: 'noopener noreferrer',
className: 'elementor-clickable'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NoteContentLink);
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content-mention.js":
/*!*******************************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content-mention.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const NoteContentMention = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].span`
color: #58d0f5;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NoteContentMention);
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content-paragraph.js":
/*!*********************************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content-paragraph.js ***!
\*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const NoteContentParagraph = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].p`
--color-gray-600: #6d7882;
font-family: Roboto, sans-serif !important;
font-size: 12px !important;
font-weight: 400 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: 1.5 !important;
letter-spacing: normal !important;
word-spacing: normal !important;
color: var(--color-gray-600);
margin: 0 0 .5em 0 !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NoteContentParagraph);
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content-token-renderer.js":
/*!**************************************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content-token-renderer.js ***!
\**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NoteContentTokenRenderer)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _note_content_paragraph__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./note-content-paragraph */ "../assets/js/app/components/shared/note-content/note-content-paragraph.js");
/* harmony import */ var _note_content_mention__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./note-content-mention */ "../assets/js/app/components/shared/note-content/note-content-mention.js");
/* harmony import */ var _note_content_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./note-content-url */ "../assets/js/app/components/shared/note-content/note-content-url.js");
/* harmony import */ var _note_content_email__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./note-content-email */ "../assets/js/app/components/shared/note-content/note-content-email.js");
/* harmony import */ var _note_content_wow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./note-content-wow */ "../assets/js/app/components/shared/note-content/note-content-wow.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const componentMap = {
Paragraph: _note_content_paragraph__WEBPACK_IMPORTED_MODULE_1__["default"],
Mention: _note_content_mention__WEBPACK_IMPORTED_MODULE_2__["default"],
Url: _note_content_url__WEBPACK_IMPORTED_MODULE_3__["default"],
Email: _note_content_email__WEBPACK_IMPORTED_MODULE_4__["default"],
Wow: _note_content_wow__WEBPACK_IMPORTED_MODULE_5__["default"],
default: ({
children
}) => children
};
function NoteContentTokenRenderer(props) {
const Component = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => componentMap[props.token.type] || componentMap.default, [props.token.type]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Component, {
token: props.token
}, Array.isArray(props.token.value) ? props.token.value.map((childToken, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NoteContentTokenRenderer, {
token: childToken,
key: index
})) : props.token.value);
}
// Put the token shape outside to allow recursive.
const tokenShape = {};
tokenShape.value = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.shape(tokenShape))]);
NoteContentTokenRenderer.propTypes = {
token: PropTypes.shape(tokenShape)
};
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content-url.js":
/*!***************************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content-url.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NoteContentUrl)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _note_content_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./note-content-link */ "../assets/js/app/components/shared/note-content/note-content-link.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function NoteContentUrl(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_note_content_link__WEBPACK_IMPORTED_MODULE_1__["default"], {
href: props.token.value
}, props.children);
}
NoteContentUrl.propTypes = {
children: PropTypes.node.isRequired,
token: PropTypes.shape({
value: PropTypes.string
}).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content-wow.js":
/*!***************************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content-wow.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NoteContentWow)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const confetti = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__.keyframes)`
0% {
opacity: 1;
background-position: 40% 66%, 54% 40%, 32% 36%, 46% 38%, 38% 55%, 60% 32%, 43% 34%, 31% 35%, 53% 63%, 58% 42%, 56% 37%, 40% 50%, 46% 46%, 36% 59%, 43% 50%, 63% 70%, 44% 40%, 51% 30%, 38% 45%, 37% 62%, 46% 34%, 45% 45%, 43% 44%, 43% 53%, 64% 42%, 31% 36%, 38% 54%, 40% 34%, 64% 48%, 43% 47%, 43% 50%, 56% 40%, 35% 68%, 68% 69%, 63% 35%, 32% 61%, 67% 57%, 51% 43%, 53% 45%, 47% 40%, 33% 42%, 35% 65%, 67% 47%, 30% 44%, 67% 52%, 41% 46%, 44% 55%, 38% 40%, 39% 37%, 37% 35%;
}
45% {
opacity: 1;
background-size: var(--radius) var(--radius);
}
100% {
opacity: 0;
background-size: 0 0;
background-position: 8% 105%, 83% 50%, 53% 74%, 44% 9%, 6% 67%, 13% 62%, 88% 47%, 60% 18%, 78% 50%, 105% 11%, 59% 22%, 47% 98%, 77% 84%, 51% 60%, 70% 10%, 91% 103%, 8% 16%, 61% 1%, -5% 52%, 75% 74%, 58% 52%, 74% 30%, 51% 55%, 13% 78%, 28% 86%, 40% 1%, 24% 38%, 58% 6%, 70% 42%, 11% 22%, 73% 59%, 10% 57%, 72% 22%, 48% 26%, 44% -7%, 72% 29%, 50% 74%, 99% 87%, 17% 36%, 4% -8%, -11% 22%, 79% 95%, 19% 60%, 30% 4%, 110% 5%, 0% 71%, 82% 56%, 9% 68%, 69% 41%, 19% 61%;
}
`;
const StyledSurprise = styled_components__WEBPACK_IMPORTED_MODULE_1__["default"].span`
display: inline-block !important;
position: relative !important;
isolation: isolate !important;
box-sizing: border-box !important;
&::before {
--radius: 2px;
--color-1: #d50000;
--color-2: #c51162;
--color-3: #aa00ff;
--color-4: #2962ff;
--color-5: #00c853;
--color-6: #ffd600;
content: '' !important;
position: absolute !important;
inset: -25px !important;
pointer-events: none !important;
opacity: 0;
z-index: -1 !important;
transform: scale(1.5) !important;
background-repeat: no-repeat !important;
background-size: calc(2 * var(--radius)) calc(2 * var(--radius));
background-image: radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-3 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-5 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-5 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-5 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-3 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-3 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-5 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-5 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-3 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-5 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-3 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-3 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-4 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-2 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-1 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-6 ) 49%,transparent 50% ), radial-gradient( circle at center, var( --color-5 ) 49%,transparent 50% ) !important;
${({
isAnimated
}) => isAnimated && (0,styled_components__WEBPACK_IMPORTED_MODULE_1__.css)`
animation: ${confetti} ease 1s forwards !important;
`}
}
`;
function NoteContentWow(props) {
const [isAnimated, setIsAnimated] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledSurprise, {
isAnimated: isAnimated,
onMouseEnter: () => setIsAnimated(true),
onAnimationEnd: () => setIsAnimated(false)
}, props.children);
}
NoteContentWow.propTypes = {
children: PropTypes.node.isRequired,
token: PropTypes.shape({
value: PropTypes.string
}).isRequired
};
/***/ }),
/***/ "../assets/js/app/components/shared/note-content/note-content.js":
/*!***********************************************************************!*\
!*** ../assets/js/app/components/shared/note-content/note-content.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NoteContent)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _note_content_token_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./note-content-token-renderer */ "../assets/js/app/components/shared/note-content/note-content-token-renderer.js");
/* harmony import */ var _services_rich_text_parser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/rich-text-parser */ "../assets/js/services/rich-text-parser/index.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const richTextParser = (0,_services_rich_text_parser__WEBPACK_IMPORTED_MODULE_2__["default"])();
const Wrapper = (0,styled_components__WEBPACK_IMPORTED_MODULE_4__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_3__["default"]))`
white-space: normal;
word-break: break-word;
word-wrap: break-word;
${({
disableInteractions
}) => disableInteractions && (0,styled_components__WEBPACK_IMPORTED_MODULE_4__.css)`
pointer-events: none;
`};
`;
function NoteContent(props) {
const contentToken = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => richTextParser.parse(props.children), [props.children]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Wrapper, {
disableInteractions: props.disableInteractions,
className: props.className
}, contentToken && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_note_content_token_renderer__WEBPACK_IMPORTED_MODULE_1__["default"], {
token: contentToken
}));
}
NoteContent.propTypes = {
children: PropTypes.string.isRequired,
disableInteractions: PropTypes.bool,
className: PropTypes.string
};
NoteContent.defaultProps = {
disableInteractions: false
};
/***/ }),
/***/ "../assets/js/app/components/shared/note-form.js":
/*!*******************************************************!*\
!*** ../assets/js/app/components/shared/note-form.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NoteForm)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _ui_div_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../hooks/use-forms-in-writing-mode */ "../assets/js/app/hooks/use-forms-in-writing-mode.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledForm = styled_components__WEBPACK_IMPORTED_MODULE_4__["default"].form`
all: revert;
display: flex !important;
flex-direction: column !important;
gap: 16px !important;
`;
NoteForm.ButtonsContainer = (0,styled_components__WEBPACK_IMPORTED_MODULE_4__["default"])((0,_ui_div_base__WEBPACK_IMPORTED_MODULE_2__["default"]))`
display: flex !important;
flex-direction: row-reverse !important;
justify-content: end !important;
gap: 8px !important;
`;
function NoteForm({
onReset,
onChange,
onSubmit,
...props
}) {
const {
isInWritingMode,
addToWritingMode,
removeFromWritingMode
} = (0,_hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_3__["default"])();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(StyledForm, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {
onReset: e => {
removeFromWritingMode(props.id);
// Tweak to force emptying of data-value for the textarea container
const contentEl = e.currentTarget.content;
if ('undefined' !== typeof contentEl) {
const event = new Event('input', {
bubbles: true
});
contentEl.value = '';
contentEl.dispatchEvent(event);
}
onReset?.(e);
},
onChange: e => {
const hasChanged = e.target.value.trim() !== e.target.defaultValue,
isCurrentFormInWritingMode = isInWritingMode(props.id);
if (hasChanged && !isCurrentFormInWritingMode) {
addToWritingMode(props.id);
}
if (!hasChanged && isCurrentFormInWritingMode) {
removeFromWritingMode(props.id);
}
onChange?.(e);
},
onSubmit: async e => {
e.preventDefault();
if (!isInWritingMode(props.id)) {
return;
}
const form = e.currentTarget,
content = form.content.value.trim();
await onSubmit?.(e, {
form,
content
});
}
}));
}
NoteForm.propTypes = {
id: PropTypes.string.isRequired,
onChange: PropTypes.func,
onReset: PropTypes.func,
onSubmit: PropTypes.func
};
/***/ }),
/***/ "../assets/js/app/components/shared/note-popover-content.js":
/*!******************************************************************!*\
!*** ../assets/js/app/components/shared/note-popover-content.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NotePopoverContent)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ui_popover_popover__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/popover/popover */ "../assets/js/app/components/ui/popover/popover.js");
/* harmony import */ var _hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../hooks/use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "../assets/js/app/utils.js");
/* harmony import */ var _hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../hooks/use-forms-in-writing-mode */ "../assets/js/app/hooks/use-forms-in-writing-mode.js");
const bounce = {
keyframes: [{
transform: 'scale(1)',
opacity: '1'
}, {
transform: 'scale(1.05)',
opacity: '0.85'
}, {
transform: 'scale(1)',
opacity: '1'
}],
options: {
easing: 'ease-in-out',
duration: 500
}
};
function NotePopoverContent(props) {
const {
direction
} = (0,_hooks_use_notes_config__WEBPACK_IMPORTED_MODULE_3__["default"])(),
{
formsInWritingMode
} = (0,_hooks_use_forms_in_writing_mode__WEBPACK_IMPORTED_MODULE_5__["default"])(),
ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_ui_popover_popover__WEBPACK_IMPORTED_MODULE_2__["default"].Content, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {
align: 'rtl' === direction ? 'end' : 'start',
alignOffset: 18,
sideOffset: 15,
ref: ref,
onInteractOutside: async e => {
// If there are no forms in writing mode, it should behave normally.
if (0 === formsInWritingMode.length) {
return;
}
e.preventDefault();
if (0 === ref.current.getAnimations().length) {
await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.scrollIntoView)(ref.current);
ref.current.animate(bounce.keyframes, bounce.options);
}
}
}));
}
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog-action.js":
/*!**************************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog-action.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../button-base */ "../assets/js/app/components/ui/button-base.js");
const AlertDialogAction = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_0__["default"])).attrs(() => ({
as: _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.Action
}))`
--font-size: 16px;
--color: #b01b1b;
--padding: 13px;
margin: 0;
flex-grow: 1;
transition: 0.2s all;
border: none;
border-radius: 0;
&:focus, &:hover {
--background: #f1f3f5;
--color: #b01b1b;
}
`;
AlertDialogAction.propTypes = {
..._radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.Action.propTypes
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertDialogAction);
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog-actions-container.js":
/*!*************************************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog-actions-container.js ***!
\*************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
const AlertDialogActionsContainer = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_0__["default"]))`
display: flex;
align-items: center;
border-top: 1px solid #d5dadf;
& > button:not(:first-child) {
/**
* will create a divider between the buttons,
* not matter how much buttons exists in the container.
*/
border-inline-start: 1px solid #d5dadf;
}
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertDialogActionsContainer);
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog-cancel.js":
/*!**************************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog-cancel.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../button-base */ "../assets/js/app/components/ui/button-base.js");
const AlertDialogCancel = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_0__["default"])).attrs(() => ({
as: _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.Cancel
}))`
--color: #6d7882;
--padding: 13px;
--font-size: 16px;
--border: none;
margin: 0;
flex-grow: 1;
transition: 0.2s all;
border-radius: 0;
&:focus, &:hover {
--background: #f1f3f5;
--color: #6d7882;
}
`;
AlertDialogCancel.propTypes = {
..._radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.Cancel.propTypes
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertDialogCancel);
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog-content.js":
/*!***************************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog-content.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ AlertDialogContent)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils */ "../assets/js/app/utils.js");
const overlayShow = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__.keyframes)`
0% {
opacity: 0;
}
100% {
opacity: 1;
}
`;
const contentShow = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__.keyframes)`
0% {
opacity: 0;
transform: translate(-50%, -48%) scale(.96);
}
100% {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
`;
const StyledContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_3__.Content))`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 1em !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
background-color: #fff !important;
box-shadow: 2px 8px 23px rgba(0, 0, 0, 0.2) !important;
border-radius: 3px !important;
width: 375px !important;
text-align: center !important;
position: fixed !important;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
max-height: 85vh !important;
animation-duration: 150ms !important;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
animation-name: ${contentShow} !important;
z-index: ${_utils__WEBPACK_IMPORTED_MODULE_1__.MAX_Z_INDEX} !important;
&:focus {
outline: none !important;
}
`;
const StyledOverlay = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay))`
background-color: rgba(0, 0, 0, 0.5) !important;
position: fixed !important;
inset: 0 !important;
animation-duration: 150ms !important;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
animation-name: ${overlayShow} !important;
z-index: ${_utils__WEBPACK_IMPORTED_MODULE_1__.MAX_Z_INDEX} !important;
`;
function AlertDialogContent(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledOverlay, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledContent, props));
}
AlertDialogContent.propTypes = {
..._radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_3__.Content.propTypes
};
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog-description-container.js":
/*!*****************************************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog-description-container.js ***!
\*****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
const AlertDialogDescriptionContainer = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_0__["default"]))`
padding: 30px !important;
display: flex !important;
flex-direction: column !important;
gap: 12px !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertDialogDescriptionContainer);
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog-description.js":
/*!*******************************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog-description.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const AlertDialogDescription = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.Description))`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 13px !important;
font-weight: 500 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
margin: 0 !important;
color: #495157 !important;
`;
AlertDialogDescription.propTypes = {
..._radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.Description.propTypes
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertDialogDescription);
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog-title.js":
/*!*************************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog-title.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const AlertDialogTitle = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.Title))`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 17px !important;
font-weight: 500 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
margin: 0 !important;
color: #495157 !important;
&::before, &::after {
display: none;
}
`;
AlertDialogTitle.propTypes = {
..._radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_1__.Title.propTypes
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertDialogTitle);
/***/ }),
/***/ "../assets/js/app/components/ui/alert-dialog/alert-dialog.js":
/*!*******************************************************************!*\
!*** ../assets/js/app/components/ui/alert-dialog/alert-dialog.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.module.js");
/* harmony import */ var _alert_dialog_content__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./alert-dialog-content */ "../assets/js/app/components/ui/alert-dialog/alert-dialog-content.js");
/* harmony import */ var _alert_dialog_title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./alert-dialog-title */ "../assets/js/app/components/ui/alert-dialog/alert-dialog-title.js");
/* harmony import */ var _alert_dialog_description_container__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./alert-dialog-description-container */ "../assets/js/app/components/ui/alert-dialog/alert-dialog-description-container.js");
/* harmony import */ var _alert_dialog_actions_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./alert-dialog-actions-container */ "../assets/js/app/components/ui/alert-dialog/alert-dialog-actions-container.js");
/* harmony import */ var _alert_dialog_description__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./alert-dialog-description */ "../assets/js/app/components/ui/alert-dialog/alert-dialog-description.js");
/* harmony import */ var _alert_dialog_cancel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./alert-dialog-cancel */ "../assets/js/app/components/ui/alert-dialog/alert-dialog-cancel.js");
/* harmony import */ var _alert_dialog_action__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./alert-dialog-action */ "../assets/js/app/components/ui/alert-dialog/alert-dialog-action.js");
const AlertDialog = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_7__.Root;
AlertDialog.Trigger = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_7__.Trigger;
AlertDialog.Content = _alert_dialog_content__WEBPACK_IMPORTED_MODULE_0__["default"];
AlertDialog.Description = _alert_dialog_description__WEBPACK_IMPORTED_MODULE_4__["default"];
AlertDialog.DescriptionContainer = _alert_dialog_description_container__WEBPACK_IMPORTED_MODULE_2__["default"];
AlertDialog.ActionsContainer = _alert_dialog_actions_container__WEBPACK_IMPORTED_MODULE_3__["default"];
AlertDialog.Title = _alert_dialog_title__WEBPACK_IMPORTED_MODULE_1__["default"];
AlertDialog.Cancel = _alert_dialog_cancel__WEBPACK_IMPORTED_MODULE_5__["default"];
AlertDialog.Action = _alert_dialog_action__WEBPACK_IMPORTED_MODULE_6__["default"];
AlertDialog.propTypes = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_7__.Root.propTypes;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertDialog);
/***/ }),
/***/ "../assets/js/app/components/ui/avatar.js":
/*!************************************************!*\
!*** ../assets/js/app/components/ui/avatar.js ***!
\************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const sizesMap = {
sm: {
width: 16
},
md: {
width: 32
},
lg: {
width: 64
}
};
const Avatar = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].img`
all: revert;
aspect-ratio: 1 / 1;
border-radius: 100%;
height: auto;
width: ${({
size
}) => sizesMap[size].width}px;
`;
Avatar.propTypes = {
size: PropTypes.oneOf(['sm', 'md', 'lg']).isRequired,
src: PropTypes.string.isRequired
};
Avatar.defaultProps = {
size: 'md'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Avatar);
/***/ }),
/***/ "../assets/js/app/components/ui/button-base.js":
/*!*****************************************************!*\
!*** ../assets/js/app/components/ui/button-base.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/**
* Simple button component to handle themes overrides.
*/
const ButtonBase = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].button`
all: revert;
--color: #000;
--padding: 0;
--background: transparent;
--font-weight: 500;
--font-size: 16px;
--font-family: Roboto, sans-serif;
--text-transform: none;
--letter-spacing: 0;
--font-style: normal;
--text-decoration: none;
--line-height: normal;
--word-spacing: normal;
--text-shadow: none;
--box-shadow: none;
--border: none;
--border-radius: 0;
// Override themes selectors.
&,
&&,
&[type="button"],
&[type="submit"],
&[type="reset"],
&:hover,
&:focus,
&:active,
&:not( :hover ):not( :active ):not( .has-background ),
&:not( :hover ):not( :active ):not( .has-text-color ) {
font-family: var( --font-family ) !important;
font-size: var( --font-size ) !important;
font-weight: var( --font-weight ) !important;
text-transform: var( --text-transform ) !important;
letter-spacing: var( --letter-spacing ) !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
word-spacing: normal !important;
color: var( --color ) !important;
background: var( --background ) !important;
border: var( --border ) !important;
text-shadow: var( --text-shadow ) !important;
box-shadow: var( --box-shadow ) !important;
border-radius: var( --border-radius ) !important;
padding: var( --padding ) !important;
outline: none !important;
width: var( --width, auto ) !important;
height: var( --height, auto ) !important;
display: var( --display, inline-block ) !important;
min-height: revert !important;
}
&:before,
&:after {
display: none !important;
}
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ButtonBase);
/***/ }),
/***/ "../assets/js/app/components/ui/button.js":
/*!************************************************!*\
!*** ../assets/js/app/components/ui/button.js ***!
\************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./button-base */ "../assets/js/app/components/ui/button-base.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const colorsMap = {
contained: {
background: '--color-editor-info',
border: '--color-editor-info',
text: '--color-white',
backgroundHover: '--color-editor-info-dark'
},
outlined: {
background: '--color-ghost',
border: '--color-gray-400',
text: '--color-gray-600',
backgroundHover: '--color-darken'
},
transparent: {
background: '--color-ghost',
border: '--color-ghost',
text: '--color-default'
}
};
const sizesMap = {
md: {
padding: '--padding-md',
fontSize: '--font-size-md'
}
};
const Button = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_0__["default"]))`
--color-editor-info: #58d0f5;
--color-editor-info-dark: #10bcf2;
--color-default: inherit;
--color-ghost: transparent;
--color-white: #fff;
--color-gray-400: #c2cbd2;
--color-gray-600: #6d7882;
--color-darken: rgba( 0, 0, 0, .05 );
--font-size-md: 13px;
--padding-md: 8px 12px;
--padding: var( ${({
size
}) => sizesMap[size].padding} );
--color: var( ${({
variant
}) => colorsMap[variant].text} );
--background: var( ${({
variant
}) => colorsMap[variant].background} );
--border-color: var( ${({
variant
}) => colorsMap[variant].border} );
--border: 1px solid var( --border-color );
--cursor: pointer;
--font-weight: 400;
--font-family: Roboto, sans-serif;
--font-size: var( ${({
size
}) => sizesMap[size].fontSize} );
--border-radius: 3px;
font-style: normal !important;
text-align: center !important;
line-height: 1 !important;
cursor: var( --cursor ) !important;
transition: .3s all !important;
&, & * {
cursor: var( --cursor ) !important;
}
${({
disabled
}) => disabled && (0,styled_components__WEBPACK_IMPORTED_MODULE_1__.css)`
opacity: .5;
pointer-events: none;
--cursor: not-allowed;
`}
${({
variant
}) => 'transparent' === variant && (0,styled_components__WEBPACK_IMPORTED_MODULE_1__.css)`
--padding: 0;
`}
&:hover, &:focus {
--background: var(
${({
variant
}) => colorsMap[variant].backgroundHover || colorsMap[variant].background}
);
}
`;
Button.propTypes = {
variant: PropTypes.oneOf(['contained', 'outlined', 'transparent']).isRequired,
size: PropTypes.oneOf(['md']).isRequired,
disabled: PropTypes.bool
};
Button.defaultProps = {
variant: 'contained',
size: 'md'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Button);
/***/ }),
/***/ "../assets/js/app/components/ui/checkbox/checkbox.js":
/*!***********************************************************!*\
!*** ../assets/js/app/components/ui/checkbox/checkbox.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Checkbox)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-checkbox */ "../../../node_modules/@radix-ui/react-checkbox/dist/index.module.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../button-base */ "../assets/js/app/components/ui/button-base.js");
/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icon */ "../assets/js/app/components/ui/icon.js");
const StyledCheckbox = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_1__["default"])).attrs(() => ({
as: _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_4__.Root
}))`
--border-color: #a4afb6;
--background: #fff;
--border: 1px solid var( --border-color );
--border-radius: 3px;
--width: 12px;
--height: 12px;
--display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
margin: 0;
outline: none;
transition: 0.2s all;
overflow: hidden;
&[data-state="checked"] {
--border-color: #39b54a;
}
&:hover, &:focus {
outline: none;
--background: #eee;
& > * {
--background: rgba(57, 181, 74, 0.8);
}
}
`;
const StyledIndicator = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_4__.Indicator))`
all: revert;
position: absolute !important;
inset: 0 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
background: #39b54a !important;
color: #fff !important;
outline: none !important;
font-size: 8px !important;
`;
function Checkbox(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledCheckbox, props, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledIndicator, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icon__WEBPACK_IMPORTED_MODULE_2__["default"], {
className: "eicon-check"
})));
}
Checkbox.propTypes = {
..._radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_4__.Root.propTypes
};
/***/ }),
/***/ "../assets/js/app/components/ui/div-base.js":
/*!**************************************************!*\
!*** ../assets/js/app/components/ui/div-base.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/**
* Simple div to handle themes overrides.
*/
const DivBase = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].div`
all: revert;
box-sizing: border-box;
&:before,
&:after {
display: none !important;
}
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DivBase);
/***/ }),
/***/ "../assets/js/app/components/ui/dropdown/dropdown-arrow.js":
/*!*****************************************************************!*\
!*** ../assets/js/app/components/ui/dropdown/dropdown-arrow.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ "../../../node_modules/@radix-ui/react-dropdown-menu/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const DropdownArrow = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_1__.Arrow))`
fill: #fff;
margin: 0 10px;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DropdownArrow);
/***/ }),
/***/ "../assets/js/app/components/ui/dropdown/dropdown-content.js":
/*!*******************************************************************!*\
!*** ../assets/js/app/components/ui/dropdown/dropdown-content.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ "../../../node_modules/@radix-ui/react-dropdown-menu/dist/index.module.js");
/* harmony import */ var _styles_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../styles/animation */ "../assets/js/app/styles/animation.js");
const DropdownContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_2__.Content))`
all: revert;
background: #fff !important;
border-radius: 3px !important;
min-width: 120px !important;
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15) !important;
animation-duration: 400ms !important;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
padding: 4px !important;
&[data-state="open"] {
&[data-side="top"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideUpAndFade};
}
&[data-side="right"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideRightAndFade};
}
&[data-side="bottom"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideDownAndFade};
}
&[data-side="left"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideLeftAndFade};
}
}
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DropdownContent);
/***/ }),
/***/ "../assets/js/app/components/ui/dropdown/dropdown-item.js":
/*!****************************************************************!*\
!*** ../assets/js/app/components/ui/dropdown/dropdown-item.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ DropdownItem)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ "../../../node_modules/@radix-ui/react-dropdown-menu/dist/index.module.js");
/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icon */ "../assets/js/app/components/ui/icon.js");
/* harmony import */ var _tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tooltip/tooltip */ "../assets/js/app/components/ui/tooltip/tooltip.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const variants = {
default: {
hoverTextColor: '#6d7882',
hoverIconColor: '#a4afb6'
},
danger: {
hoverTextColor: '#b01b1b',
hoverIconColor: '#d9534f'
}
};
const Icon = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_icon__WEBPACK_IMPORTED_MODULE_1__["default"]))`
color: #a4afb6 !important;
transition: 0.2s all;
`;
const ItemWrapper = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].span`
display: flex !important;
align-items: center !important;
gap: 8px !important;
`;
const StyledDropdownItem = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.Item))`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 11px !important;
font-weight: 500 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: 1.2 !important;
letter-spacing: normal !important;
word-spacing: normal !important;
cursor: pointer !important;
border-radius: 4px !important;
padding: 7px 12px !important;
color: #6d7882 !important;
transition: 0.2s all !important;
&[data-disabled] {
opacity: 0.5 !important;
cursor: default !important;
}
&:focus {
background: #f1f3f5 !important;
outline: none !important;
color: ${({
variant
}) => variants[variant].hoverTextColor} !important;
${Icon} {
color: ${({
variant
}) => variants[variant].hoverIconColor} !important;
}
}
`;
function DropdownItem({
children,
icon,
tooltip,
...props
}) {
const DropdownItemContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ItemWrapper, null, icon && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {
className: icon
}), children);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledDropdownItem, props, tooltip ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Trigger, {
asChild: true
}, DropdownItemContent), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Content, null, tooltip, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_tooltip_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"].Arrow, null))) : DropdownItemContent);
}
DropdownItem.propTypes = {
...DropdownItem.propTypes,
icon: PropTypes.string,
tooltip: PropTypes.node,
variant: PropTypes.oneOf(['default', 'danger'])
};
DropdownItem.defaultProps = {
variant: 'default'
};
/***/ }),
/***/ "../assets/js/app/components/ui/dropdown/dropdown-separator.js":
/*!*********************************************************************!*\
!*** ../assets/js/app/components/ui/dropdown/dropdown-separator.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ "../../../node_modules/@radix-ui/react-dropdown-menu/dist/index.module.js");
const DropdownSeparator = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_1__.Separator))`
height: 1px !important;
background: #f1f3f5 !important;
margin: 7px 10px !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DropdownSeparator);
/***/ }),
/***/ "../assets/js/app/components/ui/dropdown/dropdown.js":
/*!***********************************************************!*\
!*** ../assets/js/app/components/ui/dropdown/dropdown.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ "../../../node_modules/@radix-ui/react-dropdown-menu/dist/index.module.js");
/* harmony import */ var _dropdown_content__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dropdown-content */ "../assets/js/app/components/ui/dropdown/dropdown-content.js");
/* harmony import */ var _dropdown_item__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dropdown-item */ "../assets/js/app/components/ui/dropdown/dropdown-item.js");
/* harmony import */ var _dropdown_arrow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dropdown-arrow */ "../assets/js/app/components/ui/dropdown/dropdown-arrow.js");
/* harmony import */ var _dropdown_separator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropdown-separator */ "../assets/js/app/components/ui/dropdown/dropdown-separator.js");
const Dropdown = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.Root;
Dropdown.Trigger = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_4__.Trigger;
Dropdown.Content = _dropdown_content__WEBPACK_IMPORTED_MODULE_0__["default"];
Dropdown.Item = _dropdown_item__WEBPACK_IMPORTED_MODULE_1__["default"];
Dropdown.Arrow = _dropdown_arrow__WEBPACK_IMPORTED_MODULE_2__["default"];
Dropdown.Separator = _dropdown_separator__WEBPACK_IMPORTED_MODULE_3__["default"];
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Dropdown);
/***/ }),
/***/ "../assets/js/app/components/ui/icon-button/icon-button.js":
/*!*****************************************************************!*\
!*** ../assets/js/app/components/ui/icon-button/icon-button.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../button-base */ "../assets/js/app/components/ui/button-base.js");
/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icon */ "../assets/js/app/components/ui/icon.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const fontSizeMapping = {
sm: '15px',
md: '18px'
};
const StyledIconButton = (0,styled_components__WEBPACK_IMPORTED_MODULE_4__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_2__["default"]))`
--color: #a4afb7;
--background: transparent;
--padding: 4px;
--font-size: ${({
size
}) => fontSizeMapping[size]};
--border: none;
--border-radius: 100%;
--display: grid;
transition: 0.2s all;
place-items: center;
border-radius: 100%;
cursor: pointer;
&:hover, &:focus {
--background: transparent;
--color: #6d7882;
outline: none;
}
&:focus {
--background: #f1f3f5;
}
${({
disabled
}) => disabled && (0,styled_components__WEBPACK_IMPORTED_MODULE_4__.css)`
opacity: .5;
pointer-events: none;
cursor: not-allowed;
`}
`;
const IconButton = react__WEBPACK_IMPORTED_MODULE_1___default().forwardRef(({
name,
...props
}, ref) => {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(StyledIconButton, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {
ref: ref
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_icon__WEBPACK_IMPORTED_MODULE_3__["default"], {
className: name
}));
});
IconButton.displayName = 'IconButton';
IconButton.propTypes = {
size: PropTypes.oneOf(['sm', 'md']),
name: PropTypes.string.isRequired,
onClick: PropTypes.func,
disabled: PropTypes.bool
};
IconButton.defaultProps = {
size: 'md'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (IconButton);
/***/ }),
/***/ "../assets/js/app/components/ui/icon.js":
/*!**********************************************!*\
!*** ../assets/js/app/components/ui/icon.js ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/**
* Simple i tag to handle themes overrides.
*/
const Icon = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].i`
margin: 0 !important;
padding: 0 !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Icon);
/***/ }),
/***/ "../assets/js/app/components/ui/label/label.js":
/*!*****************************************************!*\
!*** ../assets/js/app/components/ui/label/label.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-label */ "../../../node_modules/@radix-ui/react-label/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const Label = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_label__WEBPACK_IMPORTED_MODULE_1__.Label))`
all: revert;
font-size: 11px !important;
color: #a4afb6 !important;
font-weight: 500 !important;
font-family: Roboto, sans-serif !important;
user-select: none !important;
display: inline-flex !important;
align-items: center !important;
gap: 8px !important;
line-height: 2 !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Label);
/***/ }),
/***/ "../assets/js/app/components/ui/marker.js":
/*!************************************************!*\
!*** ../assets/js/app/components/ui/marker.js ***!
\************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const sizesMap = {
xs: 20,
sm: 25,
md: 34,
lg: 80,
xl: 160
};
const colorsMap = {
active: {
background: '--color-editor-info',
text: '--color-white'
},
solid: {
background: '--color-editor-info',
text: '--color-white'
},
ghost: {
background: '--color-ghost',
text: '--color-gray'
}
};
const bounce = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.keyframes)`
0% {
opacity: 0;
transform: scale(.8);
transform-origin: 50% 100%;
}
50% {
opacity: 1;
transform: scale(1.2);
transform-origin: 50% 100%;
}
100% {
opacity: 1;
transform: scale(1);
transform-origin: 50% 100%;
}
`;
const Marker = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].span.withConfig({
shouldForwardProp: prop => 'children' === prop
})`
all: revert;
--color-editor-info: #58d0f5;
--color-ghost: #fff;
--color-white: #fff;
--color-gray: #a4afb6;
--color-shadow: rgba(0, 0, 0, 0.2);
--size: ${({
size
}) => sizesMap[size]};
--position: relative;
display: grid;
place-items: center;
position: relative;
height: calc(var(--size) * 1px);
width: calc(var(--size) * 1px);
line-height: 2.8;
font-family: Roboto, sans-serif !important;
font-size: calc(var(--size) * .38px);
font-weight: 500;
color: var(${({
variant
}) => colorsMap[variant].text});
isolation: isolate;
animation: .3s ${bounce} both;
transition: .3s all;
${({
muted
}) => muted && (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.css)`
--color-shadow: transparent;
opacity: .5 !important;
`}
&::before {
--background-color: var(${({
variant
}) => colorsMap[variant].background});
--border-color: var( --background-color );
content: '';
display: block;
position: absolute;
z-index: -1;
inset: 0;
background-color: var( --background-color );
border: calc(var(--size) / 20 * 1px) solid var(--border-color);
border-radius: 100% 100% 25% 100%;
transform: rotate(45deg);
${({
variant
}) => 'active' === variant && (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.css)`
mask-image: radial-gradient(transparent 30%, #000 32%);
`}
${({
variant
}) => 'ghost' === variant && (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.css)`
--border-color: var(--color-gray);
`}
}
`;
Marker.propTypes = {
variant: PropTypes.oneOf(['active', 'solid', 'ghost']).isRequired,
size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']).isRequired,
muted: PropTypes.bool,
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)])
};
Marker.defaultProps = {
variant: 'solid',
size: 'md',
muted: false
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Marker);
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-body.js":
/*!**********************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-body.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelBody)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _panel_resizer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./panel-resizer */ "../assets/js/app/components/ui/panel/panel-resizer.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledPanelBody = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
position: relative !important;
display: flex !important;
flex-direction: column !important;
overflow: hidden !important;
`;
function PanelBody(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledPanelBody, props, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_resizer__WEBPACK_IMPORTED_MODULE_2__["default"], null, props.children));
}
PanelBody.propTypes = {
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)])
};
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-draggable.js":
/*!***************************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-draggable.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelDraggable)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_draggable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-draggable */ "../../../node_modules/react-draggable/build/cjs/cjs.js");
/* harmony import */ var react_draggable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_draggable__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _hooks_use_debounced_callback__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../hooks/use-debounced-callback */ "../assets/js/app/hooks/use-debounced-callback.js");
/* harmony import */ var _panel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./panel */ "../assets/js/app/components/ui/panel/panel.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
function PanelDraggable(props) {
const {
size: {
defaultWidth
}
} = (0,_panel__WEBPACK_IMPORTED_MODULE_3__.usePanelContext)(),
[bounds, setBounds] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({}),
[position, setPosition] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(props.defaultPosition),
positionRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({});
positionRef.current = position;
const onStopDrag = (event, dragElement) => {
const {
x,
y
} = dragElement;
setPosition({
x,
y
});
};
/**
* Reset the position of the panel if it is outside the bounds of the window after resize.
*/
const resetPosition = () => {
const {
x: currentX,
y: currentY
} = positionRef.current;
const {
x: defaultX,
y: defaultY
} = props.defaultPosition;
if (currentX === defaultX && currentY === defaultY) {
return;
}
const newX = currentX < bounds.left || currentX > bounds.right ? defaultX : currentX;
const newY = currentY < bounds.top || currentY > bounds.bottom ? defaultY : currentY;
if (newX === currentX && newY === currentY) {
return;
}
setPosition({
x: newX,
y: newY
});
};
/**
* Disallow dragging the panel outside the window bounds.
* Show at least 15% of the panel on the left and right sides of the window.
* Show at least the panel handle on the bottom of the window.
*/
const calculateBounds = (0,_hooks_use_debounced_callback__WEBPACK_IMPORTED_MODULE_2__["default"])(() => {
const {
innerWidth: windowWidth,
innerHeight: windowHeight
} = window;
setBounds({
top: 0,
left: 0 - defaultWidth * 0.85,
right: windowWidth - defaultWidth * 0.15,
bottom: windowHeight - (props.nodeRef.current?.querySelector(props.handleClass)?.offsetHeight || 0)
});
}, 100);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
resetPosition();
}, [bounds]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
calculateBounds();
window.addEventListener('resize', calculateBounds);
return () => {
window.removeEventListener('resize', calculateBounds);
};
}, []);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react_draggable__WEBPACK_IMPORTED_MODULE_1___default()), {
handle: props.handleClass,
defaultPosition: props.defaultPosition,
nodeRef: props.nodeRef,
bounds: bounds,
position: positionRef.current,
onStop: onStopDrag
}, props.children);
}
PanelDraggable.propTypes = {
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
handleClass: PropTypes.string,
defaultPosition: PropTypes.shape({
x: PropTypes.number,
y: PropTypes.number
}),
nodeRef: PropTypes.shape({
current: PropTypes.object
}),
isFloating: PropTypes.bool
};
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-footer.js":
/*!************************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-footer.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
const PanelFooter = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_0__["default"]))`
background: #fff !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PanelFooter);
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-header-side-col.js":
/*!*********************************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-header-side-col.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const PanelHeaderSideCol = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_0__["default"]))`
display: flex !important;
justify-self: ${({
align
}) => align} !important;
`;
PanelHeaderSideCol.propTypes = {
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
align: PropTypes.oneOf(['start', 'end']).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PanelHeaderSideCol);
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-header-title.js":
/*!******************************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-header-title.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const PanelHeaderTitle = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].h3`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 13px !important;
font-weight: 400 !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: 24px !important;
letter-spacing: normal !important;
word-spacing: normal !important;
color: #6d7882 !important;
text-align: center !important;
flex-grow: 1 !important;
margin: 0 !important;
user-select: none !important;
&::before, &::after {
display: none !important;
}
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PanelHeaderTitle);
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-header.js":
/*!************************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-header.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelHeader)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _panel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./panel */ "../assets/js/app/components/ui/panel/panel.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledPanelHeader = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_2__["default"]))`
display: grid !important;
grid-template-columns: 1fr 2fr 1fr !important;
grid-column-gap: 10px !important;
align-items: center !important;
background: #ffffff !important;
padding: 6px 8px !important;
flex-shrink: 0 !important;
${({
isFloating
}) => isFloating && (0,styled_components__WEBPACK_IMPORTED_MODULE_3__.css)`
cursor: move;
`}
`;
function PanelHeader(props) {
const {
floating: {
active,
handleClassName
}
} = (0,_panel__WEBPACK_IMPORTED_MODULE_1__.usePanelContext)();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledPanelHeader, {
className: handleClassName,
isFloating: active
}, props.children);
}
PanelHeader.propTypes = {
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)])
};
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-loading.js":
/*!*************************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-loading.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelLoading)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icon */ "../assets/js/app/components/ui/icon.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledPanelLoading = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
position: absolute !important;
inset: 0 !important;
background: #e6e9ec !important;
transition: 0.3s all !important;
font-size: 30px !important;
display: grid !important;
place-items: center !important;
color: #a4afb6 !important;
${({
show
}) => !show && (0,styled_components__WEBPACK_IMPORTED_MODULE_3__.css)`
opacity: 0 !important;
pointer-events: none !important;
`}
`;
function PanelLoading(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledPanelLoading, props, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icon__WEBPACK_IMPORTED_MODULE_2__["default"], {
className: "eicon-loading eicon-animation-spin"
}));
}
PanelLoading.propTypes = {
show: PropTypes.bool
};
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel-resizer.js":
/*!*************************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel-resizer.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PanelResizer)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _panel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./panel */ "../assets/js/app/components/ui/panel/panel.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
flex: 1 1 auto !important;
inset: 0 !important;
display: inline-flex !important;
flex-direction: column !important;
overflow: hidden !important;
&.resizing {
user-select: none;
}
`;
const Children = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
overflow-y: auto !important;
flex-grow: 1 !important;
flex-shrink: 1 !important;
`;
const handleProps = {
height: 20
};
const Handle = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_1__["default"]))`
flex: 0 0 ${handleProps.height}px !important;
display: inline-flex !important;
justify-content: center !important;
align-items: center !important;
background-color: #fff !important;
margin-top: 1px !important;
cursor: row-resize !important;
`;
function PanelResizer(props) {
const {
size: {
defaultHeight
}
} = (0,_panel__WEBPACK_IMPORTED_MODULE_2__.usePanelContext)();
const resizableRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const childrenRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const handleRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
let minHeight = 0,
maxHeight,
currentHeight,
currentY = 0;
const onMouseMove = e => {
resizableRef.current.classList.add('resizing');
const delta = e.clientY - currentY;
currentHeight = currentHeight + delta;
if (currentHeight < minHeight) {
currentHeight = minHeight;
}
if (currentHeight > maxHeight) {
currentHeight = maxHeight;
}
currentY = e.clientY;
setCurrentHeight();
};
const onMouseUp = () => {
document.removeEventListener('mousemove', onMouseMove);
resizableRef.current.classList.remove('resizing');
};
const onMouseDown = e => {
currentY = e.clientY;
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
};
const calculateMinMax = () => {
currentHeight = defaultHeight;
setCurrentHeight();
minHeight += handleProps.height;
maxHeight = window.innerHeight;
};
const setCurrentHeight = () => {
resizableRef.current.style.height = `${currentHeight}px`;
};
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
calculateMinMax();
handleRef.current.addEventListener('mousedown', onMouseDown);
return () => {
if (handleRef.current) {
handleRef.current.removeEventListener('mousedown', onMouseDown);
}
};
}, [props.children]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Container, {
ref: resizableRef
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Children, {
ref: childrenRef
}, props.children), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Handle, {
ref: handleRef
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", {
className: "eicon-ellipsis-h"
})));
}
PanelResizer.propTypes = {
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)])
};
/***/ }),
/***/ "../assets/js/app/components/ui/panel/panel.js":
/*!*****************************************************!*\
!*** ../assets/js/app/components/ui/panel/panel.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Panel),
/* harmony export */ usePanelContext: () => (/* binding */ usePanelContext)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../div-base */ "../assets/js/app/components/ui/div-base.js");
/* harmony import */ var _panel_draggable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./panel-draggable */ "../assets/js/app/components/ui/panel/panel-draggable.js");
/* harmony import */ var _panel_body__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./panel-body */ "../assets/js/app/components/ui/panel/panel-body.js");
/* harmony import */ var _panel_footer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./panel-footer */ "../assets/js/app/components/ui/panel/panel-footer.js");
/* harmony import */ var _panel_header__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./panel-header */ "../assets/js/app/components/ui/panel/panel-header.js");
/* harmony import */ var _panel_header_side_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./panel-header-side-col */ "../assets/js/app/components/ui/panel/panel-header-side-col.js");
/* harmony import */ var _panel_header_title__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./panel-header-title */ "../assets/js/app/components/ui/panel/panel-header-title.js");
/* harmony import */ var _panel_loading__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./panel-loading */ "../assets/js/app/components/ui/panel/panel-loading.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../utils */ "../assets/js/app/utils.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledPanel = (0,styled_components__WEBPACK_IMPORTED_MODULE_11__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_2__["default"]))`
display: flex !important;
flex-direction: column !important;
background: #e6e9ec !important;
overflow: hidden !important;
border-radius: 3px !important;
box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1) !important;
${({
defaultSize
}) => defaultSize && (0,styled_components__WEBPACK_IMPORTED_MODULE_11__.css)`
width: ${defaultSize.width}px !important;
max-height: 100vh !important;
`}
${({
isFloating
}) => isFloating && (0,styled_components__WEBPACK_IMPORTED_MODULE_11__.css)`
position: fixed !important;
top: 0 !important;
inset-inline-start: 0 !important;
z-index: ${_utils__WEBPACK_IMPORTED_MODULE_10__.MAX_Z_INDEX} !important;
`}
// The class comes from the react-draggable component.
&:not(.react-draggable-dragging) {
transition: transform 0.3s ease-out !important;
}
*:focus {
outline: none;
}
`;
const PanelContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({});
function Panel(props) {
const panelRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {
return {
floating: {
active: !!props.isFloating,
handleClassName: 'floating-handle'
},
size: {
defaultWidth: props.defaultSize.width,
defaultHeight: props.defaultSize.height
}
};
}, [props.isFloating]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(PanelContext.Provider, {
value: contextValue
}, props.isFloating ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_panel_draggable__WEBPACK_IMPORTED_MODULE_3__["default"], {
handleClass: `.${contextValue.floating.handleClassName}`,
defaultPosition: props.defaultPosition,
nodeRef: panelRef
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(StyledPanel, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {
ref: panelRef,
defaultSize: props.defaultSize
}))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(StyledPanel, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {
defaultSize: props.defaultSize
})));
}
Panel.propTypes = {
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
defaultPosition: PropTypes.shape({
x: PropTypes.number,
y: PropTypes.number
}),
defaultSize: PropTypes.shape({
width: PropTypes.number,
height: PropTypes.number
}),
isFloating: PropTypes.bool
};
Panel.Header = _panel_header__WEBPACK_IMPORTED_MODULE_6__["default"];
Panel.HeaderTitle = _panel_header_title__WEBPACK_IMPORTED_MODULE_8__["default"];
Panel.HeaderSideCol = _panel_header_side_col__WEBPACK_IMPORTED_MODULE_7__["default"];
Panel.Body = _panel_body__WEBPACK_IMPORTED_MODULE_4__["default"];
Panel.Loading = _panel_loading__WEBPACK_IMPORTED_MODULE_9__["default"];
Panel.Footer = _panel_footer__WEBPACK_IMPORTED_MODULE_5__["default"];
function usePanelContext() {
const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PanelContext);
if (!contextValue) {
throw new Error('`usePanelContext` must be used inside Panel\'s components.');
}
return contextValue;
}
/***/ }),
/***/ "../assets/js/app/components/ui/popover/popover-arrow.js":
/*!***************************************************************!*\
!*** ../assets/js/app/components/ui/popover/popover-arrow.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-popover */ "../../../node_modules/@radix-ui/react-popover/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const PopoverArrow = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_1__.Arrow))`
fill: #fff;
margin: 0 10px;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PopoverArrow);
/***/ }),
/***/ "../assets/js/app/components/ui/popover/popover-close-button.js":
/*!**********************************************************************!*\
!*** ../assets/js/app/components/ui/popover/popover-close-button.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ PopoverCloseButton)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-popover */ "../../../node_modules/@radix-ui/react-popover/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icon-button/icon-button */ "../assets/js/app/components/ui/icon-button/icon-button.js");
const StyledCloseButton = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_icon_button_icon_button__WEBPACK_IMPORTED_MODULE_2__["default"]))`
--position-spacing: 4px;
position: absolute;
top: var(--position-spacing);
inset-inline-end: var(--position-spacing);
`;
function PopoverCloseButton(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_4__.Close, {
asChild: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(StyledCloseButton, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {
name: "eicon-editor-close",
size: "sm"
})));
}
PopoverCloseButton.propTypes = {
..._radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_4__.Close.propTypes
};
/***/ }),
/***/ "../assets/js/app/components/ui/popover/popover-content.js":
/*!*****************************************************************!*\
!*** ../assets/js/app/components/ui/popover/popover-content.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-popover */ "../../../node_modules/@radix-ui/react-popover/dist/index.module.js");
/* harmony import */ var _styles_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../styles/animation */ "../assets/js/app/styles/animation.js");
const PopoverContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_2__.Content))`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 1em !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
background: #fff !important;
border-radius: 3px !important;
min-width: 120px !important;
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15) !important;
animation-duration: 400ms !important;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
&[data-state="open"] {
&[data-side="top"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideUpAndFade};
}
&[data-side="right"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideRightAndFade};
}
&[data-side="bottom"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideDownAndFade};
}
&[data-side="left"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideLeftAndFade};
}
*:focus {
outline: none;
}
}
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PopoverContent);
/***/ }),
/***/ "../assets/js/app/components/ui/popover/popover.js":
/*!*********************************************************!*\
!*** ../assets/js/app/components/ui/popover/popover.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _popover_arrow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popover-arrow */ "../assets/js/app/components/ui/popover/popover-arrow.js");
/* harmony import */ var _popover_close_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./popover-close-button */ "../assets/js/app/components/ui/popover/popover-close-button.js");
/* harmony import */ var _popover_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./popover-content */ "../assets/js/app/components/ui/popover/popover-content.js");
/* harmony import */ var _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-popover */ "../../../node_modules/@radix-ui/react-popover/dist/index.module.js");
const Popover = _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Root;
Popover.Trigger = _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Trigger;
Popover.Content = _popover_content__WEBPACK_IMPORTED_MODULE_2__["default"];
Popover.Arrow = _popover_arrow__WEBPACK_IMPORTED_MODULE_0__["default"];
Popover.CloseButton = _popover_close_button__WEBPACK_IMPORTED_MODULE_1__["default"];
Popover.propTypes = _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Root.propTypes;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Popover);
/***/ }),
/***/ "../assets/js/app/components/ui/radio/radio.js":
/*!*****************************************************!*\
!*** ../assets/js/app/components/ui/radio/radio.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Radio)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _radix_ui_react_radio_group__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-radio-group */ "../../../node_modules/@radix-ui/react-radio-group/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../button-base */ "../assets/js/app/components/ui/button-base.js");
const StyledItem = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_1__["default"])).attrs(() => ({
as: _radix_ui_react_radio_group__WEBPACK_IMPORTED_MODULE_3__.Item
}))`
--border-color: #a4afb6;
--background: #fff;
--border: 1px solid var( --border-color );
--border-radius: 100%;
--width: 12px;
--height: 12px;
--display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
margin: 0;
outline: none;
transition: 0.2s all;
overflow: hidden;
&[data-state="checked"] {
--border-color: #39b54a;
}
&:hover, &:focus {
outline: none;
--background: #eee;
& > * {
--background: rgba(57, 181, 74, 0.8);
}
}
`;
const StyledIndicator = (0,styled_components__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_radix_ui_react_radio_group__WEBPACK_IMPORTED_MODULE_3__.Indicator))`
all: revert;
position: absolute !important;
top: 0 !important;
right: 0 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
background: #39b54a !important;
color: #fff !important;
outline: none !important;
font-size: 8px !important;
margin: 2px !important;
border-radius: 100% !important;
width: 6px !important;
height: 6px !important;
`;
function Radio(props) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledItem, props, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledIndicator, null));
}
Radio.propTypes = {
..._radix_ui_react_radio_group__WEBPACK_IMPORTED_MODULE_3__.Item.propTypes
};
Radio.Group = _radix_ui_react_radio_group__WEBPACK_IMPORTED_MODULE_3__.RadioGroup;
/***/ }),
/***/ "../assets/js/app/components/ui/separator/separator.js":
/*!*************************************************************!*\
!*** ../assets/js/app/components/ui/separator/separator.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Separator)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-separator */ "../../../node_modules/@radix-ui/react-separator/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const StyledSeparator = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_2__.Root))`
background: #f1f3f5;
&[data-orientation=horizontal] {
height: 1px;
width: 100%;
margin: 10px 0;
}
&[data-orientation=vertical] {
height: 100%;
width: 1px;
margin: 0 10px;
}
`;
function Separator() {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(StyledSeparator, null);
}
Separator.propTypes = {
..._radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_2__.Root.propTypes
};
/***/ }),
/***/ "../assets/js/app/components/ui/textarea.js":
/*!**************************************************!*\
!*** ../assets/js/app/components/ui/textarea.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _div_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./div-base */ "../assets/js/app/components/ui/div-base.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Container = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_div_base__WEBPACK_IMPORTED_MODULE_2__["default"]))`
--font: 300 12px Roboto, sans-serif;
--line-height: 1.5;
--padding-block: 8px;
font-size: 12px !important;
border-radius: 4px !important;
border: 1px solid #c2cbd2 !important;
transition: .3s border-color, .3s opacity !important;
padding: var(--padding-block) 12px !important;
overflow: auto !important;
width: 100% !important;
box-sizing: border-box !important;
${({
maxRows
}) => maxRows && (0,styled_components__WEBPACK_IMPORTED_MODULE_3__.css)`
--max-rows: ${maxRows};
max-height: calc((1em * var(--line-height) * var(--max-rows)) + (var(--padding-block) * 2)) !important;
`};
textarea {
all: revert;
border: none !important;
font: var( --font ) !important;
line-height: var(--line-height) !important;
padding: 0 !important;
margin: 0 !important;
color: #6d7882 !important;
display: block !important;
height: 100% !important;
&::placeholder {
color: #c2cbd2 !important;
}
}
&:focus-within {
border-color: #a4afb6 !important;
// Accessibility-friendly, since the Container itself has a border on focus.
textarea:focus {
outline: none !important;
border: none !important;
}
}
${({
disabled
}) => disabled && (0,styled_components__WEBPACK_IMPORTED_MODULE_3__.css)`
opacity: .5 !important;
pointer-events: none !important;
`}
${({
autoSize
}) => autoSize && (0,styled_components__WEBPACK_IMPORTED_MODULE_3__.css)`
display: inline-grid !important;
vertical-align: top !important;
align-items: center !important;
textarea {
grid-area: 2 / 1 !important;
resize: none !important;
background: none !important;
appearance: none !important;
box-shadow: none !important;
overflow: hidden !important;
&::placeholder {
all: revert;
}
}
&::after {
content: attr(data-value) ' ' !important;
display: block !important;
font: var( --font ) !important;
white-space: pre-wrap !important;
grid-area: 2 / 1 !important;
visibility: hidden !important;
line-height: var(--line-height) !important;
}`}`;
const Textarea = react__WEBPACK_IMPORTED_MODULE_1___default().forwardRef(({
maxRows,
autoSize,
...props
}, ref) => {
const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(Container, {
maxRows: maxRows,
"data-value": props.value || props.defaultValue,
autoSize: autoSize,
ref: containerRef,
disabled: props.disabled
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("textarea", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {
ref: ref,
onInput: e => {
if (props.onInput) {
props.onInput(e);
}
containerRef.current.dataset.value = e.target.value;
}
})));
});
Textarea.displayName = 'Textarea';
Textarea.propTypes = {
disabled: PropTypes.bool,
autoSize: PropTypes.bool,
maxRows: PropTypes.number,
onInput: PropTypes.func,
value: PropTypes.string,
defaultValue: PropTypes.string
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Textarea);
/***/ }),
/***/ "../assets/js/app/components/ui/toast/toast-action.js":
/*!************************************************************!*\
!*** ../assets/js/app/components/ui/toast/toast-action.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-toast */ "../../../node_modules/@radix-ui/react-toast/dist/index.module.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../button-base */ "../assets/js/app/components/ui/button-base.js");
const ToastAction = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_0__["default"])).attrs(() => ({
as: _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_2__.ToastAction
}))`
--font-weight: 600 !important;
--font-size: inherit !important;
--font-family: inherit !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ToastAction);
/***/ }),
/***/ "../assets/js/app/components/ui/toast/toast-close.js":
/*!***********************************************************!*\
!*** ../assets/js/app/components/ui/toast/toast-close.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-toast */ "../../../node_modules/@radix-ui/react-toast/dist/index.module.js");
/* harmony import */ var _button_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../button-base */ "../assets/js/app/components/ui/button-base.js");
const ToastClose = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_button_base__WEBPACK_IMPORTED_MODULE_0__["default"])).attrs(() => ({
as: _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_2__.ToastClose
}))`
--height: 1em !important;
--width: 1em !important;
--display: block !important;
margin-inline-start: auto !important;
position: relative !important;
&::before,
&::after {
content: '' !important;
display: block !important;
position: absolute !important;
left: 50% !important;
top: 50% !important;
margin-left: -1px !important;
margin-top: -.5em !important;
height: 1em !important;
width: 2px;
border-radius: 9999px !important;
background-color: #69727d !important;
transform-origin: center center !important;
transition: .3s all;
}
&::before {
transform: rotate( 45deg ) !important;
}
&::after {
transform: rotate( -45deg ) !important;
}
&:hover::before,
&:hover::after {
background-color: #232629 !important
}
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ToastClose);
/***/ }),
/***/ "../assets/js/app/components/ui/toast/toast-description.js":
/*!*****************************************************************!*\
!*** ../assets/js/app/components/ui/toast/toast-description.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-toast */ "../../../node_modules/@radix-ui/react-toast/dist/index.module.js");
const ToastDescription = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_1__.ToastDescription))`
font-weight: normal !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ToastDescription);
/***/ }),
/***/ "../assets/js/app/components/ui/toast/toast-icon.js":
/*!**********************************************************!*\
!*** ../assets/js/app/components/ui/toast/toast-icon.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../icon */ "../assets/js/app/components/ui/icon.js");
const ToastIcon = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_icon__WEBPACK_IMPORTED_MODULE_0__["default"]))`
color: var( --color ) !important; // Inherited from the component.
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ToastIcon);
/***/ }),
/***/ "../assets/js/app/components/ui/toast/toast-title.js":
/*!***********************************************************!*\
!*** ../assets/js/app/components/ui/toast/toast-title.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-toast */ "../../../node_modules/@radix-ui/react-toast/dist/index.module.js");
const ToastTitle = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_1__.ToastTitle))`
font-weight: bold !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ToastTitle);
/***/ }),
/***/ "../assets/js/app/components/ui/toast/toast-viewport.js":
/*!**************************************************************!*\
!*** ../assets/js/app/components/ui/toast/toast-viewport.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-toast */ "../../../node_modules/@radix-ui/react-toast/dist/index.module.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils */ "../assets/js/app/utils.js");
const ToastViewport = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_2__.ToastViewport))`
display: flex !important;
flex-direction: column !important;
gap: 12px !important;
position: fixed !important;
max-width: 960px !important;
width: 100% !important;
left: 50% !important;
bottom: 10px !important;
padding-inline: 0 10px !important;
transform: translateX( -50% ) !important;
z-index: ${_utils__WEBPACK_IMPORTED_MODULE_0__.MAX_Z_INDEX} !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ToastViewport);
/***/ }),
/***/ "../assets/js/app/components/ui/toast/toast.js":
/*!*****************************************************!*\
!*** ../assets/js/app/components/ui/toast/toast.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-toast */ "../../../node_modules/@radix-ui/react-toast/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _toast_action__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toast-action */ "../assets/js/app/components/ui/toast/toast-action.js");
/* harmony import */ var _toast_icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toast-icon */ "../assets/js/app/components/ui/toast/toast-icon.js");
/* harmony import */ var _styles_animation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../styles/animation */ "../assets/js/app/styles/animation.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const colorsMap = {
default: {
background: '#f1f2f3',
icon: '#69727d',
action: '#69727d'
},
success: {
background: '#e9fbee',
icon: '#1d6d38',
action: '#1d6d38'
},
warning: {
background: '#fff5e6',
icon: '#976402',
action: '#976402'
},
info: {
background: '#e6f6ff',
icon: '#006bb8',
action: '#006bb8'
},
danger: {
background: '#fde8ec',
icon: '#b92136',
action: '#b92136'
}
};
const Toast = (0,styled_components__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Toast))`
display: flex !important;
gap: 8px !important;
align-items: center !important;
width: 100% !important;
box-sizing: border-box !important;
padding: 12px 16px !important;
font-size: 14px !important;
line-height: normal !important;
color: #3a3f45 !important;
text-align: start !important;
border-radius: 6px !important;
box-shadow: 0 0 15px 0 rgba( 0,0,0,.2 ) !important;
animation-duration: 400ms !important;
animation-timing-function: cubic-bezier( 0.16, 1, 0.3, 1 ) !important;
background-color: ${({
variant
}) => colorsMap[variant].background} !important;
&[data-state="open"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_2__.slideUpAndFade} !important;
}
&[data-state="closed"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_2__.fadeOut} !important;
}
${_toast_icon__WEBPACK_IMPORTED_MODULE_1__["default"]} {
--color: ${({
variant
}) => colorsMap[variant].icon} !important;
}
${_toast_action__WEBPACK_IMPORTED_MODULE_0__["default"]} {
--color: ${({
variant
}) => colorsMap[variant].icon} !important;
}
`;
Toast.propTypes = {
variant: PropTypes.oneOf(['default', 'success', 'warning', 'info', 'danger']).isRequired
};
Toast.defaultProps = {
variant: 'default'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Toast);
/***/ }),
/***/ "../assets/js/app/components/ui/tooltip/tooltip-arrow.js":
/*!***************************************************************!*\
!*** ../assets/js/app/components/ui/tooltip/tooltip-arrow.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-tooltip */ "../../../node_modules/@radix-ui/react-tooltip/dist/index.module.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const TooltipArrow = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_1__.Arrow))`
fill: #26292c;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TooltipArrow);
/***/ }),
/***/ "../assets/js/app/components/ui/tooltip/tooltip-content.js":
/*!*****************************************************************!*\
!*** ../assets/js/app/components/ui/tooltip/tooltip-content.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-tooltip */ "../../../node_modules/@radix-ui/react-tooltip/dist/index.module.js");
/* harmony import */ var _styles_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../styles/animation */ "../assets/js/app/styles/animation.js");
const TooltipContent = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_2__.Content))`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 12px !important;
font-weight: normal !important;
text-transform: none !important;
font-style: normal !important;
text-decoration: none !important;
line-height: normal !important;
letter-spacing: normal !important;
word-spacing: normal !important;
background: #26292c !important;
color: #fff !important;
border-radius: 3px !important;
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15) !important;
padding: 5px 12px !important;
animation-duration: 400ms !important;
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
will-change: transform, opacity !important;
max-width: 150px !important;
&[data-state="delayed-open"] {
&[data-side="top"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideUpAndFade}
}
&[data-side="right"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideRightAndFade}
}
&[data-side="bottom"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideDownAndFade}
}
&[data-side="left"] {
animation-name: ${_styles_animation__WEBPACK_IMPORTED_MODULE_0__.slideLeftAndFade}
}
}
`;
TooltipContent.propTypes = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_2__.Content.propTypes;
TooltipContent.defaultProps = {
side: 'top'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TooltipContent);
/***/ }),
/***/ "../assets/js/app/components/ui/tooltip/tooltip.js":
/*!*********************************************************!*\
!*** ../assets/js/app/components/ui/tooltip/tooltip.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-tooltip */ "../../../node_modules/@radix-ui/react-tooltip/dist/index.module.js");
/* harmony import */ var _tooltip_arrow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tooltip-arrow */ "../assets/js/app/components/ui/tooltip/tooltip-arrow.js");
/* harmony import */ var _tooltip_content__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tooltip-content */ "../assets/js/app/components/ui/tooltip/tooltip-content.js");
const Tooltip = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_2__.Root;
Tooltip.Trigger = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_2__.Trigger;
Tooltip.Arrow = _tooltip_arrow__WEBPACK_IMPORTED_MODULE_0__["default"];
Tooltip.Content = _tooltip_content__WEBPACK_IMPORTED_MODULE_1__["default"];
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Tooltip);
/***/ }),
/***/ "../assets/js/app/components/ui/typeahead/typeahead-list-footer.js":
/*!*************************************************************************!*\
!*** ../assets/js/app/components/ui/typeahead/typeahead-list-footer.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _typeahead_list_item__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeahead-list-item */ "../assets/js/app/components/ui/typeahead/typeahead-list-item.js");
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const TypeaheadListFooter = (0,styled_components__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_typeahead_list_item__WEBPACK_IMPORTED_MODULE_0__["default"])).attrs(() => ({
role: 'contentinfo'
}))`
font-family: Roboto, sans-serif !important;
background: #f1f3f5 !important;
text-align: center !important;
font-size: 12px !important;
line-height: 1.5 !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TypeaheadListFooter);
/***/ }),
/***/ "../assets/js/app/components/ui/typeahead/typeahead-list-item.js":
/*!***********************************************************************!*\
!*** ../assets/js/app/components/ui/typeahead/typeahead-list-item.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ TypeaheadListItem)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const StyledItem = styled_components__WEBPACK_IMPORTED_MODULE_2__["default"].li`
all: revert;
font-family: Roboto, sans-serif !important;
font-size: 12px !important;
color: #6d7882 !important;
background: #ffffff !important;
padding: 8px !important;
cursor: pointer !important;
&:first-child {
border-top-right-radius: inherit;
border-top-left-radius: inherit;
}
&:last-child {
border-bottom-right-radius: inherit;
border-bottom-left-radius: inherit;
}
&[role="option"]:hover,
&[aria-selected="true"] {
background: #58d0f5 !important;
&,
& * {
color: #ffffff !important;
}
}
&[aria-disabled="true"] {
cursor: not-allowed !important;
opacity: .5 !important;
}
`;
function TypeaheadListItem({
children,
value,
disabled,
...rest
}) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(StyledItem, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({
role: disabled ? 'listitem' : 'option',
"data-value": value
}, disabled ? {
'aria-disabled': true
} : {}, rest), children);
}
TypeaheadListItem.propTypes = {
value: PropTypes.string.isRequired,
disabled: PropTypes.bool,
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]).isRequired
};
TypeaheadListItem.defaultProps = {
value: ''
};
/***/ }),
/***/ "../assets/js/app/components/ui/typeahead/typeahead-list.js":
/*!******************************************************************!*\
!*** ../assets/js/app/components/ui/typeahead/typeahead-list.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const TypeaheadList = styled_components__WEBPACK_IMPORTED_MODULE_0__["default"].ul`
all: revert;
padding: 0 !important;
margin: 0 !important;
list-style: none !important;
width: 272px !important;
z-index: 1 !important; // Just needs any 'z-index' value in order to appear above other things.
background: #ffffff !important;
border-radius: 3px !important;
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15) !important;
`;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TypeaheadList);
/***/ }),
/***/ "../assets/js/app/components/ui/typeahead/typeahead.js":
/*!*************************************************************!*\
!*** ../assets/js/app/components/ui/typeahead/typeahead.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _hooks_use_debounced_callback__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../hooks/use-debounced-callback */ "../assets/js/app/hooks/use-debounced-callback.js");
/* harmony import */ var _typeahead_list__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./typeahead-list */ "../assets/js/app/components/ui/typeahead/typeahead-list.js");
/* harmony import */ var _typeahead_list_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./typeahead-list-item */ "../assets/js/app/components/ui/typeahead/typeahead-list-item.js");
/* harmony import */ var _typeahead_list_footer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./typeahead-list-footer */ "../assets/js/app/components/ui/typeahead/typeahead-list-footer.js");
/* harmony import */ var _github_text_expander_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @github/text-expander-element */ "../../../node_modules/@github/text-expander-element/dist/index.js");
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../../../node_modules/prop-types/index.js");
const Typeahead = props => {
const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),
fragment = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
/**
* Debounced fragment renderer.
*
* @param {Function} resolve - Promise resolve function.
* @param {string} text - Text to pass to the rendered fragment as a filter prop.
*
* @return {void}
*/
const debouncedResultsRender = (0,_hooks_use_debounced_callback__WEBPACK_IMPORTED_MODULE_1__["default"])(({
resolve,
text
}) => {
if (!fragment.current) {
fragment.current = document.createElement('div');
}
const result = props.fragment({
search: text
});
ReactDOM.render(result, fragment.current); // eslint-disable-line react/no-deprecated
resolve({
matched: true,
fragment: fragment.current
});
}, props.debounce);
/**
* Handle mention change.
*
* @param {CustomEvent} e
*
* @return {void}
*/
const onChange = e => {
const {
provide,
text
} = e.detail;
provide(new Promise(resolve => debouncedResultsRender({
resolve,
text
})));
};
/**
* Handle mention select.
*
* @param {CustomEvent} e
*
* @return {void}
*/
const onValue = e => {
const {
item
} = e.detail;
e.detail.value = `${props.handle}${item.dataset.value}`;
props.onSelect(item, e);
};
// Init & cleanup events.
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
ref.current.addEventListener('text-expander-change', onChange);
ref.current.addEventListener('text-expander-value', onValue);
return () => {
if (ref.current) {
ref.current.removeEventListener('text-expander-change', onChange);
ref.current.removeEventListener('text-expander-value', onValue);
}
};
}, []);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("text-expander", {
keys: props.handle,
ref: ref,
multiword: props.multiword ? props.handle : null
}, props.children);
};
Typeahead.List = _typeahead_list__WEBPACK_IMPORTED_MODULE_2__["default"];
Typeahead.ListItem = _typeahead_list_item__WEBPACK_IMPORTED_MODULE_3__["default"];
Typeahead.ListFooter = _typeahead_list_footer__WEBPACK_IMPORTED_MODULE_4__["default"];
Typeahead.propTypes = {
fragment: PropTypes.func.isRequired,
debounce: PropTypes.number.isRequired,
handle: PropTypes.string.isRequired,
multiword: PropTypes.bool.isRequired,
children: PropTypes.node.isRequired,
onSelect: PropTypes.func.isRequired
};
Typeahead.defaultProps = {
debounce: 0,
handle: '@',
multiword: false,
onSelect: () => {}
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Typeahead);
/***/ }),
/***/ "../assets/js/app/context/elements.js":
/*!********************************************!*\
!*** ../assets/js/app/context/elements.js ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ElementsProvider: () => (/* binding */ ElementsProvider),
/* harmony export */ useElements: () => (/* binding */ useElements)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "../../../node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
const ElementsContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);
/**
*
* @return {{elements: Map, getDocumentIdByElement: Function}} context
*/
const useElements = () => {
return (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ElementsContext);
};
const ElementsProvider = props => {
const [elements, setElements] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(() => new Map());
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
const map = new Map(),
noteCapableElements = document.querySelectorAll('.elementor-element[data-id]');
noteCapableElements.forEach(element => {
const {
id
} = element.dataset;
if (!map.has(id)) {
map.set(id, element);
}
});
setElements(map);
}, []);
/**
* Get the document ID for an element.
* Used mainly for handling Header / Footer notes when create a note in a page and not directly on them.
*
* @param {string} elementId - Elementor element ID.
* @param {string|number} defaultId - Default ID to return.
*
* @return {string|number}
*/
const getDocumentIdByElement = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((elementId, defaultId = window.top.$e.components.get('notes').config.route.post_id) => {
if (!elements.has(elementId)) {
return defaultId;
}
const document = elements.get(elementId).closest('[data-elementor-id]');
if (!document) {
return defaultId;
}
return document.dataset.elementorId;
}, [elements]);
const value = {
elements,
getDocumentIdByElement
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ElementsContext.Provider, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({
value: value
}, props));
};
/***/ }),
/***/ "../assets/js/app/hooks/use-active-thread.js":
/*!***************************************************!*\
!*** ../assets/js/app/hooks/use-active-thread.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ NEW_THREAD: () => (/* binding */ NEW_THREAD),
/* harmony export */ THREAD: () => (/* binding */ THREAD),
/* harmony export */ "default": () => (/* binding */ useActiveThread)
/* harmony export */ });
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
const THREAD = 'thread';
const NEW_THREAD = 'new-thread';
function useActiveThread() {
const activeThread = (0,react_redux__WEBPACK_IMPORTED_MODULE_0__.useSelector)(state => state.notes.active);
/**
* Set the current active thread.
*
* @return void
*/
const setActive = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(({
type,
data
}) => {
const allowedTypes = [THREAD, NEW_THREAD];
if (!allowedTypes.includes(type)) {
throw new Error('`setActive()` type must be one of: ' + allowedTypes.join(', '));
}
return window.top.$e.run('notes/set-active', {
type,
data
});
}, []);
/**
* Clear the current active thread state.
*
* @param {number|null} id - Always clear if `id = null`, or clear only if `id` is provided and is the active thread.
*
* @return void
*/
const clearActive = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((id = null) => {
return window.top.$e.run('notes/clear-active', {
id
});
}, []);
/**
* Determine of a thread is currently active.
*
* @return {boolean}
*/
const isThreadActive = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(noteId => {
return THREAD === activeThread?.type && activeThread?.data.noteId === noteId;
}, [activeThread]);
return {
activeThread,
setActive,
clearActive,
isThreadActive
};
}
/***/ }),
/***/ "../assets/js/app/hooks/use-auto-focus.js":
/*!************************************************!*\
!*** ../assets/js/app/hooks/use-auto-focus.js ***!
\************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useAutoFocus)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/**
* When using the native autofocus and the input is filled with value the cursor
* will be positioned at the start of the input value, this hook make sure the cursor will be at the end.
*
* @param {string|undefined} value the value of the input
* @return {React.MutableRefObject} reference
*/
function useAutoFocus(value) {
const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (ref.current) {
const lastCharPosition = value ? value.length : 0;
ref.current.focus();
ref.current.setSelectionRange(lastCharPosition, lastCharPosition);
}
}, []);
return ref;
}
/***/ }),
/***/ "../assets/js/app/hooks/use-debounced-callback.js":
/*!********************************************************!*\
!*** ../assets/js/app/hooks/use-debounced-callback.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useDebouncedCallback)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function useDebouncedCallback(callback, wait) {
const timeout = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((...args) => {
const later = () => {
clearTimeout(timeout.current);
callback(...args);
};
clearTimeout(timeout.current);
timeout.current = setTimeout(later, wait);
}, [callback, wait]);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-forms-in-writing-mode.js":
/*!***********************************************************!*\
!*** ../assets/js/app/hooks/use-forms-in-writing-mode.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useFormsInWritingMode)
/* harmony export */ });
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/**
* A util that manage all the forms that the user start to write some content on them.
*
* @return {Object} results
*/
function useFormsInWritingMode() {
const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(),
{
actions
} = window.top.$e.store.get('notes'),
formsInWritingMode = (0,react_redux__WEBPACK_IMPORTED_MODULE_0__.useSelector)(state => state.notes.formsInWritingMode);
const isInWritingMode = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(id => formsInWritingMode.includes(id), [formsInWritingMode]);
const addToWritingMode = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(id => dispatch(actions.addFormToWritingMode(id)), [dispatch]);
const removeFromWritingMode = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(id => dispatch(actions.removeFormFromWritingMode(id)), [dispatch]);
return {
formsInWritingMode,
isInWritingMode,
addToWritingMode,
removeFromWritingMode
};
}
/***/ }),
/***/ "../assets/js/app/hooks/use-new-thread-events.js":
/*!*******************************************************!*\
!*** ../assets/js/app/hooks/use-new-thread-events.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ DISABLE_NEW_THREAD: () => (/* binding */ DISABLE_NEW_THREAD),
/* harmony export */ "default": () => (/* binding */ useNewThreadEvents)
/* harmony export */ });
/* harmony import */ var _use_user_can__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-user-can */ "../assets/js/app/hooks/use-user-can.js");
/* harmony import */ var _use_active_thread__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-active-thread */ "../assets/js/app/hooks/use-active-thread.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _context_elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../context/elements */ "../assets/js/app/context/elements.js");
// ClassName used to disable new thread events on click.
const DISABLE_NEW_THREAD = 'e-notes--disable-new-thread';
// ClassName used to display the mark and the hover on an element.
const NOTABLE_CLASSNAME = 'e-route-notes--notable';
/**
* Bind click events to notable elements.
*
* @return {void}
*/
function useNewThreadEvents() {
const canCreateThread = useCanCreateThread(),
{
elements
} = (0,_context_elements__WEBPACK_IMPORTED_MODULE_3__.useElements)(),
{
setActive
} = (0,_use_active_thread__WEBPACK_IMPORTED_MODULE_1__["default"])();
// Don't open new thread popover when clicking on an elements that disables it.
// (e.g. marker that opens a note).
const isNewThreadDisabled = e => {
const isDisabledByKeyboard = e.ctrlKey || e.metaKey || e.altKey,
isDisabledByClass = e.target.closest(`.${DISABLE_NEW_THREAD}`);
return isDisabledByKeyboard || isDisabledByClass;
};
// Disable default links behavior.
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
const onClick = e => {
if (isNewThreadDisabled(e)) {
return;
}
e.preventDefault();
e.stopPropagation();
};
elements.forEach(element => {
element.addEventListener('click', onClick);
});
return () => {
elements.forEach(element => {
element.removeEventListener('click', onClick);
});
};
}, [elements]);
// Change the active element on Elementor element click, to open a new-thread popover.
(0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
const onPointerDown = e => {
const isPrimaryMouseButton = 1 === e.buttons;
if (!isPrimaryMouseButton || isNewThreadDisabled(e)) {
return;
}
e.preventDefault();
e.stopPropagation();
setActive({
type: _use_active_thread__WEBPACK_IMPORTED_MODULE_1__.NEW_THREAD,
data: {
elementId: e.currentTarget.dataset.id,
position: getClickPositionRelativeToTarget(e)
}
});
};
// Bind events.
if (elements.size && canCreateThread) {
elements.forEach(element => {
// Using `pointerdown` instead of `click` because when interacting out of the popover,
// a `click` event is being propagated to the underlying elements when the user releases
// the mouse pointer, which triggers the click handler. This behavior causes a bug where
// a new thread form is being opened instead of just closing the popover.
element.addEventListener('pointerdown', onPointerDown);
});
document.body.classList.add(NOTABLE_CLASSNAME);
}
// Cleanup.
return () => {
elements.forEach(element => {
element.removeEventListener('pointerdown', onPointerDown);
});
document.body.classList.remove(NOTABLE_CLASSNAME);
};
}, [elements, canCreateThread]);
}
/**
* Check if the user has permissions to create thread and there is no active thread.
*
* @return {boolean} does user have permissions to create a thread
*/
function useCanCreateThread() {
const hasPermission = (0,_use_user_can__WEBPACK_IMPORTED_MODULE_0__["default"])(_use_user_can__WEBPACK_IMPORTED_MODULE_0__.CAPABILITY_CREATE),
{
activeThread
} = (0,_use_active_thread__WEBPACK_IMPORTED_MODULE_1__["default"])();
return (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(() => hasPermission && !activeThread, [hasPermission, activeThread]);
}
/**
* Get the mouse click position as percentages, relative to the `currentTarget`.
*
* @param {MouseEvent} e
*
* @return {{x: number, y: number}} location
*/
function getClickPositionRelativeToTarget(e) {
const rect = e.currentTarget.getBoundingClientRect();
return {
x: (e.clientX - rect.left) / rect.width * 100,
y: (e.clientY - rect.top) / rect.height * 100
};
}
/***/ }),
/***/ "../assets/js/app/hooks/use-note.js":
/*!******************************************!*\
!*** ../assets/js/app/hooks/use-note.js ***!
\******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useNote)
/* harmony export */ });
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
// Hook to fetch note data by ID.
function useNote(noteId) {
const queryClient = (0,react_query__WEBPACK_IMPORTED_MODULE_1__.useQueryClient)(),
onSuccess = useOnSuccess(queryClient),
placeholderData = usePlaceholderDataCallback(queryClient, noteId);
return (0,react_query__WEBPACK_IMPORTED_MODULE_1__.useQuery)(['note', noteId], async ({
queryKey: [, id],
signal
}) => {
const {
data
} = await window.top.$e.data.get('notes/index', {
id
}, {
refresh: true,
signal
});
return _models_note__WEBPACK_IMPORTED_MODULE_0__["default"].createFromResponse(data.data);
}, {
onSuccess,
placeholderData // Use Note placeholder data from the "main" query.
});
}
// Get placeholder data for note.
function usePlaceholderDataCallback(queryClient, noteId) {
return (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {
return queryClient.getQueryData('notes', {
active: true,
exact: false
})?.find(note => note.id === noteId);
}, [queryClient, noteId]);
}
// Hook to replace the Thread data in the "main" query, each time a Thread is fetched.
function useOnSuccess(queryClient) {
return (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(fetchedNote => {
if (fetchedNote.isReply()) {
return;
}
queryClient.setQueriesData({
queryKey: ['notes'],
exact: false,
active: true
}, notes => {
if (!notes) {
return notes;
}
// Replace the corresponding Thread (it must be new array to trigger re-render in react components).
return notes.map(note => note.id === fetchedNote.id ? fetchedNote : note);
});
}, [queryClient]);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-notes-config.js":
/*!**************************************************!*\
!*** ../assets/js/app/hooks/use-notes-config.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useNotesConfig)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/**
* Returns notes configuration
*
* @return {Object} config
*/
function useNotesConfig() {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => window.top.$e.components.get('notes').config, []);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-notes-filters.js":
/*!***************************************************!*\
!*** ../assets/js/app/hooks/use-notes-filters.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useNotesFilters)
/* harmony export */ });
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/**
* Use & set Notes filters from the global state.
*/
function useNotesFilters() {
const filters = (0,react_redux__WEBPACK_IMPORTED_MODULE_0__.useSelector)(state => state.notes.filters),
setFilters = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((newFilters, overwrite = false) => {
return window.top.$e.run('notes/filter', {
filters: newFilters,
overwrite
});
}, []);
return [filters, setFilters];
}
/***/ }),
/***/ "../assets/js/app/hooks/use-notes-mutations.js":
/*!*****************************************************!*\
!*** ../assets/js/app/hooks/use-notes-mutations.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useCreateMutation: () => (/* binding */ useCreateMutation),
/* harmony export */ useDeleteMutation: () => (/* binding */ useDeleteMutation),
/* harmony export */ useReadMutation: () => (/* binding */ useReadMutation),
/* harmony export */ useResolveMutation: () => (/* binding */ useResolveMutation),
/* harmony export */ useUpdateMutation: () => (/* binding */ useUpdateMutation)
/* harmony export */ });
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var _use_notes_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony import */ var _context_elements__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../context/elements */ "../assets/js/app/context/elements.js");
/* harmony import */ var _use_active_thread__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./use-active-thread */ "../assets/js/app/hooks/use-active-thread.js");
function useCreateMutation() {
const invalidateSingle = useInvalidateSingle(),
invalidateList = useInvalidateList(),
invalidateSummary = useInvalidateSummary(),
{
getDocumentIdByElement
} = (0,_context_elements__WEBPACK_IMPORTED_MODULE_5__.useElements)(),
config = (0,_use_notes_config__WEBPACK_IMPORTED_MODULE_1__["default"])();
return (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useMutation)(async ({
postId,
elementId,
content,
position = {
x: 0,
y: 0
},
routeUrl = config.route.url,
routeTitle = config.route.title,
routePostId = config.route.post_id,
status = 'publish',
parentId,
isPublic = null
}) => {
if (!postId) {
postId = getDocumentIdByElement(elementId);
}
const {
data
} = await window.top.$e.data.create('notes/index', {
post_id: postId,
element_id: elementId,
content,
position,
route_post_id: routePostId,
route_url: routeUrl,
route_title: routeTitle,
status,
parent_id: parentId,
mentioned_usernames: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.extractMentions)(content),
...(null !== isPublic ? {
is_public: isPublic
} : {})
});
return _models_note__WEBPACK_IMPORTED_MODULE_0__["default"].createFromResponse(data.data);
}, {
onSuccess: note => Promise.all(note.isThread() ? [invalidateSummary({
exact: false
}), invalidateList({
exact: false
})] : [invalidateSingle({
id: note.parentId
})])
});
}
function useUpdateMutation() {
const invalidateSingle = useInvalidateSingle();
return (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useMutation)(async ({
id,
values: {
content
}
}) => {
const {
data
} = await window.top.$e.data.update('notes/index', {
content,
mentioned_usernames: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.extractMentions)(content)
}, {
id
});
return _models_note__WEBPACK_IMPORTED_MODULE_0__["default"].createFromResponse(data.data);
}, {
onSuccess: note => invalidateSingle({
id: note.isThread() ? note.id : note.parentId
})
});
}
function useDeleteMutation() {
const invalidateList = useInvalidateList(),
invalidateSingle = useInvalidateSingle(),
invalidateSummary = useInvalidateSummary(),
{
clearActive
} = (0,_use_active_thread__WEBPACK_IMPORTED_MODULE_6__["default"])();
return (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useMutation)(async ({
id,
parentId,
force = false
}) => {
await window.top.$e.data.delete('notes/index', (0,_utils__WEBPACK_IMPORTED_MODULE_2__.normalizeQueryParams)({
id,
force
}));
return {
id,
parentId
};
}, {
onSuccess: ({
id,
parentId
}) => {
clearActive(id);
const isThread = !parentId;
return Promise.all(isThread ? [invalidateSummary({
exact: false
}), invalidateList({
exact: false
})] : [invalidateSingle({
id: parentId
})]);
}
});
}
function useResolveMutation() {
const invalidateList = useInvalidateList(),
invalidateSingle = useInvalidateSingle(),
invalidateSummary = useInvalidateSummary();
return (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useMutation)(async ({
id,
isResolved
}) => {
const {
data
} = await window.top.$e.data.update('notes/index', {
is_resolved: isResolved
}, {
id
});
return _models_note__WEBPACK_IMPORTED_MODULE_0__["default"].createFromResponse(data.data);
}, {
onSuccess: note => {
// Invalidate only the queries that do filter by is_resolved.
const listPredicate = ({
queryKey
}) => Object.prototype.hasOwnProperty.call(queryKey[1] || {}, 'is_resolved');
return Promise.all([invalidateSingle({
id: note.id
}), invalidateList({
predicate: listPredicate
}), invalidateSummary({
predicate: listPredicate
})]);
}
});
}
function useReadMutation() {
const invalidateList = useInvalidateList(),
invalidateSingle = useInvalidateSingle(),
invalidateSummary = useInvalidateSummary();
return (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useMutation)(async ({
ids,
isRead
}) => {
ids = ids.filter(id => !!id && id > 0);
await window.top.$e.data[isRead ? 'create' : 'delete']('notes/read-status', {
ids
});
return ids;
}, {
onSuccess: ids => {
// Invalidate "single queries" that their ID was mutated.
const singlePredicate = ({
queryKey
}) => ids.includes(queryKey[1]);
// Invalidate only the queries that filter by only_unread.
const listPredicate = ({
queryKey
}) => Object.prototype.hasOwnProperty.call(queryKey[1] || {}, 'only_unread');
return Promise.all([invalidateSingle({
predicate: singlePredicate
}), invalidateSummary({
predicate: listPredicate
}), invalidateList({
predicate: listPredicate,
refetchActive: false // Should not remove the note from the active list after reading it, even if `only_unread` is applied.
})]);
}
});
}
function useInvalidateSingle() {
const queryClient = (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useQueryClient)();
return (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(({
id,
...options
}) => {
const queryKey = ['note'];
if (id) {
queryKey.push(id);
}
return queryClient.invalidateQueries(queryKey, options);
}, [queryClient]);
}
function useInvalidateList() {
const queryClient = (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useQueryClient)();
return (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((options = {}) => {
const queryKey = ['notes'];
return queryClient.invalidateQueries(queryKey, options);
}, [queryClient]);
}
function useInvalidateSummary() {
const queryClient = (0,react_query__WEBPACK_IMPORTED_MODULE_4__.useQueryClient)();
return (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((options = {}) => {
const queryKey = ['notes/summary'];
return queryClient.invalidateQueries(queryKey, options);
}, [queryClient]);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-notes-or-notes-summary.js":
/*!************************************************************!*\
!*** ../assets/js/app/hooks/use-notes-or-notes-summary.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ VIEW_NOTES: () => (/* binding */ VIEW_NOTES),
/* harmony export */ VIEW_NOTES_SUMMARY: () => (/* binding */ VIEW_NOTES_SUMMARY),
/* harmony export */ "default": () => (/* binding */ useNotesOrNotesSummary)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _use_notes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-notes */ "../assets/js/app/hooks/use-notes.js");
/* harmony import */ var _use_notes_summary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-notes-summary */ "../assets/js/app/hooks/use-notes-summary.js");
const VIEW_NOTES = 'notes';
const VIEW_NOTES_SUMMARY = 'notes-summary';
function useNotesOrNotesSummary() {
const [view, setView] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(VIEW_NOTES),
isNotesView = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => VIEW_NOTES === view, [view]),
isNotesSummaryView = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => VIEW_NOTES_SUMMARY === view, [view]);
const notesQuery = (0,_use_notes__WEBPACK_IMPORTED_MODULE_1__["default"])({
enabled: isNotesView
}),
notesSummaryQuery = (0,_use_notes_summary__WEBPACK_IMPORTED_MODULE_2__["default"])({
enabled: isNotesSummaryView
});
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
...(VIEW_NOTES === view ? notesQuery : notesSummaryQuery),
setView,
view,
isNotesView,
isNotesSummaryView
}), [notesQuery, notesSummaryQuery]);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-notes-summary.js":
/*!***************************************************!*\
!*** ../assets/js/app/hooks/use-notes-summary.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useNotesSummary)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
/* harmony import */ var _models_note_summary__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/note-summary */ "../assets/js/app/models/note-summary.js");
/* harmony import */ var _use_notes_filters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./use-notes-filters */ "../assets/js/app/hooks/use-notes-filters.js");
const defaultOptions = {
enabled: true,
params: {}
};
function useNotesSummary(rawOptions = {}) {
const [filters] = (0,_use_notes_filters__WEBPACK_IMPORTED_MODULE_4__["default"])();
const options = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
...defaultOptions,
...rawOptions
}), [rawOptions]);
const queryParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.normalizeQueryParams)({
...filters,
...(options.params || {})
}), [options.params, filters]);
return (0,react_query__WEBPACK_IMPORTED_MODULE_1__.useQuery)(['notes/summary', queryParams], async ({
queryKey: [, params],
signal
}) => {
const {
data
} = await window.top.$e.data.get('notes/summary', {
parent_id: 0,
...params
}, {
refresh: true,
signal
});
return data.data.map(rawNote => {
return _models_note_summary__WEBPACK_IMPORTED_MODULE_3__["default"].createFromResponse(rawNote);
});
}, {
keepPreviousData: true,
enabled: options.enabled
});
}
/***/ }),
/***/ "../assets/js/app/hooks/use-notes.js":
/*!*******************************************!*\
!*** ../assets/js/app/hooks/use-notes.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useNotes)
/* harmony export */ });
/* harmony import */ var _models_note__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../models/note */ "../assets/js/app/models/note.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
/* harmony import */ var _use_notes_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
/* harmony import */ var _use_notes_filters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./use-notes-filters */ "../assets/js/app/hooks/use-notes-filters.js");
const defaultOptions = {
enabled: true,
params: {}
};
function useNotes(rawOptions = {}) {
const {
route
} = (0,_use_notes_config__WEBPACK_IMPORTED_MODULE_4__["default"])();
const [filters] = (0,_use_notes_filters__WEBPACK_IMPORTED_MODULE_5__["default"])();
const options = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => ({
...defaultOptions,
...rawOptions
}), [rawOptions]);
const queryParams = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {
const routeFilter = route.is_elementor_library ? {
post_id: route.post_id
} : {
route_url: encodeURIComponent(route.url)
};
return (0,_utils__WEBPACK_IMPORTED_MODULE_3__.normalizeQueryParams)({
parent_id: 0,
order_by: 'last_activity_at',
order: 'desc',
...routeFilter,
...filters,
...(options.params || {})
});
}, [route, filters, options.params]);
return (0,react_query__WEBPACK_IMPORTED_MODULE_2__.useQuery)(['notes', queryParams], async ({
queryKey: [, params],
signal
}) => {
const {
data
} = await window.top.$e.data.get('notes/index', params, {
refresh: true,
signal
});
return data.data.map(rawNote => {
return _models_note__WEBPACK_IMPORTED_MODULE_0__["default"].createFromResponse(rawNote);
});
}, {
keepPreviousData: true,
enabled: options.enabled
});
}
/***/ }),
/***/ "../assets/js/app/hooks/use-reverse-html-entities.js":
/*!***********************************************************!*\
!*** ../assets/js/app/hooks/use-reverse-html-entities.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useReverseHtmlEntities: () => (/* binding */ useReverseHtmlEntities)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/**
* Reverse PHP's `htmlentities()` function.
* e.g.: `<a>` will become ``.
*
* Used to render escaped HTML characters in JSX.
*
* @param {string} escapedHTML
*
* @return {string} unescaped HTML
*/
function useReverseHtmlEntities(escapedHTML) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
const textarea = document.createElement('textarea');
textarea.innerHTML = escapedHTML;
const {
value
} = textarea;
textarea.remove();
return value;
}, [escapedHTML]);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-scroll-into-view.js":
/*!******************************************************!*\
!*** ../assets/js/app/hooks/use-scroll-into-view.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useScrollIntoView)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
// Hook to scroll into the `ref` view when a condition is truthy.
function useScrollIntoView(condition = true, {
onlyIfNeeded = true,
...scrollOptions
} = {}) {
const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (condition) {
/**
* Defer to wait for React state stack to be empty, and all of the components have finished rendering,
* since it causes a bug in Chromium based browsers.
*
* @see https://stackoverflow.com/questions/68263352/smooth-scroll-bug-in-react-useeffect-hook-only-on-chrome-chromium
* @see https://stackoverflow.com/questions/59782858/scrollintoview-behavior-smooth-is-broken-in-react
*/
setTimeout(() => {
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.scrollIntoView)(ref.current, {
onlyIfNeeded,
...scrollOptions
});
});
}
}, [condition]);
return ref;
}
/***/ }),
/***/ "../assets/js/app/hooks/use-stoppable-effect.js":
/*!******************************************************!*\
!*** ../assets/js/app/hooks/use-stoppable-effect.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useStoppableEffect)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/**
* Use an effect with an option to stop it.
*
* Usage:
* useStoppableEffect( ( stop ) => {
* console.log( 'stuff' );
*
* if ( a === 1 ) {
* stop();
* }
* }, [ deps ] );
*
* @param {Function} effect
* @param {Array} deps
*
* @return {void}
*/
function useStoppableEffect(effect, deps) {
const shouldRun = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(true);
const stop = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
shouldRun.current = false;
}, []);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (shouldRun.current) {
effect(stop);
}
}, deps);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-user-can.js":
/*!**********************************************!*\
!*** ../assets/js/app/hooks/use-user-can.js ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ CAPABILITY_CREATE: () => (/* binding */ CAPABILITY_CREATE),
/* harmony export */ CAPABILITY_CREATE_USERS: () => (/* binding */ CAPABILITY_CREATE_USERS),
/* harmony export */ CAPABILITY_DELETE: () => (/* binding */ CAPABILITY_DELETE),
/* harmony export */ CAPABILITY_EDIT: () => (/* binding */ CAPABILITY_EDIT),
/* harmony export */ CAPABILITY_EDIT_USERS: () => (/* binding */ CAPABILITY_EDIT_USERS),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _use_notes_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-notes-config */ "../assets/js/app/hooks/use-notes-config.js");
const CAPABILITY_CREATE = 'create';
const CAPABILITY_EDIT = 'edit';
const CAPABILITY_DELETE = 'delete';
const CAPABILITY_CREATE_USERS = 'create_users';
const CAPABILITY_EDIT_USERS = 'edit_users';
const useUserCan = (capability, note = null) => {
const notesConfig = (0,_use_notes_config__WEBPACK_IMPORTED_MODULE_1__["default"])();
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
// Note capabilities.
if (note) {
return !!note.userCan[capability];
}
// Global capabilities.
return !!notesConfig.current_user_can[capability];
}, [capability, note, notesConfig]);
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useUserCan);
/***/ }),
/***/ "../assets/js/app/hooks/use-users.js":
/*!*******************************************!*\
!*** ../assets/js/app/hooks/use-users.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useUsers)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ "../assets/js/app/utils.js");
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony import */ var _models_user__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/user */ "../assets/js/app/models/user.js");
const defaultOptions = {
enabled: true,
params: {}
};
function useUsers(rawOptions = {}) {
const options = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
...defaultOptions,
...rawOptions
}), [rawOptions]);
const queryParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.normalizeQueryParams)(options.params || {});
}, [options.params]);
return (0,react_query__WEBPACK_IMPORTED_MODULE_2__.useQuery)(['users', queryParams], async ({
queryKey: [, params],
signal
}) => {
const {
data
} = await window.top.$e.data.get('notes/users', params, {
refresh: true,
signal
});
return data.data.map(user => {
return _models_user__WEBPACK_IMPORTED_MODULE_3__["default"].createFromResponse(user);
});
}, {
keepPreviousData: true,
enabled: options.enabled
});
}
/***/ }),
/***/ "../assets/js/app/hooks/use-viewable-notes.js":
/*!****************************************************!*\
!*** ../assets/js/app/hooks/use-viewable-notes.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useViewableNotes)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _context_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../context/elements */ "../assets/js/app/context/elements.js");
/**
* @typedef {import('../models/note')} Note
*/
/**
* Return a tuple of filtered notes based their visibility to the user in the current page (e.g. have elements).
* The first item contains the viewable notes and the second is the non-viewable ones.
*
* @param {Note[]} notes
*
* @return {[Note[], Note[]]} notes
*/
function useViewableNotes(notes) {
const {
elements
} = (0,_context_elements__WEBPACK_IMPORTED_MODULE_1__.useElements)();
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
if (!notes?.length || !elements?.size) {
return [[], []];
}
const reduced = notes.reduce((carry, note) => {
const key = elements.has(note.elementId) ? 'viewable' : 'nonViewable';
carry[key].push(note);
return carry;
}, {
viewable: [],
nonViewable: []
});
return Object.values(reduced);
}, [notes, elements]);
}
/***/ }),
/***/ "../assets/js/app/hooks/use-watch.js":
/*!*******************************************!*\
!*** ../assets/js/app/hooks/use-watch.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ useWatch)
/* harmony export */ });
const {
useEffect,
useRef
} = React;
/**
* A util to trigger a callback only when the value changed except the first render.
*
* @param {Function} callback
* @param {Array} deps
*/
function useWatch(callback, deps) {
const isFirstRender = useRef(true);
useEffect(() => {
if (isFirstRender.current) {
isFirstRender.current = false;
return;
}
callback();
}, deps);
}
/***/ }),
/***/ "../assets/js/app/models/base-model.js":
/*!*********************************************!*\
!*** ../assets/js/app/models/base-model.js ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ BaseModel)
/* harmony export */ });
class BaseModel {
/**
* Using init and not the default constructor because there is a problem to fill the instance
* dynamically in the constructor.
*
* @param {Object} data all the properties
* @return {BaseModel} Instance of base model
*/
init(data = {}) {
Object.entries(data).forEach(([key, value]) => {
this[key] = value;
});
return this;
}
}
/***/ }),
/***/ "../assets/js/app/models/document.js":
/*!*******************************************!*\
!*** ../assets/js/app/models/document.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Document)
/* harmony export */ });
/* harmony import */ var _base_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-model */ "../assets/js/app/models/base-model.js");
class Document extends _base_model__WEBPACK_IMPORTED_MODULE_0__["default"] {
id;
type;
typeTitle;
/**
* Create a document from server response
*
* @param {Object} data
*/
static createFromResponse(data) {
return new Document().init({
id: data.id,
type: data.type,
typeTitle: data.type_title
});
}
}
/***/ }),
/***/ "../assets/js/app/models/note-summary.js":
/*!***********************************************!*\
!*** ../assets/js/app/models/note-summary.js ***!
\***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ NoteSummary)
/* harmony export */ });
/* harmony import */ var _base_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-model */ "../assets/js/app/models/base-model.js");
class NoteSummary extends _base_model__WEBPACK_IMPORTED_MODULE_0__["default"] {
url = '';
fullURL = '';
title = '';
notesCount = 0;
/**
* Create a note from server response
*
* @param {Object} data
*/
static createFromResponse(data) {
return new NoteSummary().init({
url: data.url,
fullURL: data.full_url,
title: data.title,
notesCount: data.notes_count
});
}
}
/***/ }),
/***/ "../assets/js/app/models/note.js":
/*!***************************************!*\
!*** ../assets/js/app/models/note.js ***!
\***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Note)
/* harmony export */ });
/* harmony import */ var _base_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-model */ "../assets/js/app/models/base-model.js");
/* harmony import */ var _user__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user */ "../assets/js/app/models/user.js");
/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./document */ "../assets/js/app/models/document.js");
class Note extends _base_model__WEBPACK_IMPORTED_MODULE_0__["default"] {
id = null;
parentId = 0;
elementId = null;
content = '';
position = {
x: 0,
y: 0
};
repliesCount = 0;
unreadRepliesCount = 0;
replies = [];
author = null;
readers = [];
isRead = false;
isResolved = false;
routeUrl = '';
routeTitle = '';
userCan = {};
createdAt = null;
updatedAt = null;
lastActivityAt = null;
// Private props
_formattedLastActivityAt = '';
_formattedCreatedAt = '';
/**
* Create a note from server response
*
* @param {Object} data
*/
static createFromResponse(data) {
return new Note().init({
id: data.id,
parentId: data.parent_id,
elementId: data.element_id,
content: data.content,
position: data.position,
repliesCount: data.replies_count,
unreadRepliesCount: data.unread_replies_count,
replies: data.replies.map(reply => Note.createFromResponse(reply)),
author: data.author ? _user__WEBPACK_IMPORTED_MODULE_1__["default"].createFromResponse(data.author) : _user__WEBPACK_IMPORTED_MODULE_1__["default"].createDeleted(data.author_display_name),
document: data.document ? _document__WEBPACK_IMPORTED_MODULE_2__["default"].createFromResponse(data.document) : null,
readers: data.readers ? data.readers.map(reader => _user__WEBPACK_IMPORTED_MODULE_1__["default"].createFromResponse(reader)) : [],
isRead: data.is_read,
isResolved: data.is_resolved,
routeUrl: data.route_url,
routeTitle: data.route_title,
userCan: data.user_can,
createdAt: new Date(data.created_at),
updatedAt: new Date(data.updated_at),
lastActivityAt: new Date(data.last_activity_at)
});
}
/**
* TODO: Change to WP site settings format.
*
* @return {string} Last activity date formatted.
*/
getFormattedLastActivityAt() {
if (!this._formattedLastActivityAt) {
this._formattedLastActivityAt = this.lastActivityAt.toLocaleString();
}
return this._formattedLastActivityAt;
}
/**
* TODO: Change to WP site settings format.
*
* @return {string} Created at date formatted.
*/
getFormattedCreatedAt() {
if (!this._formattedCreatedAt) {
this._formattedCreatedAt = this.createdAt.toLocaleString();
}
return this._formattedCreatedAt;
}
/**
* Get the note deep link.
*
* @return {string} url
*/
getURL() {
const id = this.isReply() ? this.parentId : this.id;
return this.constructor.getURL(id);
}
/**
* Get a note deep link by ID.
*
* @param {number} id
*
* @return {string} url
*/
static getURL(id) {
const {
route
} = window.top.$e.components.get('notes').config;
return route.note_url_pattern.replace('{{NOTE_ID}}', id);
}
/**
* Check if the current note or one of its replies are unread.
*
* @return {boolean} is unread thread
*/
isUnreadThread() {
return this.isThread() && (!this.isRead || this.unreadRepliesCount > 0);
}
/**
* Determine if the Note is a Thread.
*
* @return {boolean} - Is thread.
*/
isThread() {
return 0 === this.parentId;
}
/**
* Determine if the Note is a Reply.
*
* @return {boolean} - Is reply.
*/
isReply() {
return !this.isThread();
}
}
/***/ }),
/***/ "../assets/js/app/models/user.js":
/*!***************************************!*\
!*** ../assets/js/app/models/user.js ***!
\***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ User)
/* harmony export */ });
/* harmony import */ var _base_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-model */ "../assets/js/app/models/base-model.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
class User extends _base_model__WEBPACK_IMPORTED_MODULE_0__["default"] {
id = null;
name = '';
slug = '';
avatarUrls = {
24: null,
48: null,
96: null
};
capabilities = {};
/**
* Create a user from server response
*
* @param {Object} data
*/
static createFromResponse(data) {
return new User().init({
id: data.id,
name: data.name,
slug: data.slug,
avatarUrls: data.avatar_urls,
capabilities: {
notes: {
read: data.capabilities?.notes?.can_read
},
post: {
edit: data.capabilities?.post?.can_edit
}
}
});
}
/**
* A factory to create a User model when a user was deleted or not exist for some reason.
*
* @param {string} name
* @return {BaseModel} user
*/
static createDeleted(name = '') {
const {
avatar_defaults: avatarUrls
} = window.top.$e.components.get('notes').config.urls;
return new User().init({
name: [name, __('(deleted user)', 'elementor-pro')].join(' '),
avatarUrls
});
}
}
/***/ }),
/***/ "../assets/js/app/query-client.js":
/*!****************************************!*\
!*** ../assets/js/app/query-client.js ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-query */ "../../../node_modules/react-query/es/index.js");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new react_query__WEBPACK_IMPORTED_MODULE_0__.QueryClient({
defaultOptions: {
queries: {
retry: 2,
refetchOnWindowFocus: true
},
mutations: {
retry: 2
}
}
}));
/***/ }),
/***/ "../assets/js/app/styles/animation.js":
/*!********************************************!*\
!*** ../assets/js/app/styles/animation.js ***!
\********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ fadeOut: () => (/* binding */ fadeOut),
/* harmony export */ slideDownAndFade: () => (/* binding */ slideDownAndFade),
/* harmony export */ slideLeftAndFade: () => (/* binding */ slideLeftAndFade),
/* harmony export */ slideRightAndFade: () => (/* binding */ slideRightAndFade),
/* harmony export */ slideUpAndFade: () => (/* binding */ slideUpAndFade),
/* harmony export */ spin: () => (/* binding */ spin)
/* harmony export */ });
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-components */ "../../../node_modules/styled-components/dist/styled-components.browser.esm.js");
const slideUpAndFade = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.keyframes)`
0% {
opacity: 0;
transform: translateY(3px);
}
100% {
opacity: 1;
transform: translateY(0);
}
`;
const slideRightAndFade = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.keyframes)`
0% {
opacity: 0;
transform: translateX(-3px);
}
100% {
opacity: 1;
transform: translateX(0);
}
`;
const slideDownAndFade = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.keyframes)`
0% {
opacity: 0;
transform: translateY(-3px);
}
100% {
opacity: 1;
transform: translateY(0);
}
`;
const slideLeftAndFade = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.keyframes)`
0% {
opacity: 0;
transform: translateX(3px);
}
100% {
opacity: 1;
transform: translateX(0);
}
`;
const fadeOut = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.keyframes)`
0% {
opacity: 1;
}
100% {
opacity: 0;
}
`;
const spin = (0,styled_components__WEBPACK_IMPORTED_MODULE_0__.keyframes)`
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
`;
/***/ }),
/***/ "../assets/js/app/utils.js":
/*!*********************************!*\
!*** ../assets/js/app/utils.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ MAX_Z_INDEX: () => (/* binding */ MAX_Z_INDEX),
/* harmony export */ extractMentions: () => (/* binding */ extractMentions),
/* harmony export */ isFullyInViewport: () => (/* binding */ isFullyInViewport),
/* harmony export */ normalizeQueryParams: () => (/* binding */ normalizeQueryParams),
/* harmony export */ scrollIntoView: () => (/* binding */ scrollIntoView),
/* harmony export */ submitForm: () => (/* binding */ submitForm)
/* harmony export */ });
/* harmony import */ var _services_rich_text_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../services/rich-text-parser */ "../assets/js/services/rich-text-parser/index.js");
/* harmony import */ var _services_rich_text_parser_tokens__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/rich-text-parser/tokens */ "../assets/js/services/rich-text-parser/tokens/index.js");
/**
* Max value for the css property z-index
*
* @type {number}
*/
const MAX_Z_INDEX = 2147483647;
/**
* Extract mentions from string.
*
* @param {string} content - Text to extract from.
*
* @return {string[]} mentions
*/
function extractMentions(content) {
const usernames = (0,_services_rich_text_parser__WEBPACK_IMPORTED_MODULE_0__["default"])({
tokenClasses: [_services_rich_text_parser_tokens__WEBPACK_IMPORTED_MODULE_1__.Mention],
fallbackTokenClass: false,
parsePipeFunctions: []
}).parse(content).map(token => token.username.value);
// Return only unique values.
return [...new Set(usernames)];
}
/**
* Normalize query params object.
*
* @param {Object} params - Query params definition.
*
* @return {Object} - Normalized query params.
*/
function normalizeQueryParams(params) {
return Object.entries(params).reduce((queryParams, [param, value]) => {
// Remove nullish params.
if (null === value) {
return queryParams;
}
// Convert booleans to 1/0.
if ('boolean' === typeof value) {
value = value ? 1 : 0;
}
return {
...queryParams,
[param]: value
};
}, {});
}
/**
* Scroll into an element.
* Returns a promise that will be resolved when the element is in the viewport.
* TODO: Find a way to resolve the promise after the scroll has finished.
*
* @param {HTMLElement} element
* @param {Object} object
* @param {boolean} object.onlyIfNeeded
* @param {*} object.scrollOptions
* @return {Promise} a promise that will be resolved when the element is in the viewport
*/
function scrollIntoView(element, {
onlyIfNeeded = true,
...scrollOptions
} = {}) {
if (onlyIfNeeded && isFullyInViewport(element)) {
return Promise.resolve();
}
return new Promise(resolve => {
observeForFirstIntersection(element, () => {
resolve();
});
element.scrollIntoView({
behavior: 'smooth',
block: 'center',
inline: 'center',
...scrollOptions
});
});
}
/**
* Check if an element is fully in viewport.
*
* @param {HTMLElement} element
*
* @return {boolean} is element fully in the viewport
*/
function isFullyInViewport(element) {
const {
top,
left,
bottom,
right
} = element.getBoundingClientRect();
const {
top: parentTop,
right: parentRight,
bottom: parentBottom,
left: parentLeft
} = element.parentElement.getBoundingClientRect();
const isInBodyView = top >= 0 && left >= 0 && top <= window.innerHeight && left <= window.innerWidth;
const isInParentView = top >= parentTop && right <= parentRight && bottom <= parentBottom && left >= parentLeft;
return isInBodyView && isInParentView;
}
/**
* Wrap IntersectionObserver for working with single element.
*
* @param {HTMLElement} element
* @param {Function} callback
*/
function observeForFirstIntersection(element, callback) {
const observer = new IntersectionObserver((entries, currentObserver) => {
if (entries?.[0]?.isIntersecting) {
currentObserver.disconnect();
callback();
}
});
observer.observe(element);
}
/**
* Programmatically submit a form while triggering React's `onSubmit()` event listener.
*
* @see https://stackoverflow.com/a/65667238/3829526
*
* @param {HTMLFormElement} form
*
* @return {void}
*/
function submitForm(form) {
form.dispatchEvent(new Event('submit', {
cancelable: true,
bubbles: true
}));
}
/***/ }),
/***/ "../assets/js/services/copy-to-clipboard/index.js":
/*!********************************************************!*\
!*** ../assets/js/services/copy-to-clipboard/index.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ canCopyToClipboard: () => (/* binding */ canCopyToClipboard),
/* harmony export */ copyToClipboard: () => (/* binding */ copyToClipboard)
/* harmony export */ });
/**
* Check if there is access to the clipboard API
* (Usually, when a website doesn't have an SSL certificate, the browser won't expose the clipboard API).
*
* @return {boolean} can copy to clipboard?
*/
function canCopyToClipboard() {
return !!navigator?.clipboard;
}
/**
* Will copy value to the clipboard
*
* @param {string} value
*/
function copyToClipboard(value) {
if (!canCopyToClipboard()) {
throw new Error('Cannot copy to clipboard, please make sure you are using SSL in your website.');
}
navigator.clipboard.writeText(value);
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/index.js":
/*!*******************************************************!*\
!*** ../assets/js/services/rich-text-parser/index.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ createRichTextParser)
/* harmony export */ });
/* harmony import */ var _rich_text_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rich-text-parser */ "../assets/js/services/rich-text-parser/rich-text-parser.js");
/* harmony import */ var _parse_pipe_functions___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse-pipe-functions/ */ "../assets/js/services/rich-text-parser/parse-pipe-functions/index.js");
/* harmony import */ var _tokens___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tokens/ */ "../assets/js/services/rich-text-parser/tokens/index.js");
/**
* Create a RichTextParser instance, set default tokens, and parse pipe functions.
*
* @param {Object} options
* @param {Object[]} options.tokenClasses - Token classes to tokenize into.
* @param {Object|false} options.fallbackTokenClass
* @param {Function[]} options.parsePipeFunctions - Parsing pipe functions to trigger after basic parsing.
* @return {RichTextParser} parser
*/
function createRichTextParser({
tokenClasses,
fallbackTokenClass,
parsePipeFunctions
} = {}) {
const tokenClassesDefaults = [_tokens___WEBPACK_IMPORTED_MODULE_2__.Email, _tokens___WEBPACK_IMPORTED_MODULE_2__.LineBreak, _tokens___WEBPACK_IMPORTED_MODULE_2__.Mention, _tokens___WEBPACK_IMPORTED_MODULE_2__.Url, _tokens___WEBPACK_IMPORTED_MODULE_2__.Wow];
const fallbackTokenClassDefault = _tokens___WEBPACK_IMPORTED_MODULE_2__.Text;
// The order here is important!
const parsePipeFunctionsDefaults = [_parse_pipe_functions___WEBPACK_IMPORTED_MODULE_1__.wrapTokensIntoParagraph, _parse_pipe_functions___WEBPACK_IMPORTED_MODULE_1__.wrapTokensIntoContent];
return new _rich_text_parser__WEBPACK_IMPORTED_MODULE_0__["default"]({
tokenClasses: tokenClasses !== null && tokenClasses !== void 0 ? tokenClasses : tokenClassesDefaults,
fallbackTokenClass: fallbackTokenClass !== null && fallbackTokenClass !== void 0 ? fallbackTokenClass : fallbackTokenClassDefault,
parsePipeFunctions: parsePipeFunctions !== null && parsePipeFunctions !== void 0 ? parsePipeFunctions : parsePipeFunctionsDefaults
});
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/parse-pipe-functions/index.js":
/*!****************************************************************************!*\
!*** ../assets/js/services/rich-text-parser/parse-pipe-functions/index.js ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ wrapTokensIntoContent: () => (/* reexport safe */ _wrap_tokens_into_content__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */ wrapTokensIntoParagraph: () => (/* reexport safe */ _wrap_tokens_into_paragraph__WEBPACK_IMPORTED_MODULE_0__["default"])
/* harmony export */ });
/* harmony import */ var _wrap_tokens_into_paragraph__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./wrap-tokens-into-paragraph */ "../assets/js/services/rich-text-parser/parse-pipe-functions/wrap-tokens-into-paragraph.js");
/* harmony import */ var _wrap_tokens_into_content__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wrap-tokens-into-content */ "../assets/js/services/rich-text-parser/parse-pipe-functions/wrap-tokens-into-content.js");
/***/ }),
/***/ "../assets/js/services/rich-text-parser/parse-pipe-functions/wrap-tokens-into-content.js":
/*!***********************************************************************************************!*\
!*** ../assets/js/services/rich-text-parser/parse-pipe-functions/wrap-tokens-into-content.js ***!
\***********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ wrapTokensIntoContent)
/* harmony export */ });
/* harmony import */ var _tokens___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../tokens/ */ "../assets/js/services/rich-text-parser/tokens/index.js");
/**
* Wrap tokens tree with one Content token.
*
* @param {Object[]} tokens
*
* @return {Content} content
*/
function wrapTokensIntoContent(tokens) {
return _tokens___WEBPACK_IMPORTED_MODULE_0__.Content.create(tokens);
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/parse-pipe-functions/wrap-tokens-into-paragraph.js":
/*!*************************************************************************************************!*\
!*** ../assets/js/services/rich-text-parser/parse-pipe-functions/wrap-tokens-into-paragraph.js ***!
\*************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ wrapTokensIntoParagraph)
/* harmony export */ });
/* harmony import */ var _tokens___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../tokens/ */ "../assets/js/services/rich-text-parser/tokens/index.js");
/**
* Convert LineBreak tokens into Paragraphs.
* input: [ Text, Text, Email, LineBreak, Text, Text ]
* output: [
* Paragraph: [ Text, Text, Email ],
* Paragraph: [ Text, Text ]
* ]
*
* @param {Object[]} tokens
*
* @return {Object[]} paragraphs
*/
function wrapTokensIntoParagraph(tokens) {
tokens.push(_tokens___WEBPACK_IMPORTED_MODULE_0__.LineBreak.create());
return tokens.reduce((carry, token) => {
let currentToken = token;
if (token.is(_tokens___WEBPACK_IMPORTED_MODULE_0__.LineBreak)) {
const lastParagraphIndex = findLastIndex(carry, t => t.is(_tokens___WEBPACK_IMPORTED_MODULE_0__.Paragraph));
currentToken = _tokens___WEBPACK_IMPORTED_MODULE_0__.Paragraph.create(carry.slice(lastParagraphIndex + 1, carry.length));
carry = carry.slice(0, lastParagraphIndex + 1);
}
carry.push(currentToken);
return carry;
}, []);
}
/**
* Find an index of based on the callback but it runs from last to first item.
*
* @param {Array} array
* @param {Function} callback
* @return {number} last index
*/
function findLastIndex(array, callback) {
for (let i = array.length - 1; i >= 0; i--) {
if (callback(array[i], i)) {
return i;
}
}
return -1;
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/rich-text-parser.js":
/*!******************************************************************!*\
!*** ../assets/js/services/rich-text-parser/rich-text-parser.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ RichTextParser)
/* harmony export */ });
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "../assets/js/services/rich-text-parser/utils.js");
class RichTextParser {
tokenClasses;
fallbackTokenClass;
parsePipeFunctions;
/**
* @param {Object} options
* @param {Array} options.tokenClasses
* @param {Object} options.fallbackTokenClass
* @param {Function[]} options.parsePipeFunctions
*/
constructor({
tokenClasses,
fallbackTokenClass,
parsePipeFunctions
} = {}) {
this.tokenClasses = tokenClasses;
this.fallbackTokenClass = fallbackTokenClass;
this.parsePipeFunctions = parsePipeFunctions;
}
/**
* Takes a string and parse it into a meaningful object, based on the configuration that was provided to this class.
* input: 'This is text and email: test@elementor.com'
* output: {
* type: 'Content',
* value: [
* {
* type: 'Paragraph',
* value: [
* { type: 'Text', value: 'This is text and email: ' },
* { type: 'Email', value: 'test@elementor.com' },
* ]
* }
* ]
* }
*
* @param {string} value
*
* @return {Object|Array} content
*/
parse(value) {
var _this$parsePipeFuncti;
const lexemes = this.extractLexemes(value),
tokens = this.tokenize(lexemes);
return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pipe)(...((_this$parsePipeFuncti = this.parsePipeFunctions) !== null && _this$parsePipeFuncti !== void 0 ? _this$parsePipeFuncti : []))(tokens);
}
/**
* Split the value into lexemes (an array of strings without the meaning)
*
* @param {string} value
*
* @return {string[]} lexemes
*/
extractLexemes(value) {
return value.trim().split(this.getLexerRegex()).reduce((lexemes, currentLexeme) => {
if (currentLexeme) {
lexemes.push(currentLexeme);
}
return lexemes;
}, []);
}
/**
* Get all the array of lexemes and transform them into tokens (An object that represent what the part of string is).
*
* @param {string[]} lexemes
*
* @return {Object[]} tokens
*/
tokenize(lexemes) {
return lexemes.map(lexeme => {
const TokenClass = this.tokenClasses.find(tc => tc.isToken(lexeme));
if (!TokenClass) {
return this.fallbackTokenClass ? this.fallbackTokenClass.create(lexeme) : null;
}
return TokenClass.create(lexeme);
}).filter(lexeme => !!lexeme);
}
/**
* Generate a regex from each token class that was provided.
*
* @return {RegExp} regular expression
*/
getLexerRegex() {
const patterns = this.tokenClasses.map(tokenClass => tokenClass.getPattern()?.source).filter(pattern => !!pattern);
return new RegExp(`(${patterns.join('|')})`, 'igm');
}
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/base-token.js":
/*!*******************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/base-token.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ BaseToken)
/* harmony export */ });
class BaseToken {
static type = '';
type;
value;
/**
* @param {string | Array | null} value
*/
constructor(value) {
this.value = value;
this.type = this.constructor.type;
}
/**
* Regex pattern for the lexer.
*
* @return {RegExp} regular expression
*/
static getPattern() {
return null;
}
/**
* Checks if a lexeme belongs to the current token.
*
* @param {string} lexeme
*
* @return {boolean} does lexeme belong to the current token
*/
static isToken(lexeme) {
return !!lexeme.match(new RegExp(this.getPattern(), 'igm'));
}
/**
* Creates a new Token instance.
*
* @param {string | Array | null } value
*
* @return {this} token
*/
static create(value = null) {
return new this(value);
}
/**
* Check if the current token is instance of the provided token class
*
* @param {Object} tokenClass
*
* @return {boolean} is a token class instance
*/
is(tokenClass) {
return this.type === tokenClass.type;
}
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/content.js":
/*!****************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/content.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Content)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Content extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Content';
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/email.js":
/*!**************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/email.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Email)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Email extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Email';
static getPattern() {
return /[\w\-.]+@(?:[\w-]+\.)+[\w-]{2,4}/;
}
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/handle.js":
/*!***************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/handle.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Handle)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Handle extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Handle';
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/index.js":
/*!**************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/index.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Content: () => (/* reexport safe */ _content__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */ Email: () => (/* reexport safe */ _email__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */ Handle: () => (/* reexport safe */ _handle__WEBPACK_IMPORTED_MODULE_6__["default"]),
/* harmony export */ LineBreak: () => (/* reexport safe */ _line_break__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */ Mention: () => (/* reexport safe */ _mention__WEBPACK_IMPORTED_MODULE_5__["default"]),
/* harmony export */ Paragraph: () => (/* reexport safe */ _paragraph__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */ Text: () => (/* reexport safe */ _text__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */ Url: () => (/* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_8__["default"]),
/* harmony export */ Username: () => (/* reexport safe */ _username__WEBPACK_IMPORTED_MODULE_7__["default"]),
/* harmony export */ Wow: () => (/* reexport safe */ _wow__WEBPACK_IMPORTED_MODULE_9__["default"])
/* harmony export */ });
/* harmony import */ var _email__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./email */ "../assets/js/services/rich-text-parser/tokens/email.js");
/* harmony import */ var _line_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./line-break */ "../assets/js/services/rich-text-parser/tokens/line-break.js");
/* harmony import */ var _paragraph__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./paragraph */ "../assets/js/services/rich-text-parser/tokens/paragraph.js");
/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./text */ "../assets/js/services/rich-text-parser/tokens/text.js");
/* harmony import */ var _content__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./content */ "../assets/js/services/rich-text-parser/tokens/content.js");
/* harmony import */ var _mention__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./mention */ "../assets/js/services/rich-text-parser/tokens/mention.js");
/* harmony import */ var _handle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./handle */ "../assets/js/services/rich-text-parser/tokens/handle.js");
/* harmony import */ var _username__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./username */ "../assets/js/services/rich-text-parser/tokens/username.js");
/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./url */ "../assets/js/services/rich-text-parser/tokens/url.js");
/* harmony import */ var _wow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./wow */ "../assets/js/services/rich-text-parser/tokens/wow.js");
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/line-break.js":
/*!*******************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/line-break.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ LineBreak)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class LineBreak extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'LineBreak';
constructor(value) {
super(value || '\n');
}
static getPattern() {
return /(?:\r?\n)/;
}
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/mention.js":
/*!****************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/mention.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Mention)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "../assets/js/services/rich-text-parser/tokens/index.js");
class Mention extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Mention';
static handleChar = '@';
handle;
username;
constructor(value) {
super(value);
this.handle = _index__WEBPACK_IMPORTED_MODULE_1__.Handle.create(this.constructor.handleChar);
this.username = _index__WEBPACK_IMPORTED_MODULE_1__.Username.create(value.replace(this.constructor.handleChar, ''));
}
static getPattern() {
return new RegExp(`\\B${this.handleChar}[\\w\\-]+`);
}
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/paragraph.js":
/*!******************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/paragraph.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Paragraph)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Paragraph extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Paragraph';
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/text.js":
/*!*************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/text.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Text)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Text extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Text';
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/url.js":
/*!************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/url.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Url)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Url extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Url';
/**
* @see https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url
*
* @return {RegExp} pattern
*/
static getPattern() {
return /https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)/;
}
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/username.js":
/*!*****************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/username.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Username)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Username extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Username';
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/tokens/wow.js":
/*!************************************************************!*\
!*** ../assets/js/services/rich-text-parser/tokens/wow.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Wow)
/* harmony export */ });
/* harmony import */ var _base_token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-token */ "../assets/js/services/rich-text-parser/tokens/base-token.js");
class Wow extends _base_token__WEBPACK_IMPORTED_MODULE_0__["default"] {
static type = 'Wow';
static getPattern() {
return /(?:(?:\b(?:yay|wow)\b)|🎉)/;
}
}
/***/ }),
/***/ "../assets/js/services/rich-text-parser/utils.js":
/*!*******************************************************!*\
!*** ../assets/js/services/rich-text-parser/utils.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ pipe: () => (/* binding */ pipe)
/* harmony export */ });
/**
* A util function to transform data through transform functions
*
* @param {Function[]} functions
* @return {Function} function
*/
function pipe(...functions) {
return (value, ...args) => functions.reduce((currentValue, currentFunction) => currentFunction(currentValue, ...args), value);
}
/***/ })
}]);
//# sourceMappingURL=notes-app.js.mapProtection enabled.Protection enabled.Protection enabled.Protection enabled.{
"icons": [
"abacus",
"acorn",
"ad",
"address-book",
"address-card",
"adjust",
"air-conditioner",
"air-freshener",
"alarm-clock",
"alarm-exclamation",
"alarm-plus",
"alarm-snooze",
"album",
"album-collection",
"alicorn",
"alien",
"alien-monster",
"align-center",
"align-justify",
"align-left",
"align-right",
"align-slash",
"allergies",
"ambulance",
"american-sign-language-interpreting",
"amp-guitar",
"analytics",
"anchor",
"angel",
"angle-double-down",
"angle-double-left",
"angle-double-right",
"angle-double-up",
"angle-down",
"angle-left",
"angle-right",
"angle-up",
"angry",
"ankh",
"apple-alt",
"apple-crate",
"archive",
"archway",
"arrow-alt-circle-down",
"arrow-alt-circle-left",
"arrow-alt-circle-right",
"arrow-alt-circle-up",
"arrow-alt-down",
"arrow-alt-from-bottom",
"arrow-alt-from-left",
"arrow-alt-from-right",
"arrow-alt-from-top",
"arrow-alt-left",
"arrow-alt-right",
"arrow-alt-square-down",
"arrow-alt-square-left",
"arrow-alt-square-right",
"arrow-alt-square-up",
"arrow-alt-to-bottom",
"arrow-alt-to-left",
"arrow-alt-to-right",
"arrow-alt-to-top",
"arrow-alt-up",
"arrow-circle-down",
"arrow-circle-left",
"arrow-circle-right",
"arrow-circle-up",
"arrow-down",
"arrow-from-bottom",
"arrow-from-left",
"arrow-from-right",
"arrow-from-top",
"arrow-left",
"arrow-right",
"arrow-square-down",
"arrow-square-left",
"arrow-square-right",
"arrow-square-up",
"arrow-to-bottom",
"arrow-to-left",
"arrow-to-right",
"arrow-to-top",
"arrow-up",
"arrows",
"arrows-alt",
"arrows-alt-h",
"arrows-alt-v",
"arrows-h",
"arrows-v",
"assistive-listening-systems",
"asterisk",
"at",
"atlas",
"atom",
"atom-alt",
"audio-description",
"award",
"axe",
"axe-battle",
"baby",
"baby-carriage",
"backpack",
"backspace",
"backward",
"bacon",
"bacteria",
"bacterium",
"badge",
"badge-check",
"badge-dollar",
"badge-percent",
"badge-sheriff",
"badger-honey",
"bags-shopping",
"bahai",
"balance-scale",
"balance-scale-left",
"balance-scale-right",
"ball-pile",
"ballot",
"ballot-check",
"ban",
"band-aid",
"banjo",
"barcode",
"barcode-alt",
"barcode-read",
"barcode-scan",
"bars",
"baseball",
"baseball-ball",
"basketball-ball",
"basketball-hoop",
"bat",
"bath",
"battery-bolt",
"battery-empty",
"battery-full",
"battery-half",
"battery-quarter",
"battery-slash",
"battery-three-quarters",
"bed",
"bed-alt",
"bed-bunk",
"bed-empty",
"beer",
"bell",
"bell-exclamation",
"bell-on",
"bell-plus",
"bell-school",
"bell-school-slash",
"bell-slash",
"bells",
"betamax",
"bezier-curve",
"bible",
"bicycle",
"biking",
"biking-mountain",
"binoculars",
"biohazard",
"birthday-cake",
"blanket",
"blender",
"blender-phone",
"blind",
"blinds",
"blinds-open",
"blinds-raised",
"blog",
"bold",
"bolt",
"bomb",
"bone",
"bone-break",
"bong",
"book",
"book-alt",
"book-dead",
"book-heart",
"book-medical",
"book-open",
"book-reader",
"book-spells",
"book-user",
"bookmark",
"books",
"books-medical",
"boombox",
"boot",
"booth-curtain",
"border-all",
"border-bottom",
"border-center-h",
"border-center-v",
"border-inner",
"border-left",
"border-none",
"border-outer",
"border-right",
"border-style",
"border-style-alt",
"border-top",
"bow-arrow",
"bowling-ball",
"bowling-pins",
"box",
"box-alt",
"box-ballot",
"box-check",
"box-fragile",
"box-full",
"box-heart",
"box-open",
"box-tissue",
"box-up",
"box-usd",
"boxes",
"boxes-alt",
"boxing-glove",
"brackets",
"brackets-curly",
"braille",
"brain",
"bread-loaf",
"bread-slice",
"briefcase",
"briefcase-medical",
"bring-forward",
"bring-front",
"broadcast-tower",
"broom",
"browser",
"brush",
"bug",
"building",
"bullhorn",
"bullseye",
"bullseye-arrow",
"bullseye-pointer",
"burger-soda",
"burn",
"burrito",
"bus",
"bus-alt",
"bus-school",
"business-time",
"cabinet-filing",
"cactus",
"calculator",
"calculator-alt",
"calendar",
"calendar-alt",
"calendar-check",
"calendar-day",
"calendar-edit",
"calendar-exclamation",
"calendar-minus",
"calendar-plus",
"calendar-star",
"calendar-times",
"calendar-week",
"camcorder",
"camera",
"camera-alt",
"camera-home",
"camera-movie",
"camera-polaroid",
"camera-retro",
"campfire",
"campground",
"candle-holder",
"candy-cane",
"candy-corn",
"cannabis",
"capsules",
"car",
"car-alt",
"car-battery",
"car-building",
"car-bump",
"car-bus",
"car-crash",
"car-garage",
"car-mechanic",
"car-side",
"car-tilt",
"car-wash",
"caravan",
"caravan-alt",
"caret-circle-down",
"caret-circle-left",
"caret-circle-right",
"caret-circle-up",
"caret-down",
"caret-left",
"caret-right",
"caret-square-down",
"caret-square-left",
"caret-square-right",
"caret-square-up",
"caret-up",
"carrot",
"cars",
"cart-arrow-down",
"cart-plus",
"cash-register",
"cassette-tape",
"cat",
"cat-space",
"cauldron",
"cctv",
"certificate",
"chair",
"chair-office",
"chalkboard",
"chalkboard-teacher",
"charging-station",
"chart-area",
"chart-bar",
"chart-line",
"chart-line-down",
"chart-network",
"chart-pie",
"chart-pie-alt",
"chart-scatter",
"check",
"check-circle",
"check-double",
"check-square",
"cheese",
"cheese-swiss",
"cheeseburger",
"chess",
"chess-bishop",
"chess-bishop-alt",
"chess-board",
"chess-clock",
"chess-clock-alt",
"chess-king",
"chess-king-alt",
"chess-knight",
"chess-knight-alt",
"chess-pawn",
"chess-pawn-alt",
"chess-queen",
"chess-queen-alt",
"chess-rook",
"chess-rook-alt",
"chevron-circle-down",
"chevron-circle-left",
"chevron-circle-right",
"chevron-circle-up",
"chevron-double-down",
"chevron-double-left",
"chevron-double-right",
"chevron-double-up",
"chevron-down",
"chevron-left",
"chevron-right",
"chevron-square-down",
"chevron-square-left",
"chevron-square-right",
"chevron-square-up",
"chevron-up",
"child",
"chimney",
"church",
"circle",
"circle-notch",
"city",
"clarinet",
"claw-marks",
"clinic-medical",
"clipboard",
"clipboard-check",
"clipboard-list",
"clipboard-list-check",
"clipboard-prescription",
"clipboard-user",
"clock",
"clone",
"closed-captioning",
"cloud",
"cloud-download",
"cloud-download-alt",
"cloud-drizzle",
"cloud-hail",
"cloud-hail-mixed",
"cloud-meatball",
"cloud-moon",
"cloud-moon-rain",
"cloud-music",
"cloud-rain",
"cloud-rainbow",
"cloud-showers",
"cloud-showers-heavy",
"cloud-sleet",
"cloud-snow",
"cloud-sun",
"cloud-sun-rain",
"cloud-upload",
"cloud-upload-alt",
"clouds",
"clouds-moon",
"clouds-sun",
"club",
"cocktail",
"code",
"code-branch",
"code-commit",
"code-merge",
"coffee",
"coffee-pot",
"coffee-togo",
"coffin",
"coffin-cross",
"cog",
"cogs",
"coin",
"coins",
"columns",
"comet",
"comment",
"comment-alt",
"comment-alt-check",
"comment-alt-dollar",
"comment-alt-dots",
"comment-alt-edit",
"comment-alt-exclamation",
"comment-alt-lines",
"comment-alt-medical",
"comment-alt-minus",
"comment-alt-music",
"comment-alt-plus",
"comment-alt-slash",
"comment-alt-smile",
"comment-alt-times",
"comment-check",
"comment-dollar",
"comment-dots",
"comment-edit",
"comment-exclamation",
"comment-lines",
"comment-medical",
"comment-minus",
"comment-music",
"comment-plus",
"comment-slash",
"comment-smile",
"comment-times",
"comments",
"comments-alt",
"comments-alt-dollar",
"comments-dollar",
"compact-disc",
"compass",
"compass-slash",
"compress",
"compress-alt",
"compress-arrows-alt",
"compress-wide",
"computer-classic",
"computer-speaker",
"concierge-bell",
"construction",
"container-storage",
"conveyor-belt",
"conveyor-belt-alt",
"cookie",
"cookie-bite",
"copy",
"copyright",
"corn",
"couch",
"cow",
"cowbell",
"cowbell-more",
"credit-card",
"credit-card-blank",
"credit-card-front",
"cricket",
"croissant",
"crop",
"crop-alt",
"cross",
"crosshairs",
"crow",
"crown",
"crutch",
"crutches",
"cube",
"cubes",
"curling",
"cut",
"dagger",
"database",
"deaf",
"debug",
"deer",
"deer-rudolph",
"democrat",
"desktop",
"desktop-alt",
"dewpoint",
"dharmachakra",
"diagnoses",
"diamond",
"dice",
"dice-d10",
"dice-d12",
"dice-d20",
"dice-d4",
"dice-d6",
"dice-d8",
"dice-five",
"dice-four",
"dice-one",
"dice-six",
"dice-three",
"dice-two",
"digging",
"digital-tachograph",
"diploma",
"directions",
"disc-drive",
"disease",
"divide",
"dizzy",
"dna",
"do-not-enter",
"dog",
"dog-leashed",
"dollar-sign",
"dolly",
"dolly-empty",
"dolly-flatbed",
"dolly-flatbed-alt",
"dolly-flatbed-empty",
"donate",
"door-closed",
"door-open",
"dot-circle",
"dove",
"download",
"drafting-compass",
"dragon",
"draw-circle",
"draw-polygon",
"draw-square",
"dreidel",
"drone",
"drone-alt",
"drum",
"drum-steelpan",
"drumstick",
"drumstick-bite",
"dryer",
"dryer-alt",
"duck",
"dumbbell",
"dumpster",
"dumpster-fire",
"dungeon",
"ear",
"ear-muffs",
"eclipse",
"eclipse-alt",
"edit",
"egg",
"egg-fried",
"eject",
"elephant",
"ellipsis-h",
"ellipsis-h-alt",
"ellipsis-v",
"ellipsis-v-alt",
"empty-set",
"engine-warning",
"envelope",
"envelope-open",
"envelope-open-dollar",
"envelope-open-text",
"envelope-square",
"equals",
"eraser",
"ethernet",
"euro-sign",
"exchange",
"exchange-alt",
"exclamation",
"exclamation-circle",
"exclamation-square",
"exclamation-triangle",
"expand",
"expand-alt",
"expand-arrows",
"expand-arrows-alt",
"expand-wide",
"external-link",
"external-link-alt",
"external-link-square",
"external-link-square-alt",
"eye",
"eye-dropper",
"eye-evil",
"eye-slash",
"fan",
"fan-table",
"farm",
"fast-backward",
"fast-forward",
"faucet",
"faucet-drip",
"fax",
"feather",
"feather-alt",
"female",
"field-hockey",
"fighter-jet",
"file",
"file-alt",
"file-archive",
"file-audio",
"file-certificate",
"file-chart-line",
"file-chart-pie",
"file-check",
"file-code",
"file-contract",
"file-csv",
"file-download",
"file-edit",
"file-excel",
"file-exclamation",
"file-export",
"file-image",
"file-import",
"file-invoice",
"file-invoice-dollar",
"file-medical",
"file-medical-alt",
"file-minus",
"file-music",
"file-pdf",
"file-plus",
"file-powerpoint",
"file-prescription",
"file-search",
"file-signature",
"file-spreadsheet",
"file-times",
"file-upload",
"file-user",
"file-video",
"file-word",
"files-medical",
"fill",
"fill-drip",
"film",
"film-alt",
"film-canister",
"filter",
"fingerprint",
"fire",
"fire-alt",
"fire-extinguisher",
"fire-smoke",
"fireplace",
"first-aid",
"fish",
"fish-cooked",
"fist-raised",
"flag",
"flag-alt",
"flag-checkered",
"flag-usa",
"flame",
"flashlight",
"flask",
"flask-poison",
"flask-potion",
"flower",
"flower-daffodil",
"flower-tulip",
"flushed",
"flute",
"flux-capacitor",
"fog",
"folder",
"folder-download",
"folder-minus",
"folder-open",
"folder-plus",
"folder-times",
"folder-tree",
"folder-upload",
"folders",
"font",
"font-awesome-logo-full",
"font-case",
"football-ball",
"football-helmet",
"forklift",
"forward",
"fragile",
"french-fries",
"frog",
"frosty-head",
"frown",
"frown-open",
"function",
"funnel-dollar",
"futbol",
"galaxy",
"game-board",
"game-board-alt",
"game-console-handheld",
"gamepad",
"gamepad-alt",
"garage",
"garage-car",
"garage-open",
"gas-pump",
"gas-pump-slash",
"gavel",
"gem",
"genderless",
"ghost",
"gift",
"gift-card",
"gifts",
"gingerbread-man",
"glass",
"glass-champagne",
"glass-cheers",
"glass-citrus",
"glass-martini",
"glass-martini-alt",
"glass-whiskey",
"glass-whiskey-rocks",
"glasses",
"glasses-alt",
"globe",
"globe-africa",
"globe-americas",
"globe-asia",
"globe-europe",
"globe-snow",
"globe-stand",
"golf-ball",
"golf-club",
"gopuram",
"graduation-cap",
"gramophone",
"greater-than",
"greater-than-equal",
"grimace",
"grin",
"grin-alt",
"grin-beam",
"grin-beam-sweat",
"grin-hearts",
"grin-squint",
"grin-squint-tears",
"grin-stars",
"grin-tears",
"grin-tongue",
"grin-tongue-squint",
"grin-tongue-wink",
"grin-wink",
"grip-horizontal",
"grip-lines",
"grip-lines-vertical",
"grip-vertical",
"guitar",
"guitar-electric",
"guitars",
"h-square",
"h1",
"h2",
"h3",
"h4",
"hamburger",
"hammer",
"hammer-war",
"hamsa",
"hand-heart",
"hand-holding",
"hand-holding-box",
"hand-holding-heart",
"hand-holding-magic",
"hand-holding-medical",
"hand-holding-seedling",
"hand-holding-usd",
"hand-holding-water",
"hand-lizard",
"hand-middle-finger",
"hand-paper",
"hand-peace",
"hand-point-down",
"hand-point-left",
"hand-point-right",
"hand-point-up",
"hand-pointer",
"hand-receiving",
"hand-rock",
"hand-scissors",
"hand-sparkles",
"hand-spock",
"hands",
"hands-heart",
"hands-helping",
"hands-usd",
"hands-wash",
"handshake",
"handshake-alt",
"handshake-alt-slash",
"handshake-slash",
"hanukiah",
"hard-hat",
"hashtag",
"hat-chef",
"hat-cowboy",
"hat-cowboy-side",
"hat-santa",
"hat-winter",
"hat-witch",
"hat-wizard",
"hdd",
"head-side",
"head-side-brain",
"head-side-cough",
"head-side-cough-slash",
"head-side-headphones",
"head-side-mask",
"head-side-medical",
"head-side-virus",
"head-vr",
"heading",
"headphones",
"headphones-alt",
"headset",
"heart",
"heart-broken",
"heart-circle",
"heart-rate",
"heart-square",
"heartbeat",
"heat",
"helicopter",
"helmet-battle",
"hexagon",
"highlighter",
"hiking",
"hippo",
"history",
"hockey-mask",
"hockey-puck",
"hockey-sticks",
"holly-berry",
"home",
"home-alt",
"home-heart",
"home-lg",
"home-lg-alt",
"hood-cloak",
"horizontal-rule",
"horse",
"horse-head",
"horse-saddle",
"hospital",
"hospital-alt",
"hospital-symbol",
"hospital-user",
"hospitals",
"hot-tub",
"hotdog",
"hotel",
"hourglass",
"hourglass-end",
"hourglass-half",
"hourglass-start",
"house",
"house-damage",
"house-day",
"house-flood",
"house-leave",
"house-night",
"house-return",
"house-signal",
"house-user",
"hryvnia",
"humidity",
"hurricane",
"i-cursor",
"ice-cream",
"ice-skate",
"icicles",
"icons",
"icons-alt",
"id-badge",
"id-card",
"id-card-alt",
"igloo",
"image",
"image-polaroid",
"images",
"inbox",
"inbox-in",
"inbox-out",
"indent",
"industry",
"industry-alt",
"infinity",
"info",
"info-circle",
"info-square",
"inhaler",
"integral",
"intersection",
"inventory",
"island-tropical",
"italic",
"jack-o-lantern",
"jedi",
"joint",
"journal-whills",
"joystick",
"jug",
"kaaba",
"kazoo",
"kerning",
"key",
"key-skeleton",
"keyboard",
"keynote",
"khanda",
"kidneys",
"kiss",
"kiss-beam",
"kiss-wink-heart",
"kite",
"kiwi-bird",
"knife-kitchen",
"lambda",
"lamp",
"lamp-desk",
"lamp-floor",
"landmark",
"landmark-alt",
"language",
"laptop",
"laptop-code",
"laptop-house",
"laptop-medical",
"lasso",
"laugh",
"laugh-beam",
"laugh-squint",
"laugh-wink",
"layer-group",
"layer-minus",
"layer-plus",
"leaf",
"leaf-heart",
"leaf-maple",
"leaf-oak",
"lemon",
"less-than",
"less-than-equal",
"level-down",
"level-down-alt",
"level-up",
"level-up-alt",
"life-ring",
"light-ceiling",
"light-switch",
"light-switch-off",
"light-switch-on",
"lightbulb",
"lightbulb-dollar",
"lightbulb-exclamation",
"lightbulb-on",
"lightbulb-slash",
"lights-holiday",
"line-columns",
"line-height",
"link",
"lips",
"lira-sign",
"list",
"list-alt",
"list-music",
"list-ol",
"list-ul",
"location",
"location-arrow",
"location-circle",
"location-slash",
"lock",
"lock-alt",
"lock-open",
"lock-open-alt",
"long-arrow-alt-down",
"long-arrow-alt-left",
"long-arrow-alt-right",
"long-arrow-alt-up",
"long-arrow-down",
"long-arrow-left",
"long-arrow-right",
"long-arrow-up",
"loveseat",
"low-vision",
"luchador",
"luggage-cart",
"lungs",
"lungs-virus",
"mace",
"magic",
"magnet",
"mail-bulk",
"mailbox",
"male",
"mandolin",
"map",
"map-marked",
"map-marked-alt",
"map-marker",
"map-marker-alt",
"map-marker-alt-slash",
"map-marker-check",
"map-marker-edit",
"map-marker-exclamation",
"map-marker-minus",
"map-marker-plus",
"map-marker-question",
"map-marker-slash",
"map-marker-smile",
"map-marker-times",
"map-pin",
"map-signs",
"marker",
"mars",
"mars-double",
"mars-stroke",
"mars-stroke-h",
"mars-stroke-v",
"mask",
"meat",
"medal",
"medkit",
"megaphone",
"meh",
"meh-blank",
"meh-rolling-eyes",
"memory",
"menorah",
"mercury",
"meteor",
"microchip",
"microphone",
"microphone-alt",
"microphone-alt-slash",
"microphone-slash",
"microphone-stand",
"microscope",
"microwave",
"mind-share",
"minus",
"minus-circle",
"minus-hexagon",
"minus-octagon",
"minus-square",
"mistletoe",
"mitten",
"mobile",
"mobile-alt",
"mobile-android",
"mobile-android-alt",
"money-bill",
"money-bill-alt",
"money-bill-wave",
"money-bill-wave-alt",
"money-check",
"money-check-alt",
"money-check-edit",
"money-check-edit-alt",
"monitor-heart-rate",
"monkey",
"monument",
"moon",
"moon-cloud",
"moon-stars",
"mortar-pestle",
"mosque",
"motorcycle",
"mountain",
"mountains",
"mouse",
"mouse-alt",
"mouse-pointer",
"mp3-player",
"mug",
"mug-hot",
"mug-marshmallows",
"mug-tea",
"music",
"music-alt",
"music-alt-slash",
"music-slash",
"narwhal",
"network-wired",
"neuter",
"newspaper",
"not-equal",
"notes-medical",
"object-group",
"object-ungroup",
"octagon",
"oil-can",
"oil-temp",
"om",
"omega",
"ornament",
"otter",
"outdent",
"outlet",
"oven",
"overline",
"page-break",
"pager",
"paint-brush",
"paint-brush-alt",
"paint-roller",
"palette",
"pallet",
"pallet-alt",
"paper-plane",
"paperclip",
"parachute-box",
"paragraph",
"paragraph-rtl",
"parking",
"parking-circle",
"parking-circle-slash",
"parking-slash",
"passport",
"pastafarianism",
"paste",
"pause",
"pause-circle",
"paw",
"paw-alt",
"paw-claws",
"peace",
"pegasus",
"pen",
"pen-alt",
"pen-fancy",
"pen-nib",
"pen-square",
"pencil",
"pencil-alt",
"pencil-paintbrush",
"pencil-ruler",
"pennant",
"people-arrows",
"people-carry",
"pepper-hot",
"percent",
"percentage",
"person-booth",
"person-carry",
"person-dolly",
"person-dolly-empty",
"person-sign",
"phone",
"phone-alt",
"phone-laptop",
"phone-office",
"phone-plus",
"phone-rotary",
"phone-slash",
"phone-square",
"phone-square-alt",
"phone-volume",
"photo-video",
"pi",
"piano",
"piano-keyboard",
"pie",
"pig",
"piggy-bank",
"pills",
"pizza",
"pizza-slice",
"place-of-worship",
"plane",
"plane-alt",
"plane-arrival",
"plane-departure",
"plane-slash",
"planet-moon",
"planet-ringed",
"play",
"play-circle",
"plug",
"plus",
"plus-circle",
"plus-hexagon",
"plus-octagon",
"plus-square",
"podcast",
"podium",
"podium-star",
"police-box",
"poll",
"poll-h",
"poll-people",
"poo",
"poo-storm",
"poop",
"popcorn",
"portal-enter",
"portal-exit",
"portrait",
"pound-sign",
"power-off",
"pray",
"praying-hands",
"prescription",
"prescription-bottle",
"prescription-bottle-alt",
"presentation",
"print",
"print-search",
"print-slash",
"procedures",
"project-diagram",
"projector",
"pump-medical",
"pump-soap",
"pumpkin",
"puzzle-piece",
"qrcode",
"question",
"question-circle",
"question-square",
"quidditch",
"quote-left",
"quote-right",
"quran",
"rabbit",
"rabbit-fast",
"racquet",
"radar",
"radiation",
"radiation-alt",
"radio",
"radio-alt",
"rainbow",
"raindrops",
"ram",
"ramp-loading",
"random",
"raygun",
"receipt",
"record-vinyl",
"rectangle-landscape",
"rectangle-portrait",
"rectangle-wide",
"recycle",
"redo",
"redo-alt",
"refrigerator",
"registered",
"remove-format",
"repeat",
"repeat-1",
"repeat-1-alt",
"repeat-alt",
"reply",
"reply-all",
"republican",
"restroom",
"retweet",
"retweet-alt",
"ribbon",
"ring",
"rings-wedding",
"road",
"robot",
"rocket",
"rocket-launch",
"route",
"route-highway",
"route-interstate",
"router",
"rss",
"rss-square",
"ruble-sign",
"ruler",
"ruler-combined",
"ruler-horizontal",
"ruler-triangle",
"ruler-vertical",
"running",
"rupee-sign",
"rv",
"sack",
"sack-dollar",
"sad-cry",
"sad-tear",
"salad",
"sandwich",
"satellite",
"satellite-dish",
"sausage",
"save",
"sax-hot",
"saxophone",
"scalpel",
"scalpel-path",
"scanner",
"scanner-image",
"scanner-keyboard",
"scanner-touchscreen",
"scarecrow",
"scarf",
"school",
"screwdriver",
"scroll",
"scroll-old",
"scrubber",
"scythe",
"sd-card",
"search",
"search-dollar",
"search-location",
"search-minus",
"search-plus",
"seedling",
"send-back",
"send-backward",
"sensor",
"sensor-alert",
"sensor-fire",
"sensor-on",
"sensor-smoke",
"server",
"shapes",
"share",
"share-all",
"share-alt",
"share-alt-square",
"share-square",
"sheep",
"shekel-sign",
"shield",
"shield-alt",
"shield-check",
"shield-cross",
"shield-virus",
"ship",
"shipping-fast",
"shipping-timed",
"shish-kebab",
"shoe-prints",
"shopping-bag",
"shopping-basket",
"shopping-cart",
"shovel",
"shovel-snow",
"shower",
"shredder",
"shuttle-van",
"shuttlecock",
"sickle",
"sigma",
"sign",
"sign-in",
"sign-in-alt",
"sign-language",
"sign-out",
"sign-out-alt",
"signal",
"signal-1",
"signal-2",
"signal-3",
"signal-4",
"signal-alt",
"signal-alt-1",
"signal-alt-2",
"signal-alt-3",
"signal-alt-slash",
"signal-slash",
"signal-stream",
"signature",
"sim-card",
"sink",
"siren",
"siren-on",
"sitemap",
"skating",
"skeleton",
"ski-jump",
"ski-lift",
"skiing",
"skiing-nordic",
"skull",
"skull-cow",
"skull-crossbones",
"slash",
"sledding",
"sleigh",
"sliders-h",
"sliders-h-square",
"sliders-v",
"sliders-v-square",
"smile",
"smile-beam",
"smile-plus",
"smile-wink",
"smog",
"smoke",
"smoking",
"smoking-ban",
"sms",
"snake",
"snooze",
"snow-blowing",
"snowboarding",
"snowflake",
"snowflakes",
"snowman",
"snowmobile",
"snowplow",
"soap",
"socks",
"solar-panel",
"solar-system",
"sort",
"sort-alpha-down",
"sort-alpha-down-alt",
"sort-alpha-up",
"sort-alpha-up-alt",
"sort-alt",
"sort-amount-down",
"sort-amount-down-alt",
"sort-amount-up",
"sort-amount-up-alt",
"sort-circle",
"sort-circle-down",
"sort-circle-up",
"sort-down",
"sort-numeric-down",
"sort-numeric-down-alt",
"sort-numeric-up",
"sort-numeric-up-alt",
"sort-shapes-down",
"sort-shapes-down-alt",
"sort-shapes-up",
"sort-shapes-up-alt",
"sort-size-down",
"sort-size-down-alt",
"sort-size-up",
"sort-size-up-alt",
"sort-up",
"soup",
"spa",
"space-shuttle",
"space-station-moon",
"space-station-moon-alt",
"spade",
"sparkles",
"speaker",
"speakers",
"spell-check",
"spider",
"spider-black-widow",
"spider-web",
"spinner",
"spinner-third",
"splotch",
"spray-can",
"sprinkler",
"square",
"square-full",
"square-root",
"square-root-alt",
"squirrel",
"staff",
"stamp",
"star",
"star-and-crescent",
"star-christmas",
"star-exclamation",
"star-half",
"star-half-alt",
"star-of-david",
"star-of-life",
"star-shooting",
"starfighter",
"starfighter-alt",
"stars",
"starship",
"starship-freighter",
"steak",
"steering-wheel",
"step-backward",
"step-forward",
"stethoscope",
"sticky-note",
"stocking",
"stomach",
"stop",
"stop-circle",
"stopwatch",
"stopwatch-20",
"store",
"store-alt",
"store-alt-slash",
"store-slash",
"stream",
"street-view",
"stretcher",
"strikethrough",
"stroopwafel",
"subscript",
"subway",
"suitcase",
"suitcase-rolling",
"sun",
"sun-cloud",
"sun-dust",
"sun-haze",
"sunglasses",
"sunrise",
"sunset",
"superscript",
"surprise",
"swatchbook",
"swimmer",
"swimming-pool",
"sword",
"sword-laser",
"sword-laser-alt",
"swords",
"swords-laser",
"synagogue",
"sync",
"sync-alt",
"syringe",
"table",
"table-tennis",
"tablet",
"tablet-alt",
"tablet-android",
"tablet-android-alt",
"tablet-rugged",
"tablets",
"tachometer",
"tachometer-alt",
"tachometer-alt-average",
"tachometer-alt-fast",
"tachometer-alt-fastest",
"tachometer-alt-slow",
"tachometer-alt-slowest",
"tachometer-average",
"tachometer-fast",
"tachometer-fastest",
"tachometer-slow",
"tachometer-slowest",
"taco",
"tag",
"tags",
"tally",
"tanakh",
"tape",
"tasks",
"tasks-alt",
"taxi",
"teeth",
"teeth-open",
"telescope",
"temperature-down",
"temperature-frigid",
"temperature-high",
"temperature-hot",
"temperature-low",
"temperature-up",
"tenge",
"tennis-ball",
"terminal",
"text",
"text-height",
"text-size",
"text-width",
"th",
"th-large",
"th-list",
"theater-masks",
"thermometer",
"thermometer-empty",
"thermometer-full",
"thermometer-half",
"thermometer-quarter",
"thermometer-three-quarters",
"theta",
"thumbs-down",
"thumbs-up",
"thumbtack",
"thunderstorm",
"thunderstorm-moon",
"thunderstorm-sun",
"ticket",
"ticket-alt",
"tilde",
"times",
"times-circle",
"times-hexagon",
"times-octagon",
"times-square",
"tint",
"tint-slash",
"tire",
"tire-flat",
"tire-pressure-warning",
"tire-rugged",
"tired",
"toggle-off",
"toggle-on",
"toilet",
"toilet-paper",
"toilet-paper-alt",
"toilet-paper-slash",
"tombstone",
"tombstone-alt",
"toolbox",
"tools",
"tooth",
"toothbrush",
"torah",
"torii-gate",
"tornado",
"tractor",
"trademark",
"traffic-cone",
"traffic-light",
"traffic-light-go",
"traffic-light-slow",
"traffic-light-stop",
"trailer",
"train",
"tram",
"transgender",
"transgender-alt",
"transporter",
"transporter-1",
"transporter-2",
"transporter-3",
"transporter-empty",
"trash",
"trash-alt",
"trash-restore",
"trash-restore-alt",
"trash-undo",
"trash-undo-alt",
"treasure-chest",
"tree",
"tree-alt",
"tree-christmas",
"tree-decorated",
"tree-large",
"tree-palm",
"trees",
"triangle",
"triangle-music",
"trophy",
"trophy-alt",
"truck",
"truck-container",
"truck-couch",
"truck-loading",
"truck-monster",
"truck-moving",
"truck-pickup",
"truck-plow",
"truck-ramp",
"trumpet",
"tshirt",
"tty",
"turkey",
"turntable",
"turtle",
"tv",
"tv-alt",
"tv-music",
"tv-retro",
"typewriter",
"ufo",
"ufo-beam",
"umbrella",
"umbrella-beach",
"underline",
"undo",
"undo-alt",
"unicorn",
"union",
"universal-access",
"university",
"unlink",
"unlock",
"unlock-alt",
"upload",
"usb-drive",
"usd-circle",
"usd-square",
"user",
"user-alien",
"user-alt",
"user-alt-slash",
"user-astronaut",
"user-chart",
"user-check",
"user-circle",
"user-clock",
"user-cog",
"user-cowboy",
"user-crown",
"user-edit",
"user-friends",
"user-graduate",
"user-hard-hat",
"user-headset",
"user-injured",
"user-lock",
"user-md",
"user-md-chat",
"user-minus",
"user-music",
"user-ninja",
"user-nurse",
"user-plus",
"user-robot",
"user-secret",
"user-shield",
"user-slash",
"user-tag",
"user-tie",
"user-times",
"user-unlock",
"user-visor",
"users",
"users-class",
"users-cog",
"users-crown",
"users-medical",
"users-slash",
"utensil-fork",
"utensil-knife",
"utensil-spoon",
"utensils",
"utensils-alt",
"vacuum",
"vacuum-robot",
"value-absolute",
"vector-square",
"venus",
"venus-double",
"venus-mars",
"vest",
"vest-patches",
"vhs",
"vial",
"vials",
"video",
"video-plus",
"video-slash",
"vihara",
"violin",
"virus",
"virus-slash",
"viruses",
"voicemail",
"volcano",
"volleyball-ball",
"volume",
"volume-down",
"volume-mute",
"volume-off",
"volume-slash",
"volume-up",
"vote-nay",
"vote-yea",
"vr-cardboard",
"wagon-covered",
"walker",
"walkie-talkie",
"walking",
"wallet",
"wand",
"wand-magic",
"warehouse",
"warehouse-alt",
"washer",
"watch",
"watch-calculator",
"watch-fitness",
"water",
"water-lower",
"water-rise",
"wave-sine",
"wave-square",
"wave-triangle",
"waveform",
"waveform-path",
"webcam",
"webcam-slash",
"weight",
"weight-hanging",
"whale",
"wheat",
"wheelchair",
"whistle",
"wifi",
"wifi-1",
"wifi-2",
"wifi-slash",
"wind",
"wind-turbine",
"wind-warning",
"window",
"window-alt",
"window-close",
"window-frame",
"window-frame-open",
"window-maximize",
"window-minimize",
"window-restore",
"windsock",
"wine-bottle",
"wine-glass",
"wine-glass-alt",
"won-sign",
"wreath",
"wrench",
"x-ray",
"yen-sign",
"yin-yang"
]
}
Protection enabled.Protection enabled.