Files
carpseeds.pl/wp-content/plugins/elementor-3.2.5-bck4/assets/dev/js/frontend/documents-manager.js
2024-07-15 11:28:08 +02:00

58 lines
1.2 KiB
JavaScript

import Document from './document';
export default class extends elementorModules.ViewModule {
constructor( ...args ) {
super( ...args );
this.documents = {};
this.initDocumentClasses();
this.attachDocumentsClasses();
}
getDefaultSettings() {
return {
selectors: {
document: '.elementor',
},
};
}
getDefaultElements() {
const selectors = this.getSettings( 'selectors' );
return {
$documents: jQuery( selectors.document ),
};
}
initDocumentClasses() {
this.documentClasses = {
base: Document,
};
elementorFrontend.hooks.doAction( 'elementor/frontend/documents-manager/init-classes', this );
}
addDocumentClass( documentType, documentClass ) {
this.documentClasses[ documentType ] = documentClass;
}
attachDocumentsClasses() {
this.elements.$documents.each( ( index, document ) => this.attachDocumentClass( jQuery( document ) ) );
}
attachDocumentClass( $document ) {
const documentData = $document.data(),
documentID = documentData.elementorId,
documentType = documentData.elementorType,
DocumentClass = this.documentClasses[ documentType ] || this.documentClasses.base;
this.documents[ documentID ] = new DocumentClass( {
$element: $document,
id: documentID,
} );
}
}