X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/b8c16b15a9f945b72d2ca4fe0c0172ba422199bc..refs/pull/4262/head:/resources/js/components/index.js diff --git a/resources/js/components/index.js b/resources/js/components/index.js index 112827330..803714e62 100644 --- a/resources/js/components/index.js +++ b/resources/js/components/index.js @@ -1,109 +1,59 @@ -import dropdown from "./dropdown"; -import overlay from "./overlay"; -import backToTop from "./back-to-top"; -import notification from "./notification"; -import chapterToggle from "./chapter-toggle"; -import expandToggle from "./expand-toggle"; -import entitySelectorPopup from "./entity-selector-popup"; -import entitySelector from "./entity-selector"; -import sidebar from "./sidebar"; -import pagePicker from "./page-picker"; -import pageComments from "./page-comments"; -import wysiwygEditor from "./wysiwyg-editor"; -import markdownEditor from "./markdown-editor"; -import editorToolbox from "./editor-toolbox"; -import imagePicker from "./image-picker"; -import collapsible from "./collapsible"; -import toggleSwitch from "./toggle-switch"; -import pageDisplay from "./page-display"; -import shelfSort from "./shelf-sort"; -import homepageControl from "./homepage-control"; -import headerMobileToggle from "./header-mobile-toggle"; -import listSortControl from "./list-sort-control"; -import triLayout from "./tri-layout"; -import breadcrumbListing from "./breadcrumb-listing"; -import permissionsTable from "./permissions-table"; -import customCheckbox from "./custom-checkbox"; -import bookSort from "./book-sort"; -import settingAppColorPicker from "./setting-app-color-picker"; -import settingColorPicker from "./setting-color-picker"; -import entityPermissionsEditor from "./entity-permissions-editor"; -import templateManager from "./template-manager"; -import newUserPassword from "./new-user-password"; -import detailsHighlighter from "./details-highlighter"; -import codeHighlighter from "./code-highlighter"; - -const componentMapping = { - 'dropdown': dropdown, - 'overlay': overlay, - 'back-to-top': backToTop, - 'notification': notification, - 'chapter-toggle': chapterToggle, - 'expand-toggle': expandToggle, - 'entity-selector-popup': entitySelectorPopup, - 'entity-selector': entitySelector, - 'sidebar': sidebar, - 'page-picker': pagePicker, - 'page-comments': pageComments, - 'wysiwyg-editor': wysiwygEditor, - 'markdown-editor': markdownEditor, - 'editor-toolbox': editorToolbox, - 'image-picker': imagePicker, - 'collapsible': collapsible, - 'toggle-switch': toggleSwitch, - 'page-display': pageDisplay, - 'shelf-sort': shelfSort, - 'homepage-control': homepageControl, - 'header-mobile-toggle': headerMobileToggle, - 'list-sort-control': listSortControl, - 'tri-layout': triLayout, - 'breadcrumb-listing': breadcrumbListing, - 'permissions-table': permissionsTable, - 'custom-checkbox': customCheckbox, - 'book-sort': bookSort, - 'setting-app-color-picker': settingAppColorPicker, - 'setting-color-picker': settingColorPicker, - 'entity-permissions-editor': entityPermissionsEditor, - 'template-manager': templateManager, - 'new-user-password': newUserPassword, - 'details-highlighter': detailsHighlighter, - 'code-highlighter': codeHighlighter, -}; - -window.components = {}; - -const componentNames = Object.keys(componentMapping); - -/** - * Initialize components of the given name within the given element. - * @param {String} componentName - * @param {HTMLElement|Document} parentElement - */ -function initComponent(componentName, parentElement) { - let elems = parentElement.querySelectorAll(`[${componentName}]`); - if (elems.length === 0) return; - - let component = componentMapping[componentName]; - if (typeof window.components[componentName] === "undefined") window.components[componentName] = []; - for (let j = 0, jLen = elems.length; j < jLen; j++) { - let instance = new component(elems[j]); - if (typeof elems[j].components === 'undefined') elems[j].components = {}; - elems[j].components[componentName] = instance; - window.components[componentName].push(instance); - } -} - -/** - * Initialize all components found within the given element. - * @param parentElement - */ -function initAll(parentElement) { - if (typeof parentElement === 'undefined') parentElement = document; - for (let i = 0, len = componentNames.length; i < len; i++) { - initComponent(componentNames[i], parentElement); - } -} - -window.components.init = initAll; - -export default initAll; +export {AddRemoveRows} from './add-remove-rows'; +export {AjaxDeleteRow} from './ajax-delete-row'; +export {AjaxForm} from './ajax-form'; +export {Attachments} from './attachments'; +export {AttachmentsList} from './attachments-list'; +export {AutoSuggest} from './auto-suggest'; +export {AutoSubmit} from './auto-submit'; +export {BackToTop} from './back-to-top'; +export {BookSort} from './book-sort'; +export {ChapterContents} from './chapter-contents'; +export {CodeEditor} from './code-editor'; +export {CodeHighlighter} from './code-highlighter'; +export {CodeTextarea} from './code-textarea'; +export {Collapsible} from './collapsible'; +export {ConfirmDialog} from './confirm-dialog'; +export {CustomCheckbox} from './custom-checkbox'; +export {DetailsHighlighter} from './details-highlighter'; +export {Dropdown} from './dropdown'; +export {DropdownSearch} from './dropdown-search'; +export {Dropzone} from './dropzone'; +export {EditorToolbox} from './editor-toolbox'; +export {EntityPermissions} from './entity-permissions'; +export {EntitySearch} from './entity-search'; +export {EntitySelector} from './entity-selector'; +export {EntitySelectorPopup} from './entity-selector-popup'; +export {EventEmitSelect} from './event-emit-select'; +export {ExpandToggle} from './expand-toggle'; +export {GlobalSearch} from './global-search'; +export {HeaderMobileToggle} from './header-mobile-toggle'; +export {ImageManager} from './image-manager'; +export {ImagePicker} from './image-picker'; +export {ListSortControl} from './list-sort-control'; +export {MarkdownEditor} from './markdown-editor'; +export {NewUserPassword} from './new-user-password'; +export {Notification} from './notification'; +export {OptionalInput} from './optional-input'; +export {PageComments} from './page-comments'; +export {PageDisplay} from './page-display'; +export {PageEditor} from './page-editor'; +export {PagePicker} from './page-picker'; +export {PermissionsTable} from './permissions-table'; +export {Pointer} from './pointer'; +export {Popup} from './popup'; +export {SettingAppColorScheme} from './setting-app-color-scheme'; +export {SettingColorPicker} from './setting-color-picker'; +export {SettingHomepageControl} from './setting-homepage-control'; +export {ShelfSort} from './shelf-sort'; +export {Shortcuts} from './shortcuts'; +export {ShortcutInput} from './shortcut-input'; +export {SortableList} from './sortable-list'; +export {SubmitOnChange} from './submit-on-change'; +export {Tabs} from './tabs'; +export {TagManager} from './tag-manager'; +export {TemplateManager} from './template-manager'; +export {ToggleSwitch} from './toggle-switch'; +export {TriLayout} from './tri-layout'; +export {UserSelect} from './user-select'; +export {WebhookEvents} from './webhook-events'; +export {WysiwygEditor} from './wysiwyg-editor';