/** * Public API bridge. * * Initializes the shared event emitter and internal helpers used by the * documented runtime API before the editor lifecycle modules run. * * Exposes: * SFE.PublicApi * SFE.PublicApiBridge */ (function() { 'use strict'; window.MWP = window.MWP || {}; window.MWP.SFE = window.MWP.SFE || {}; const SFE = window.MWP.SFE; const PublicApi = SFE.PublicApi || {}; const eventListeners = new Map(); const stagedBlockStates = new Map(); /** * Create a plain-data clone for event payloads and snapshots. * * @param {*} value Source value. * @returns {*} Cloned value when possible. */ function clonePlainData(value) { if (value === null || typeof value === 'undefined') { return value; } try { return JSON.parse(JSON.stringify(value)); } catch (error) { if (Array.isArray(value)) { return value.slice(); } if (typeof value === 'object') { return Object.assign({}, value); } return value; } } /** * Resolve the current editor snapshot builder when available. * * @param {Object|null} editorState Active editor state. * @returns {Object|null} Stable editor snapshot. */ function buildEditorSnapshot(editorState) { if (typeof PublicApi._buildEditorSnapshot === 'function') { return PublicApi._buildEditorSnapshot(editorState); } return null; } /** * Invoke one event handler safely. * * @param {Function} handler Registered listener. * @param {Object} payload Event payload. * @returns {void} */ function callHandler(handler, payload) { try { handler(payload); } catch (error) { console.error('FrontEdit: PublicApi event handler failed', error); } } /** * Emit one public runtime event. * * @param {string} eventName Event name. * @param {Object} payload Event payload. * @returns {void} */ function emitEvent(eventName, payload) { const listeners = eventListeners.get(eventName); if (!listeners || !listeners.size) { return; } const snapshot = clonePlainData(payload); listeners.forEach(handler => callHandler(handler, snapshot)); } /** * Register one runtime event listener. * * @param {string} eventName Event name. * @param {Function} handler Event handler. * @returns {Function} Unsubscribe callback. */ function on(eventName, handler) { const normalizedEventName = String(eventName || '').trim(); if (!normalizedEventName || typeof handler !== 'function') { return function noop() {}; } if (!eventListeners.has(normalizedEventName)) { eventListeners.set(normalizedEventName, new Set()); } eventListeners.get(normalizedEventName).add(handler); return function unsubscribe() { off(normalizedEventName, handler); }; } /** * Remove one runtime event listener. * * @param {string} eventName Event name. * @param {Function} handler Event handler. * @returns {void} */ function off(eventName, handler) { const normalizedEventName = String(eventName || '').trim(); if (!normalizedEventName || typeof handler !== 'function') { return; } const listeners = eventListeners.get(normalizedEventName); if (!listeners) { return; } listeners.delete(handler); if (!listeners.size) { eventListeners.delete(normalizedEventName); } } /** * Emit one editor lifecycle event using the current snapshot builder. * * @param {string} eventName Event name. * @param {Object|null} editorState Editor session state. * @param {Object} metadata Additional event metadata. * @returns {void} */ function emitEditorEvent(eventName, editorState, metadata = {}) { const editor = buildEditorSnapshot(editorState); if (!editor) { return; } emitEvent(eventName, Object.assign({}, metadata, { editor })); } /** * Emit one save lifecycle event using the current snapshot builder. * * @param {string} eventName Event name. * @param {Object|null} editorState Editor session state. * @param {Object} metadata Additional event metadata. * @returns {void} */ function emitSaveEvent(eventName, editorState, metadata = {}) { const editor = buildEditorSnapshot(editorState); if (!editor) { return; } emitEvent(eventName, Object.assign({}, metadata, { editor })); } PublicApi.on = on; PublicApi.off = off; SFE.PublicApi = PublicApi; SFE.PublicApiBridge = { clonePlainData, emitEvent, emitEditorEvent, emitSaveEvent, stagedBlockStates, }; })();
Warning: Cannot modify header information - headers already sent by (output started at D:\website\kimsanggon.vn\wp-content\themes\astra\inc\addons\breadcrumbs\class-astra-breadcrumb-trail.php:1) in D:\website\kimsanggon.vn\wp-content\plugins\surerank\inc\frontend\feed.php on line 83

Warning: Cannot modify header information - headers already sent by (output started at D:\website\kimsanggon.vn\wp-content\themes\astra\inc\addons\breadcrumbs\class-astra-breadcrumb-trail.php:1) in D:\website\kimsanggon.vn\wp-includes\feed-rss2.php on line 8
Kim Sang Gon – Photographer https://kimsanggon.vn Every photo tells a story Mon, 24 Aug 2026 12:08:03 +0000 en-US hourly 1 https://kimsanggon.vn/wp-content/uploads/2025/09/cropped-Capture_d_ecran_2025-09-12_a_13.19.05-removebg-preview-1-32x32.png Kim Sang Gon – Photographer https://kimsanggon.vn 32 32 Hello world! https://kimsanggon.vn/hello-world/ https://kimsanggon.vn/hello-world/#comments Mon, 29 Sep 2025 06:21:31 +0000 https://kimsanggon.vn/?p=1 Read more at Kim Sang Gon - Photographer

]]>
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/hello-world/feed/ 1
Welcome to Flatsome https://kimsanggon.vn/welcome-to-flatsome/ https://kimsanggon.vn/welcome-to-flatsome/#respond Thu, 19 Nov 2015 10:26:13 +0000 http://flatsome.dev/?p=1 Read more at Kim Sang Gon - Photographer

]]>
Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/welcome-to-flatsome/feed/ 0
Just another post with A Gallery https://kimsanggon.vn/velkommen-til-bloggen-min/ https://kimsanggon.vn/velkommen-til-bloggen-min/#respond Tue, 13 Oct 2015 21:13:41 +0000 http://localhost:8888/flatsome-next/?p=5 Read more at Kim Sang Gon - Photographer

]]>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed vulputate massa. Fusce ante magna, iaculis ut purus ut, facilisis ultrices nibh. Quisque commodo nunc eget tortor dapibus, et tristique magna convallis. Phasellus egestas nunc eu venenatis vehicula. Phasellus et magna nulla. Proin ante nunc, mollis a lectus ac, volutpat placerat ante. Vestibulum sit amet magna sit amet nunc faucibus mollis. Aliquam vel lacinia purus, id tristique ipsum. Quisque vitae nibh ut libero vulputate ornare quis in risus. Nam sodales justo orci, a bibendum risus tincidunt id. Etiam hendrerit, metus in volutpat tempus, neque libero viverra lorem, ac tristique orci augue eu metus. Aenean elementum nisi vitae justo adipiscing gravida sit amet et risus. Suspendisse dapibus elementum quam, vel semper mi tempus ac.

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/velkommen-til-bloggen-min/feed/ 0
A Simple Blog Post https://kimsanggon.vn/a-simple-blog-post/ https://kimsanggon.vn/a-simple-blog-post/#respond Tue, 13 Oct 2015 19:28:03 +0000 http://localhost:8888/flatsome-next/?p=1 Read more at Kim Sang Gon - Photographer

]]>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus

Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/a-simple-blog-post/feed/ 0
A Video Blog Post https://kimsanggon.vn/a-video-blog-post/ https://kimsanggon.vn/a-video-blog-post/#respond Wed, 01 Jan 2014 16:47:44 +0000 http://localhost:8888/test/?p=483 Read more at Kim Sang Gon - Photographer

]]>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed vulputate massa. Fusce ante magna, iaculis ut purus ut, facilisis ultrices nibh. Quisque commodo nunc eget tortor dapibus, et tristique magna convallis. Phasellus egestas nunc eu venenatis vehicula. Phasellus et magna nulla. Proin ante nunc, mollis a lectus ac, volutpat placerat ante. Vestibulum sit amet magna sit amet nunc faucibus mollis. Aliquam vel lacinia purus, id tristique ipsum. Quisque vitae nibh ut libero vulputate ornare quis in risus. Nam sodales justo orci, a bibendum risus tincidunt id. Etiam hendrerit, metus in volutpat tempus.

Neque libero viverra lorem, ac tristique orci augue eu metus. Aenean elementum nisi vitae justo adipiscing gravida sit amet et risus. Suspendisse dapibus elementum quam, vel semper mi tempus ac.

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/a-video-blog-post/feed/ 0
Just a cool blog post with Images https://kimsanggon.vn/just-a-cool-blog-post-with-images/ https://kimsanggon.vn/just-a-cool-blog-post-with-images/#respond Mon, 30 Dec 2013 16:50:40 +0000 http://localhost:8888/test/?p=485 Read more at Kim Sang Gon - Photographer

]]>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed vulputate massa. Fusce ante magna, iaculis ut purus ut, facilisis ultrices nibh. Quisque commodo nunc eget tortor dapibus, et tristique magna convallis. Phasellus egestas nunc eu venenatis vehicula. Phasellus et magna nulla. Proin ante nunc, mollis a lectus ac, volutpat placerat ante. Vestibulum sit amet magna sit amet nunc faucibus mollis. Aliquam vel lacinia purus, id tristique ipsum. Quisque vitae nibh ut libero vulputate ornare quis in risus. Nam sodales justo orci, a bibendum risus tincidunt id. Etiam hendrerit, metus in volutpat tempus, neque libero viverra lorem, ac tristique orci augue eu metus. Aenean elementum nisi vitae justo adipiscing gravida sit amet et risus. Suspendisse dapibus elementum quam, vel semper mi tempus ac.

Nam at nisi risus. Proin pretium, dolor vel venenatis suscipit, dui nunc tincidunt lectus, ac placerat felis dui in justo. Aliquam orci velit, facilisis in facilisis non, scelerisque in massa. Integer scelerisque odio nec eros sodales laoreet. Sed sed odio tellus. In tristique felis ac facilisis tempor. Nunc non enim in dolor congue pulvinar sed sed nisi. Mauris viverra convallis feugiat. Nam at mauris laoreet, dictum leo at, tristique mi. Aenean pellentesque justo vel diam elementum iaculis. Nam lobortis cursus vestibulum. Nulla feugiat mauris felis, auctor pretium dui euismod in.

Vestibulum et enim vitae lectus malesuada aliquam vitae non mi. Suspendisse tellus eros, ultricies nec lorem feugiat, pharetra auctor dui. Suspendisse placerat neque leo, nec commodo eros ultrices vel. Fusce elit libero, aliquam quis libero non, consectetur accumsan est. Proin tempus mauris id cursus posuere. Sed et rutrum felis, vel aliquet ante. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque neque tellus, condimentum non eros non, consectetur auctor lacus. Curabitur malesuada odio eget elit egestas porttitor.

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/just-a-cool-blog-post-with-images/feed/ 0
Another post with A Gallery https://kimsanggon.vn/just-a-cool-blog-post-with-a-gallery-2/ https://kimsanggon.vn/just-a-cool-blog-post-with-a-gallery-2/#respond Mon, 16 Dec 2013 20:32:19 +0000 http://localhost:8888/test/?p=2009 Read more at Kim Sang Gon - Photographer

]]>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed vulputate massa. Fusce ante magna, iaculis ut purus ut, facilisis ultrices nibh. Quisque commodo nunc eget tortor dapibus, et tristique magna convallis. Phasellus egestas nunc eu venenatis vehicula. Phasellus et magna nulla. Proin ante nunc, mollis a lectus ac, volutpat placerat ante. Vestibulum sit amet magna sit amet nunc faucibus mollis. Aliquam vel lacinia purus, id tristique ipsum. Quisque vitae nibh ut libero vulputate ornare quis in risus. Nam sodales justo orci, a bibendum risus tincidunt id. Etiam hendrerit, metus in volutpat tempus, neque libero viverra lorem, ac tristique orci augue eu metus. Aenean elementum nisi vitae justo adipiscing gravida sit amet et risus. Suspendisse dapibus elementum quam, vel semper mi tempus ac.

Nam at nisi risus. Proin pretium, dolor vel venenatis suscipit, dui nunc tincidunt lectus, ac placerat felis dui in justo. Aliquam orci velit, facilisis in facilisis non, scelerisque in massa. Integer scelerisque odio nec eros sodales laoreet. Sed sed odio tellus. In tristique felis ac facilisis tempor. Nunc non enim in dolor congue pulvinar sed sed nisi. Mauris viverra convallis feugiat. Nam at mauris laoreet, dictum leo at, tristique mi. Aenean pellentesque justo vel diam elementum iaculis. Nam lobortis cursus vestibulum. Nulla feugiat mauris felis, auctor pretium dui euismod in.

Vestibulum et enim vitae lectus malesuada aliquam vitae non mi. Suspendisse tellus eros, ultricies nec lorem feugiat, pharetra auctor dui. Suspendisse placerat neque leo, nec commodo eros ultrices vel. Fusce elit libero, aliquam quis libero non, consectetur accumsan est. Proin tempus mauris id cursus posuere. Sed et rutrum felis, vel aliquet ante. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque neque tellus, condimentum non eros non, consectetur auctor lacus. Curabitur malesuada odio eget elit egestas porttitor.

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/just-a-cool-blog-post-with-a-gallery-2/feed/ 0
New Client Landed https://kimsanggon.vn/new-client-landed/ https://kimsanggon.vn/new-client-landed/#respond Thu, 29 Aug 2013 14:15:41 +0000 http://flatsome.dev/?p=8984 Read more at Kim Sang Gon - Photographer

]]>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/new-client-landed/feed/ 0
An Amazing responsive and Retina ready theme. https://kimsanggon.vn/welcome-to-flatsome-an-amazing-responsive-and-retina-ready-theme/ https://kimsanggon.vn/welcome-to-flatsome-an-amazing-responsive-and-retina-ready-theme/#respond Sun, 11 Aug 2013 16:35:51 +0000 http://localhost:8888/test/?p=474 Read more at Kim Sang Gon - Photographer

]]>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sed eleifend risus, sit amet porttitor massa. Ut vulputate felis at mauris ultrices sodales. Phasellus in leo ornare, vulputate purus eget, iaculis tellus. Donec sed laoreet orci. Praesent faucibus feugiat velit a iaculis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi turpis mauris, consequat laoreet metus non, dictum fringilla sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla ornare malesuada ultricies. Nulla luctus velit diam, at lacinia odio aliquam nec. In adipiscing, arcu elementum dictum eleifend, mi velit sodales nisi, a semper tellus magna sed justo. Ut mauris velit, tristique id nulla eget, euismod consequat lacus. Vestibulum varius dapibus lacus et vestibulum.

Ut eu imperdiet arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras interdum porttitor quam at tempus. Sed quis rutrum lorem.

Ut eu imperdiet arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras interdum porttitor quam at tempus. Sed quis rutrum lorem. Mauris vitae dui ut neque pulvinar mattis. Mauris sed tincidunt nisi. Ut porta quis lorem at consectetur. Mauris elementum vulputate metus, ut cursus felis dictum non. Sed in nulla metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus at nunc eget ligula tristique scelerisque in et urna.

Pellentesque imperdiet, nunc id scelerisque scelerisque, nisi arcu hendrerit leo, vel volutpat arcu mi in risus. Vestibulum iaculis molestie venenatis. Donec faucibus elit quis enim porta, id fringilla lectus feugiat. Sed et diam fermentum, elementum elit et, placerat nisi. Sed vehicula nibh sed tellus elementum condimentum. Fusce laoreet lorem ipsum, vitae aliquam arcu gravida gravida. Nunc eget tristique sem, eu ornare ligula.

Pellentesque facilisis lobortis volutpat. Etiam non suscipit velit, vitae ornare eros. In hac habitasse platea dictumst. Phasellus eu auctor metus, et porta justo. Vivamus suscipit fermentum ante, eu dignissim orci. Proin faucibus quis orci a dictum. Nulla ac nibh neque. Curabitur eu justo massa.

Read more at Kim Sang Gon - Photographer

]]>
https://kimsanggon.vn/welcome-to-flatsome-an-amazing-responsive-and-retina-ready-theme/feed/ 0