PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.6
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.6
4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 All 139 releases
learnpress / assets / js / dist / frontend / single-curriculum.js

single-curriculum.js in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.4.6, at assets/js/dist/frontend/single-curriculum.js

1,289 lines 43.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ var __webpack_modules__ = ({
3
4 /***/ "./assets/src/apps/js/frontend/material.js"
5 /*!*************************************************!*\
6 !*** ./assets/src/apps/js/frontend/material.js ***!
7 \*************************************************/
8 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9
10 "use strict";
11 __webpack_require__.r(__webpack_exports__);
12 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 /* harmony export */ "default": () => (/* binding */ lpMaterialsLoad)
14 /* harmony export */ });
15 /* harmony import */ var _js_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../js/utils.js */ "./assets/src/js/utils.js");
16
17 function lpMaterialsLoad() {
18 document.addEventListener('click', function (e) {
19 const target = e.target;
20 if (target.classList.contains('lp-loadmore-material')) {
21 const loadMoreButton = target;
22 const lpTarget = target.closest('.lp-target');
23 const dataSend = window.lpAJAXG.getDataSetCurrent(lpTarget);
24 dataSend.args.paged++;
25 _js_utils_js__WEBPACK_IMPORTED_MODULE_0__.lpSetLoadingEl(loadMoreButton, 1);
26 const callBack = {
27 success: response => {
28 const {
29 status,
30 message,
31 data
32 } = response;
33 if (status === 'success') {
34 const tableBody = lpTarget.querySelector('table.course-material-table tbody');
35 tableBody.insertAdjacentHTML('beforeend', data.content);
36 if (data.paged === data.total_pages) {
37 loadMoreButton.remove();
38 }
39 window.lpAJAXG.setDataSetCurrent(lpTarget, dataSend);
40 } else {
41 console.error(message);
42 }
43 },
44 error: error => {
45 console.error(error);
46 },
47 completed: () => {
48 _js_utils_js__WEBPACK_IMPORTED_MODULE_0__.lpSetLoadingEl(loadMoreButton, 0);
49 }
50 };
51 window.lpAJAXG.fetchAJAX(dataSend, callBack);
52 }
53 });
54 }
55
56 /***/ },
57
58 /***/ "./assets/src/apps/js/frontend/show-lp-overlay-complete-item.js"
59 /*!**********************************************************************!*\
60 !*** ./assets/src/apps/js/frontend/show-lp-overlay-complete-item.js ***!
61 \**********************************************************************/
62 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
63
64 "use strict";
65 __webpack_require__.r(__webpack_exports__);
66 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
67 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
68 /* harmony export */ });
69 /* harmony import */ var _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/lp-modal-overlay */ "./assets/src/apps/js/utils/lp-modal-overlay.js");
70
71 const lpModalOverlayCompleteItem = {
72 elBtnFinishCourse: null,
73 elBtnCompleteItem: null,
74 init() {
75 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
76 return;
77 }
78 if (undefined === lpGlobalSettings || 'yes' !== lpGlobalSettings.option_enable_popup_confirm_finish) {
79 return;
80 }
81 this.elBtnFinishCourse = document.querySelectorAll('.lp-btn-finish-course');
82 this.elBtnCompleteItem = document.querySelector('.lp-btn-complete-item');
83 if (this.elBtnCompleteItem) {
84 this.elBtnCompleteItem.addEventListener('click', e => {
85 e.preventDefault();
86 const form = e.target.closest('form');
87 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
88 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(form.dataset.title);
89 // ESC html
90 const div = document.createElement('div');
91 div.appendChild(document.createTextNode(form.dataset.confirm));
92 const contentModal = div.innerHTML;
93 // End ESC html
94 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal('<div class="pd-2em">' + contentModal + '</div>');
95 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
96 form.submit();
97 };
98 });
99 }
100 if (this.elBtnFinishCourse) {
101 this.elBtnFinishCourse.forEach(element => element.addEventListener('click', e => {
102 e.preventDefault();
103 const form = e.target.closest('form');
104 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
105 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(form.dataset.title);
106 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal('<div class="pd-2em">' + form.dataset.confirm + '</div>');
107 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
108 form.submit();
109 };
110 }));
111 }
112 }
113 };
114 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lpModalOverlayCompleteItem);
115
116 /***/ },
117
118 /***/ "./assets/src/apps/js/frontend/single-curriculum/components/comment.js"
119 /*!*****************************************************************************!*\
120 !*** ./assets/src/apps/js/frontend/single-curriculum/components/comment.js ***!
121 \*****************************************************************************/
122 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
123
124 "use strict";
125 __webpack_require__.r(__webpack_exports__);
126 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
127 /* harmony export */ commentForm: () => (/* binding */ commentForm)
128 /* harmony export */ });
129 /**
130 * Toogle form Comment for Lesson.
131 *
132 * @author Nhamdv.
133 */
134
135 const commentForm = () => {
136 const btn = document.querySelector('.lp-lesson-comment-btn');
137 if (!btn) {
138 return;
139 }
140 const btnOpen = btn.textContent;
141 const btnClose = btn.dataset.close;
142 const hashComment = window.location.hash;
143 if (hashComment.includes('comment')) {
144 btn.parentNode.classList.add('open-comments');
145 }
146 const toogleText = (btn, btnParent) => {
147 if (btnParent.classList.contains('open-comments')) {
148 btn.textContent = btnClose;
149 } else {
150 btn.textContent = btnOpen;
151 }
152 };
153 toogleText(btn, btn.parentNode);
154 btn.addEventListener('click', e => {
155 e.preventDefault();
156 btn.parentNode.classList.toggle('open-comments');
157 toogleText(btn, btn.parentNode);
158 });
159
160 // Use for Rest API.
161 // const toogle = $( '#learn-press-item-comments-toggle' );
162
163 // toogle.on( 'change', async function() {
164 // if ( ! toogle[ 0 ].checked ) {
165 // return;
166 // }
167
168 // const response = await wp.apiFetch( {
169 // path: 'lp/v1/courses/339/item-comments/50',
170 // } );
171
172 // $( '.learn-press-comments' ).html( response.comments );
173 // } );
174 };
175
176 /***/ },
177
178 /***/ "./assets/src/apps/js/frontend/single-curriculum/components/compatible.js"
179 /*!********************************************************************************!*\
180 !*** ./assets/src/apps/js/frontend/single-curriculum/components/compatible.js ***!
181 \********************************************************************************/
182 () {
183
184 /**
185 * Compatible with Page Builder.
186 *
187 * @author nhamdv
188 */
189
190 LP.Hook.addAction('lp-compatible-builder', () => {
191 LP.Hook.removeAction('lp-compatible-builder');
192 if (typeof elementorFrontend !== 'undefined') {
193 [...document.querySelectorAll('#popup-content')][0].addEventListener('scroll', () => {
194 //Waypoint.refreshAll();
195 window.dispatchEvent(new Event('resize'));
196 });
197 }
198
199 /*if ( typeof vc_js !== 'undefined' && typeof VcWaypoint !== 'undefined' ) {
200 [ ...document.querySelectorAll( '#popup-content' ) ][ 0 ].addEventListener( 'scroll', () => {
201 VcWaypoint.refreshAll();
202 } );
203 }*/
204 });
205 LP.Hook.addAction('lp-quiz-compatible-builder', () => {
206 LP.Hook.removeAction('lp-quiz-compatible-builder');
207 LP.Hook.doAction('lp-compatible-builder');
208 if (typeof elementorFrontend !== 'undefined') {
209 return window.elementorFrontend.init();
210 }
211 if (typeof vc_js !== 'undefined') {
212 if (typeof vc_round_charts !== 'undefined') {
213 vc_round_charts();
214 }
215 if (typeof vc_pieChart !== 'undefined') {
216 vc_pieChart();
217 }
218 if (typeof vc_line_charts !== 'undefined') {
219 vc_line_charts();
220 }
221 return window.vc_js();
222 }
223 });
224 LP.Hook.addAction('lp-question-compatible-builder', () => {
225 LP.Hook.removeAction('lp-question-compatible-builder');
226 LP.Hook.removeAction('lp-quiz-compatible-builder');
227 LP.Hook.doAction('lp-compatible-builder');
228 if (typeof elementorFrontend !== 'undefined') {
229 return window.elementorFrontend.init();
230 }
231 if (typeof vc_js !== 'undefined') {
232 if (typeof vc_round_charts !== 'undefined') {
233 vc_round_charts();
234 }
235 if (typeof vc_pieChart !== 'undefined') {
236 vc_pieChart();
237 }
238 if (typeof vc_line_charts !== 'undefined') {
239 vc_line_charts();
240 }
241 return window.vc_js();
242 }
243 });
244
245 /***/ },
246
247 /***/ "./assets/src/apps/js/frontend/single-curriculum/components/items-progress.js"
248 /*!************************************************************************************!*\
249 !*** ./assets/src/apps/js/frontend/single-curriculum/components/items-progress.js ***!
250 \************************************************************************************/
251 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
252
253 "use strict";
254 __webpack_require__.r(__webpack_exports__);
255 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
256 /* harmony export */ getResponse: () => (/* binding */ getResponse),
257 /* harmony export */ itemsProgress: () => (/* binding */ itemsProgress)
258 /* harmony export */ });
259 /* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/url */ "@wordpress/url");
260 /* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_url__WEBPACK_IMPORTED_MODULE_0__);
261 /* harmony import */ var _show_lp_overlay_complete_item__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../show-lp-overlay-complete-item */ "./assets/src/apps/js/frontend/show-lp-overlay-complete-item.js");
262 // Rest API load content course progress - Nhamdv.
263
264
265 const itemsProgress = () => {
266 const elements = document.querySelectorAll('.popup-header__inner');
267 if (!elements.length) {
268 return;
269 }
270 if (document.querySelector('#learn-press-quiz-app div.quiz-result') !== null) {
271 return;
272 }
273 if (elements[0].querySelectorAll('form.form-button-finish-course').length !== 0) {
274 return;
275 }
276 const user_id = lpGlobalSettings.user_id || 0;
277 if (user_id === 0) {
278 return;
279 }
280 if ('IntersectionObserver' in window) {
281 const eleObserver = new IntersectionObserver((entries, observer) => {
282 entries.forEach(entry => {
283 if (entry.isIntersecting) {
284 const ele = entry.target;
285 getResponse(ele);
286 eleObserver.unobserve(ele);
287 }
288 });
289 });
290 [...elements].map(ele => eleObserver.observe(ele));
291 }
292 };
293 const getResponse = async ele => {
294 const response = await wp.apiFetch({
295 path: (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_0__.addQueryArgs)('lp/v1/lazy-load/items-progress', {
296 courseId: lpGlobalSettings.post_id || '',
297 userId: lpGlobalSettings.user_id || ''
298 }),
299 method: 'GET'
300 });
301 const {
302 data
303 } = response;
304 ele.innerHTML += data;
305 ele.classList.add('can-finish-course');
306 _show_lp_overlay_complete_item__WEBPACK_IMPORTED_MODULE_1__["default"].init();
307 };
308
309 /***/ },
310
311 /***/ "./assets/src/apps/js/frontend/single-curriculum/components/progress.js"
312 /*!******************************************************************************!*\
313 !*** ./assets/src/apps/js/frontend/single-curriculum/components/progress.js ***!
314 \******************************************************************************/
315 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
316
317 "use strict";
318 __webpack_require__.r(__webpack_exports__);
319 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
320 /* harmony export */ progressBar: () => (/* binding */ progressBar)
321 /* harmony export */ });
322 const $ = jQuery;
323 const progressBar = () => {
324 $('.learn-press-progress').each(function () {
325 const $progress = $(this);
326 const $active = $progress.find('.learn-press-progress__active');
327 const value = $active.data('value');
328 if (value === undefined) {
329 return;
330 }
331 $active.css('left', -(100 - parseInt(value)) + '%');
332 });
333 };
334
335 /***/ },
336
337 /***/ "./assets/src/apps/js/frontend/single-curriculum/components/search.js"
338 /*!****************************************************************************!*\
339 !*** ./assets/src/apps/js/frontend/single-curriculum/components/search.js ***!
340 \****************************************************************************/
341 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
342
343 "use strict";
344 __webpack_require__.r(__webpack_exports__);
345 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
346 /* harmony export */ searchCourseContent: () => (/* binding */ searchCourseContent)
347 /* harmony export */ });
348 const searchCourseContent = () => {
349 const popup = document.querySelector('#popup-course');
350 const list = document.querySelector('#learn-press-course-curriculum');
351 if (popup && list) {
352 const items = list.querySelector('.curriculum-sections');
353 const form = popup.querySelector('.search-course');
354 const search = popup.querySelector('.search-course input[type="text"]');
355 if (!search || !items || !form) {
356 return;
357 }
358 const sections = items.querySelectorAll('li.section');
359 const dataItems = items.querySelectorAll('li.course-item');
360 const dataSearch = [];
361 dataItems.forEach(item => {
362 const itemID = item.dataset.id;
363 const name = item.querySelector('.item-name');
364 dataSearch.push({
365 id: itemID,
366 name: name ? name.textContent.toLowerCase() : ''
367 });
368 });
369 const submit = event => {
370 event.preventDefault();
371 const inputVal = search.value;
372 form.classList.add('searching');
373 if (!inputVal) {
374 form.classList.remove('searching');
375 }
376 const outputs = [];
377 dataSearch.forEach(i => {
378 if (!inputVal || i.name.match(inputVal.toLowerCase())) {
379 outputs.push(i.id);
380 dataItems.forEach(c => {
381 if (outputs.indexOf(c.dataset.id) !== -1) {
382 c.classList.remove('hide-if-js');
383 } else {
384 c.classList.add('hide-if-js');
385 }
386 });
387 }
388 });
389 sections.forEach(section => {
390 const listItem = section.querySelectorAll('.course-item');
391 const isTrue = [];
392 listItem.forEach(a => {
393 if (outputs.includes(a.dataset.id)) {
394 isTrue.push(a.dataset.id);
395 }
396 });
397 if (isTrue.length === 0) {
398 section.classList.add('hide-if-js');
399 } else {
400 section.classList.remove('hide-if-js');
401 }
402 });
403 };
404 const clear = form.querySelector('.clear');
405 if (clear) {
406 clear.addEventListener('click', e => {
407 e.preventDefault();
408 search.value = '';
409 submit(e);
410 });
411 }
412 form.addEventListener('submit', submit);
413 search.addEventListener('keyup', submit);
414 }
415 };
416
417 /***/ },
418
419 /***/ "./assets/src/apps/js/frontend/single-curriculum/components/sidebar.js"
420 /*!*****************************************************************************!*\
421 !*** ./assets/src/apps/js/frontend/single-curriculum/components/sidebar.js ***!
422 \*****************************************************************************/
423 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
424
425 "use strict";
426 __webpack_require__.r(__webpack_exports__);
427 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
428 /* harmony export */ Sidebar: () => (/* binding */ Sidebar)
429 /* harmony export */ });
430 const $ = jQuery;
431 const {
432 throttle
433 } = lodash;
434 const Sidebar = () => {
435 // Tungnx - Show/hide sidebar curriculumn
436 const elSidebarToggle = document.querySelector('#sidebar-toggle');
437
438 // For style of theme
439 const toggleSidebar = toggle => {
440 $('body').removeClass('lp-sidebar-toggle__open');
441 $('body').removeClass('lp-sidebar-toggle__close');
442 if (toggle) {
443 $('body').addClass('lp-sidebar-toggle__close');
444 } else {
445 $('body').addClass('lp-sidebar-toggle__open');
446 }
447 };
448
449 // For lp and theme
450 if (elSidebarToggle) {
451 if ($(window).innerWidth() <= 768) {
452 elSidebarToggle.setAttribute('checked', 'checked');
453 } else if (LP.Cookies.get('sidebar-toggle')) {
454 elSidebarToggle.setAttribute('checked', 'checked');
455 } else {
456 elSidebarToggle.removeAttribute('checked');
457 }
458 }
459 // End editor by tungnx
460
461 // Code for old curriculum
462 /*const $curriculum = $( '#learn-press-course-curriculum' );
463 $curriculum.find( '.section-desc' ).each( ( i, el ) => {
464 const a = $( '<span class="show-desc"></span>' ).on( 'click', () => {
465 b.toggleClass( 'c' );
466 } );
467 const b = $( el ).siblings( '.section-title' ).append( a );
468 } );*/
469
470 // Code for old curriculum
471 /*$( '.section' ).each( function() {
472 const $section = $( this ),
473 $toggle = $section.find( '.section-left' );
474 $toggle.on( 'click', function() {
475 const isClose = $section.toggleClass( 'closed' ).hasClass( 'closed' );
476 const sections = LP.Cookies.get( 'closed-section-' + lpGlobalSettings.post_id ) || [];
477 const sectionId = parseInt( $section.data( 'section-id' ) );
478 const at = sections.findIndex( ( id ) => {
479 return id == sectionId;
480 } );
481 if ( isClose ) {
482 sections.push( parseInt( $section.data( 'section-id' ) ) );
483 } else {
484 sections.splice( at, 1 );
485 }
486 LP.Cookies.remove( 'closed-section-(.*)' );
487 LP.Cookies.set( 'closed-section-' + lpGlobalSettings.post_id, [ ...new Set( sections ) ] );
488 } );
489 } );*/
490
491 document.addEventListener('click', e => {
492 if (e.target.id === 'sidebar-toggle') {
493 LP.Cookies.set('sidebar-toggle', e.target.checked ? true : false);
494 toggleSidebar(LP.Cookies.get('sidebar-toggle'));
495 }
496 });
497 };
498
499 /***/ },
500
501 /***/ "./assets/src/apps/js/frontend/single-curriculum/index.js"
502 /*!****************************************************************!*\
503 !*** ./assets/src/apps/js/frontend/single-curriculum/index.js ***!
504 \****************************************************************/
505 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
506
507 "use strict";
508 __webpack_require__.r(__webpack_exports__);
509 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
510 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
511 /* harmony export */ });
512 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
513 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
514 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
515 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
516 /* harmony import */ var _components_search__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/search */ "./assets/src/apps/js/frontend/single-curriculum/components/search.js");
517 /* harmony import */ var _components_sidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/sidebar */ "./assets/src/apps/js/frontend/single-curriculum/components/sidebar.js");
518 /* harmony import */ var _components_progress__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/progress */ "./assets/src/apps/js/frontend/single-curriculum/components/progress.js");
519 /* harmony import */ var _components_comment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/comment */ "./assets/src/apps/js/frontend/single-curriculum/components/comment.js");
520 /* harmony import */ var _components_items_progress__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/items-progress */ "./assets/src/apps/js/frontend/single-curriculum/components/items-progress.js");
521 /* harmony import */ var _components_compatible__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/compatible */ "./assets/src/apps/js/frontend/single-curriculum/components/compatible.js");
522 /* harmony import */ var _components_compatible__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_components_compatible__WEBPACK_IMPORTED_MODULE_7__);
523
524 const $ = jQuery;
525
526
527
528
529
530
531
532 class SingleCurriculums extends _wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Component {
533 checkCourseDurationExpire() {
534 const elCourseItemIsBlockeds = document.getElementsByName('lp-course-timestamp-remaining');
535 if (elCourseItemIsBlockeds.length) {
536 const elCourseItemIsBlocked = elCourseItemIsBlockeds[0];
537 const timeDuration = elCourseItemIsBlocked.value; // value is second
538
539 if (timeDuration < 60 * 60 * 24) {
540 // compare with 1 day
541 setTimeout(function () {
542 window.location.reload(true);
543 }, timeDuration * 1000);
544 }
545 }
546 }
547 render() {
548 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null);
549 }
550 }
551 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SingleCurriculums);
552 document.addEventListener('DOMContentLoaded', () => {
553 LP.Hook.doAction('lp-compatible-builder');
554 (0,_components_search__WEBPACK_IMPORTED_MODULE_2__.searchCourseContent)();
555 (0,_components_sidebar__WEBPACK_IMPORTED_MODULE_3__.Sidebar)();
556 (0,_components_progress__WEBPACK_IMPORTED_MODULE_4__.progressBar)();
557 //commentForm();
558 (0,_components_items_progress__WEBPACK_IMPORTED_MODULE_6__.itemsProgress)();
559
560 // Check duration expire of course
561 const singleCurriculums = new SingleCurriculums();
562 singleCurriculums.checkCourseDurationExpire();
563 });
564
565 /***/ },
566
567 /***/ "./assets/src/apps/js/utils/lp-modal-overlay.js"
568 /*!******************************************************!*\
569 !*** ./assets/src/apps/js/utils/lp-modal-overlay.js ***!
570 \******************************************************/
571 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
572
573 "use strict";
574 __webpack_require__.r(__webpack_exports__);
575 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
576 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
577 /* harmony export */ });
578 const $ = jQuery;
579 let elLPOverlay = null;
580 const lpModalOverlay = {
581 elLPOverlay: null,
582 elMainContent: null,
583 elTitle: null,
584 elBtnYes: null,
585 elBtnNo: null,
586 elFooter: null,
587 elCalledModal: null,
588 callBackYes: null,
589 instance: null,
590 init() {
591 if (this.instance) {
592 return true;
593 }
594 this.elLPOverlay = $('.lp-overlay');
595 if (!this.elLPOverlay.length) {
596 return false;
597 }
598 elLPOverlay = this.elLPOverlay;
599 this.elMainContent = elLPOverlay.find('.main-content');
600 this.elTitle = elLPOverlay.find('.modal-title');
601 this.elBtnYes = elLPOverlay.find('.btn-yes');
602 this.elBtnNo = elLPOverlay.find('.btn-no');
603 this.elFooter = elLPOverlay.find('.lp-modal-footer');
604 $(document).on('click', '.close, .btn-no', function () {
605 elLPOverlay.hide();
606 });
607 $(document).on('click', '.btn-yes', function (e) {
608 e.preventDefault();
609 e.stopPropagation();
610 if ('function' === typeof lpModalOverlay.callBackYes) {
611 lpModalOverlay.callBackYes(e);
612 }
613 });
614 this.instance = this;
615 return true;
616 },
617 setElCalledModal(elCalledModal) {
618 this.elCalledModal = elCalledModal;
619 },
620 setContentModal(content, event) {
621 this.elMainContent.html(content);
622 if ('function' === typeof event) {
623 event();
624 }
625 },
626 setTitleModal(content) {
627 this.elTitle.html(content);
628 }
629 };
630 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lpModalOverlay);
631
632 /***/ },
633
634 /***/ "./assets/src/js/utils.js"
635 /*!********************************!*\
636 !*** ./assets/src/js/utils.js ***!
637 \********************************/
638 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
639
640 "use strict";
641 __webpack_require__.r(__webpack_exports__);
642 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
643 /* harmony export */ debounce: () => (/* binding */ debounce),
644 /* harmony export */ eventHandlers: () => (/* binding */ eventHandlers),
645 /* harmony export */ fullScreenView: () => (/* binding */ fullScreenView),
646 /* harmony export */ getDataOfForm: () => (/* binding */ getDataOfForm),
647 /* harmony export */ getFieldKeysOfForm: () => (/* binding */ getFieldKeysOfForm),
648 /* harmony export */ listenElementCreated: () => (/* binding */ listenElementCreated),
649 /* harmony export */ listenElementViewed: () => (/* binding */ listenElementViewed),
650 /* harmony export */ lpAddQueryArgs: () => (/* binding */ lpAddQueryArgs),
651 /* harmony export */ lpAjaxParseJsonOld: () => (/* binding */ lpAjaxParseJsonOld),
652 /* harmony export */ lpClassName: () => (/* binding */ lpClassName),
653 /* harmony export */ lpFetchAPI: () => (/* binding */ lpFetchAPI),
654 /* harmony export */ lpGetCurrentURLNoParam: () => (/* binding */ lpGetCurrentURLNoParam),
655 /* harmony export */ lpOnElementReady: () => (/* binding */ lpOnElementReady),
656 /* harmony export */ lpSetLoadingEl: () => (/* binding */ lpSetLoadingEl),
657 /* harmony export */ lpShowHideEl: () => (/* binding */ lpShowHideEl),
658 /* harmony export */ mergeDataWithDatForm: () => (/* binding */ mergeDataWithDatForm),
659 /* harmony export */ toggleCollapse: () => (/* binding */ toggleCollapse),
660 /* harmony export */ toggleEnable: () => (/* binding */ toggleEnable)
661 /* harmony export */ });
662 /**
663 * Utils functions
664 *
665 * @param url
666 * @param data
667 * @param functions
668 * @since 4.2.5.1
669 * @version 1.0.7
670 */
671 const lpClassName = {
672 hidden: 'lp-hidden',
673 loading: 'loading',
674 elCollapse: 'lp-collapse',
675 elSectionToggle: '.lp-section-toggle',
676 elTriggerToggle: '.lp-trigger-toggle',
677 elBtnFullScreen: '.lp-btn-full-screen-view',
678 elFullScreen: 'lp-full-screen-view',
679 elBtnFullScreenClose: 'lp-full-screen-view__close'
680 };
681 const lpFetchAPI = (url, data = {}, functions = {}) => {
682 if ('function' === typeof functions.before) {
683 functions.before();
684 }
685 fetch(url, {
686 method: 'GET',
687 ...data
688 }).then(response => response.json()).then(response => {
689 if ('function' === typeof functions.success) {
690 functions.success(response);
691 }
692 }).catch(err => {
693 if ('function' === typeof functions.error) {
694 functions.error(err);
695 }
696 }).finally(() => {
697 if ('function' === typeof functions.completed) {
698 functions.completed();
699 }
700 });
701 };
702
703 /**
704 * Get current URL without params.
705 *
706 * @since 4.2.5.1
707 */
708 const lpGetCurrentURLNoParam = () => {
709 let currentUrl = window.location.href;
710 const hasParams = currentUrl.includes('?');
711 if (hasParams) {
712 currentUrl = currentUrl.split('?')[0];
713 }
714 return currentUrl;
715 };
716 const lpAddQueryArgs = (endpoint, args) => {
717 const url = new URL(endpoint);
718 Object.keys(args).forEach(arg => {
719 url.searchParams.set(arg, args[arg]);
720 });
721 return url;
722 };
723
724 /**
725 * Listen element viewed.
726 *
727 * @param el
728 * @param callback
729 * @since 4.2.5.8
730 */
731 const listenElementViewed = (el, callback) => {
732 const observerSeeItem = new IntersectionObserver(function (entries) {
733 for (const entry of entries) {
734 if (entry.isIntersecting) {
735 callback(entry);
736 }
737 }
738 });
739 observerSeeItem.observe(el);
740 };
741
742 /**
743 * Listen element created.
744 *
745 * @param callback
746 * @since 4.2.5.8
747 */
748 const listenElementCreated = callback => {
749 const observerCreateItem = new MutationObserver(function (mutations) {
750 mutations.forEach(function (mutation) {
751 if (mutation.addedNodes) {
752 mutation.addedNodes.forEach(function (node) {
753 if (node.nodeType === 1) {
754 callback(node);
755 }
756 });
757 }
758 });
759 });
760 observerCreateItem.observe(document, {
761 childList: true,
762 subtree: true
763 });
764 // End.
765 };
766
767 /**
768 * Listen element created.
769 *
770 * @param selector
771 * @param callback
772 * @since 4.2.7.1
773 */
774 const lpOnElementReady = (selector, callback) => {
775 const element = document.querySelector(selector);
776 if (element) {
777 callback(element);
778 return;
779 }
780 const observer = new MutationObserver((mutations, obs) => {
781 const element = document.querySelector(selector);
782 if (element) {
783 obs.disconnect();
784 callback(element);
785 }
786 });
787 observer.observe(document.documentElement, {
788 childList: true,
789 subtree: true
790 });
791 };
792
793 // Parse JSON from string with content include LP_AJAX_START.
794 const lpAjaxParseJsonOld = data => {
795 if (typeof data !== 'string') {
796 return data;
797 }
798 const m = String.raw({
799 raw: data
800 }).match(/<-- LP_AJAX_START -->(.*)<-- LP_AJAX_END -->/s);
801 try {
802 if (m) {
803 data = JSON.parse(m[1].replace(/(?:\r\n|\r|\n)/g, ''));
804 } else {
805 data = JSON.parse(data);
806 }
807 } catch (e) {
808 data = {};
809 }
810 return data;
811 };
812
813 // status 0: hide, 1: show
814 const lpShowHideEl = (el, status = 0) => {
815 if (!el) {
816 return;
817 }
818 if (!status) {
819 el.classList.add(lpClassName.hidden);
820 } else {
821 el.classList.remove(lpClassName.hidden);
822 }
823 };
824
825 // status 0: hide, 1: show
826 const lpSetLoadingEl = (el, status) => {
827 if (!el) {
828 return;
829 }
830 if (!status) {
831 el.classList.remove(lpClassName.loading);
832 } else {
833 el.classList.add(lpClassName.loading);
834 }
835 };
836
837 // Toggle collapse section
838 const toggleCollapse = (e, target, elTriggerClassName = '', elsExclude = [], callback) => {
839 if (!elTriggerClassName) {
840 elTriggerClassName = lpClassName.elTriggerToggle;
841 }
842
843 // Exclude elements, which should not trigger the collapse toggle
844 if (elsExclude && elsExclude.length > 0) {
845 for (const elExclude of elsExclude) {
846 if (target.closest(elExclude)) {
847 return;
848 }
849 }
850 }
851 const elTrigger = target.closest(elTriggerClassName);
852 if (!elTrigger) {
853 return;
854 }
855
856 //console.log( 'elTrigger', elTrigger );
857
858 const elSectionToggle = elTrigger.closest(`${lpClassName.elSectionToggle}`);
859 if (!elSectionToggle) {
860 return;
861 }
862 elSectionToggle.classList.toggle(`${lpClassName.elCollapse}`);
863 if ('function' === typeof callback) {
864 callback(elSectionToggle);
865 }
866 };
867
868 // Get data of form
869 const getDataOfForm = form => {
870 const dataSend = {};
871 const formData = new FormData(form);
872 for (const pair of formData.entries()) {
873 const key = pair[0];
874 const value = formData.getAll(key);
875 if (!dataSend.hasOwnProperty(key)) {
876 // Convert value array to string.
877 dataSend[key] = value.join(',');
878 }
879 }
880 return dataSend;
881 };
882
883 // Get field keys of form
884 const getFieldKeysOfForm = form => {
885 const keys = [];
886 const elements = form.elements;
887 for (let i = 0; i < elements.length; i++) {
888 const name = elements[i].name;
889 if (name && !keys.includes(name)) {
890 keys.push(name);
891 }
892 }
893 return keys;
894 };
895
896 // Merge data handle with data form.
897 const mergeDataWithDatForm = (elForm, dataHandle) => {
898 const dataForm = getDataOfForm(elForm);
899 const keys = getFieldKeysOfForm(elForm);
900 keys.forEach(key => {
901 if (!dataForm.hasOwnProperty(key)) {
902 delete dataHandle[key];
903 } else if (dataForm[key][0] === '') {
904 delete dataForm[key];
905 delete dataHandle[key];
906 }
907 });
908 dataHandle = {
909 ...dataHandle,
910 ...dataForm
911 };
912 return dataHandle;
913 };
914
915 /**
916 * Event trigger
917 * For each list of event handlers, listen event on document.
918 *
919 * eventName: 'click', 'change', ...
920 * eventHandlers = [ { selector: '.lp-button', callBack: function(){}, class: object } ]
921 *
922 * @param eventName
923 * @param eventHandlers
924 */
925 const eventHandlers = (eventName, eventHandlers) => {
926 document.addEventListener(eventName, e => {
927 const target = e.target;
928 let args = {
929 e,
930 target
931 };
932 eventHandlers.forEach(eventHandler => {
933 args = {
934 ...args,
935 ...eventHandler
936 };
937
938 //console.log( args );
939
940 // Check condition before call back
941 if (eventHandler.conditionBeforeCallBack) {
942 if (eventHandler.conditionBeforeCallBack(args) !== true) {
943 return;
944 }
945 }
946
947 // Special check for keydown event with checkIsEventEnter = true
948 if (eventName === 'keydown' && eventHandler.checkIsEventEnter) {
949 if (e.key !== 'Enter') {
950 return;
951 }
952 }
953 if (target.closest(eventHandler.selector)) {
954 if (eventHandler.class) {
955 // Call method of class, function callBack will understand exactly {this} is class object.
956 eventHandler.class[eventHandler.callBack](args);
957 } else {
958 // For send args is objected, {this} is eventHandler object, not class object.
959 eventHandler.callBack(args);
960 }
961 }
962 });
963 });
964 };
965
966 /**
967 * Debounce - delays function execution until after `wait` ms of inactivity.
968 *
969 * Each call resets the timer. Only the last call in a burst executes.
970 *
971 * USE CASES:
972 * - Search inputs, form validation, window resize
973 * - Multiple elements need independent timers
974 * - When you need to call with different arguments
975 *
976 * EXAMPLES:
977 * const debouncedSearch = debounce( (query) => fetchResults(query), 300 );
978 * searchInput.addEventListener('input', (e) => debouncedSearch(e.target.value));
979 *
980 * const debouncedResize = debounce( recalculateLayout, 250 );
981 * window.addEventListener('resize', debouncedResize);
982 *
983 * ⚠️ Create ONCE outside event handlers, not inside.
984 *
985 * @param {Function} func - Function to debounce (can be anonymous)
986 * @param {number} wait - Milliseconds to wait (default: 500)
987 * @return {Function} Debounced wrapper function
988 * @since 4.3.7
989 * @version 1.0.0
990 */
991 const debounce = (func, wait = 500) => {
992 let timer;
993 return args => {
994 clearTimeout(timer);
995 timer = setTimeout(() => func(args), wait);
996 };
997 };
998
999 /**
1000 * Initialize lp-toggle-enable components.
1001 *
1002 * Finds all `.lp-toggle-enable` elements and wires up toggle behavior.
1003 * Reads initial state from `data-enabled` attribute ("true"/"false").
1004 * Calls `data-on-toggle` callback (if provided via options) on state change.
1005 *
1006 * HTML structure:
1007 * <label class="lp-toggle-enable" data-enabled="true">
1008 * <input type="checkbox" class="lp-toggle-enable__input" />
1009 * <span class="lp-toggle-enable__track"></span>
1010 * </label>
1011 *
1012 * @param {string} selector CSS selector for toggle elements (default: '.lp-toggle-enable')
1013 * @param {Function} onToggle Optional callback( el, isEnabled ) called on state change
1014 * @since 4.4.5
1015 * @version 1.0.0
1016 */
1017 window.lpToggleEnableInit = 0;
1018 const toggleEnable = (onToggle = null) => {
1019 if (window.lpToggleEnableInit) {
1020 return;
1021 }
1022 window.lpToggleEnableInit = 1;
1023 const selector = '.lp-toggle-enable';
1024 const updateUI = (toggle, isEnabled) => {
1025 toggle.classList.toggle('is-enabled', isEnabled);
1026 const input = toggle.querySelector('.lp-toggle-enable__input');
1027 if (input) {
1028 input.checked = isEnabled;
1029 input.value = isEnabled ? '1' : '0';
1030 }
1031 };
1032
1033 // Delegate click handling via eventHandlers.
1034 eventHandlers('click', [{
1035 selector,
1036 callBack: args => {
1037 const {
1038 e,
1039 target
1040 } = args;
1041 const toggle = target.closest(selector);
1042 if (!toggle || toggle.classList.contains('is-disabled')) {
1043 return;
1044 }
1045 e.preventDefault();
1046 const isEnabled = !toggle.classList.contains('is-enabled');
1047 updateUI(toggle, isEnabled);
1048 if ('function' === typeof onToggle) {
1049 onToggle(toggle, isEnabled);
1050 }
1051 }
1052 }]);
1053 };
1054
1055 /**
1056 * Initialize custom fullscreen view buttons.
1057 *
1058 * Delegates clicks on `.lp-btn-full-screen-view` buttons to
1059 * `lpToggleFullscreenView`. Reads the `data-target` attribute to find the
1060 * target element. Falls back to the button's parent element when
1061 * `data-target` is not provided.
1062 *
1063 * @since 4.4.5
1064 * @version 1.0.0
1065 */
1066 window.lpFullScreenViewInit = 0;
1067 const fullScreenView = () => {
1068 if (window.lpFullScreenViewInit) {
1069 return;
1070 }
1071 window.lpFullScreenViewInit = 1;
1072 let lastScrollY = 0;
1073 const lpToggleFullscreenView = (elTarget, elBtnFullScreen = null) => {
1074 const isFullscreen = elTarget.classList.contains(lpClassName.elFullScreen);
1075 if (isFullscreen) {
1076 elTarget.classList.remove(lpClassName.elFullScreen);
1077 document.documentElement.classList.remove('lp-full-screen-active');
1078 window.scrollTo(0, lastScrollY);
1079 } else {
1080 lastScrollY = window.scrollY;
1081 elTarget.classList.add(lpClassName.elFullScreen);
1082 document.documentElement.classList.add('lp-full-screen-active');
1083 }
1084 if (!isFullscreen) {
1085 if (!elTarget.querySelector(`.${lpClassName.elBtnFullScreenClose}`)) {
1086 const closeButton = document.createElement('button');
1087 closeButton.type = 'button';
1088 closeButton.className = lpClassName.elBtnFullScreenClose;
1089 closeButton.setAttribute('aria-label', 'Close');
1090 closeButton.innerHTML = lpData.i18n.closeButtonFullScreen || 'Close &times;';
1091 closeButton.addEventListener('click', e => {
1092 e.preventDefault();
1093 lpToggleFullscreenView(elTarget);
1094 });
1095 elTarget.appendChild(closeButton);
1096 }
1097 } else {
1098 const closeButton = elTarget.querySelector(`.${lpClassName.elBtnFullScreenClose}`);
1099 if (closeButton) {
1100 closeButton.remove();
1101 }
1102 }
1103 };
1104 eventHandlers('click', [{
1105 selector: lpClassName.elBtnFullScreen,
1106 callBack: args => {
1107 const {
1108 e,
1109 target
1110 } = args;
1111 const elBtnFullScreen = target.closest(lpClassName.elBtnFullScreen);
1112 if (!elBtnFullScreen) {
1113 console.log('No full screen button found');
1114 return;
1115 }
1116 e.preventDefault();
1117 let elTarget = null;
1118 const targetSelector = elBtnFullScreen.dataset.targetFullscreen;
1119 console.log(targetSelector);
1120 if (targetSelector) {
1121 elTarget = document.querySelector(targetSelector);
1122 }
1123 if (!elTarget) {
1124 console.log('No target element found');
1125 return;
1126 }
1127 lpToggleFullscreenView(elTarget, elBtnFullScreen);
1128 }
1129 }]);
1130 };
1131
1132 /***/ },
1133
1134 /***/ "react"
1135 /*!************************!*\
1136 !*** external "React" ***!
1137 \************************/
1138 (module) {
1139
1140 "use strict";
1141 module.exports = window["React"];
1142
1143 /***/ },
1144
1145 /***/ "@wordpress/element"
1146 /*!*********************************!*\
1147 !*** external ["wp","element"] ***!
1148 \*********************************/
1149 (module) {
1150
1151 "use strict";
1152 module.exports = window["wp"]["element"];
1153
1154 /***/ },
1155
1156 /***/ "@wordpress/url"
1157 /*!*****************************!*\
1158 !*** external ["wp","url"] ***!
1159 \*****************************/
1160 (module) {
1161
1162 "use strict";
1163 module.exports = window["wp"]["url"];
1164
1165 /***/ }
1166
1167 /******/ });
1168 /************************************************************************/
1169 /******/ // The module cache
1170 /******/ var __webpack_module_cache__ = {};
1171 /******/
1172 /******/ // The require function
1173 /******/ function __webpack_require__(moduleId) {
1174 /******/ // Check if module is in cache
1175 /******/ var cachedModule = __webpack_module_cache__[moduleId];
1176 /******/ if (cachedModule !== undefined) {
1177 /******/ return cachedModule.exports;
1178 /******/ }
1179 /******/ // Create a new module (and put it into the cache)
1180 /******/ var module = __webpack_module_cache__[moduleId] = {
1181 /******/ // no module.id needed
1182 /******/ // no module.loaded needed
1183 /******/ exports: {}
1184 /******/ };
1185 /******/
1186 /******/ // Execute the module function
1187 /******/ if (!(moduleId in __webpack_modules__)) {
1188 /******/ delete __webpack_module_cache__[moduleId];
1189 /******/ var e = new Error("Cannot find module '" + moduleId + "'");
1190 /******/ e.code = 'MODULE_NOT_FOUND';
1191 /******/ throw e;
1192 /******/ }
1193 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
1194 /******/
1195 /******/ // Return the exports of the module
1196 /******/ return module.exports;
1197 /******/ }
1198 /******/
1199 /************************************************************************/
1200 /******/ /* webpack/runtime/compat get default export */
1201 /******/ (() => {
1202 /******/ // getDefaultExport function for compatibility with non-harmony modules
1203 /******/ __webpack_require__.n = (module) => {
1204 /******/ var getter = module && module.__esModule ?
1205 /******/ () => (module['default']) :
1206 /******/ () => (module);
1207 /******/ __webpack_require__.d(getter, { a: getter });
1208 /******/ return getter;
1209 /******/ };
1210 /******/ })();
1211 /******/
1212 /******/ /* webpack/runtime/define property getters */
1213 /******/ (() => {
1214 /******/ // define getter functions for harmony exports
1215 /******/ __webpack_require__.d = (exports, definition) => {
1216 /******/ for(var key in definition) {
1217 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1218 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1219 /******/ }
1220 /******/ }
1221 /******/ };
1222 /******/ })();
1223 /******/
1224 /******/ /* webpack/runtime/hasOwnProperty shorthand */
1225 /******/ (() => {
1226 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
1227 /******/ })();
1228 /******/
1229 /******/ /* webpack/runtime/make namespace object */
1230 /******/ (() => {
1231 /******/ // define __esModule on exports
1232 /******/ __webpack_require__.r = (exports) => {
1233 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1234 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1235 /******/ }
1236 /******/ Object.defineProperty(exports, '__esModule', { value: true });
1237 /******/ };
1238 /******/ })();
1239 /******/
1240 /************************************************************************/
1241 var __webpack_exports__ = {};
1242 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
1243 (() => {
1244 "use strict";
1245 /*!**********************************************************!*\
1246 !*** ./assets/src/apps/js/frontend/single-curriculum.js ***!
1247 \**********************************************************/
1248 __webpack_require__.r(__webpack_exports__);
1249 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1250 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1251 /* harmony export */ });
1252 /* harmony import */ var _single_curriculum_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./single-curriculum/index */ "./assets/src/apps/js/frontend/single-curriculum/index.js");
1253 /* harmony import */ var _show_lp_overlay_complete_item__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show-lp-overlay-complete-item */ "./assets/src/apps/js/frontend/show-lp-overlay-complete-item.js");
1254 /* harmony import */ var _material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./material */ "./assets/src/apps/js/frontend/material.js");
1255
1256
1257 //import courseCurriculumSkeleton from './single-curriculum/skeleton';
1258
1259 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_single_curriculum_index__WEBPACK_IMPORTED_MODULE_0__["default"]);
1260
1261 // Comment code use for old curriculum
1262 /*export const init = () => {
1263 wp.element.render(
1264 <SingleCurriculums />,
1265 document.getElementById( 'learn-press-course-curriculum' )
1266 );
1267 };*/
1268
1269 document.addEventListener('DOMContentLoaded', function (event) {
1270 //LP.Hook.doAction( 'course-ready' );
1271 _show_lp_overlay_complete_item__WEBPACK_IMPORTED_MODULE_1__["default"].init();
1272 (0,_material__WEBPACK_IMPORTED_MODULE_2__["default"])();
1273 //courseCurriculumSkeleton();
1274 //init();
1275 });
1276
1277 // Comment code use for old curriculum
1278 /*const detectedElCurriculum = setInterval( function() {
1279 const elementCurriculum = document.querySelector( '.learnpress-course-curriculum' );
1280 if ( elementCurriculum ) {
1281 courseCurriculumSkeleton();
1282 clearInterval( detectedElCurriculum );
1283 }
1284 }, 1 );*/
1285 })();
1286
1287 /******/ })()
1288 ;
1289 //# sourceMappingURL=single-curriculum.js.map