From a23ff8a29e9f02232544b81e778f375b1a3ee33b Mon Sep 17 00:00:00 2001 From: rezwanahmodsami Date: Sun, 6 Aug 2023 17:59:43 +0600 Subject: [PATCH] Body not rendering if no any headers or footers registered --- projects/expressjs/public/app.js | 64 ++++----- projects/golang/.gitignore | 2 + projects/golang/public/dist/Controllers.d.ts | 3 - projects/golang/public/dist/DomRenderer.d.ts | 19 --- projects/golang/public/dist/Global.d.ts | 65 ---------- projects/golang/public/dist/Navigators.d.ts | 4 - projects/golang/public/dist/RmLoaders.d.ts | 3 - projects/golang/public/dist/RmRegister.d.ts | 6 - projects/golang/public/dist/RmRender.d.ts | 8 -- .../golang/public/dist/RmStateManager.d.ts | 13 -- .../golang/public/dist/RmTabsHandler.d.ts | 6 - projects/golang/public/dist/RmValidator.d.ts | 13 -- .../golang/public/dist/RoutesInitializer.d.ts | 3 - projects/golang/public/dist/index.d.ts | 6 - projects/golang/public/dist/routemamba.min.js | 25 ---- projects/golang/public/dist/types.d.ts | 121 ------------------ .../dist/validators/checkPathParam.d.ts | 5 - .../public/dist/validators/isEmptyObject.d.ts | 2 - .../dist/validators/isPathParamPattern.d.ts | 2 - .../dist/validators/isValidServerHost.d.ts | 3 - .../public/dist/validators/isValidUrl.d.ts | 2 - .../validators/parseObjectToQueryString.d.ts | 2 - .../dist/validators/parseQueryString.d.ts | 2 - src/Navigators.ts | 8 ++ src/RmRender.ts | 8 ++ 25 files changed, 50 insertions(+), 345 deletions(-) delete mode 100644 projects/golang/public/dist/Controllers.d.ts delete mode 100644 projects/golang/public/dist/DomRenderer.d.ts delete mode 100644 projects/golang/public/dist/Global.d.ts delete mode 100644 projects/golang/public/dist/Navigators.d.ts delete mode 100644 projects/golang/public/dist/RmLoaders.d.ts delete mode 100644 projects/golang/public/dist/RmRegister.d.ts delete mode 100644 projects/golang/public/dist/RmRender.d.ts delete mode 100644 projects/golang/public/dist/RmStateManager.d.ts delete mode 100644 projects/golang/public/dist/RmTabsHandler.d.ts delete mode 100644 projects/golang/public/dist/RmValidator.d.ts delete mode 100644 projects/golang/public/dist/RoutesInitializer.d.ts delete mode 100644 projects/golang/public/dist/index.d.ts delete mode 100644 projects/golang/public/dist/routemamba.min.js delete mode 100644 projects/golang/public/dist/types.d.ts delete mode 100644 projects/golang/public/dist/validators/checkPathParam.d.ts delete mode 100644 projects/golang/public/dist/validators/isEmptyObject.d.ts delete mode 100644 projects/golang/public/dist/validators/isPathParamPattern.d.ts delete mode 100644 projects/golang/public/dist/validators/isValidServerHost.d.ts delete mode 100644 projects/golang/public/dist/validators/isValidUrl.d.ts delete mode 100644 projects/golang/public/dist/validators/parseObjectToQueryString.d.ts delete mode 100644 projects/golang/public/dist/validators/parseQueryString.d.ts diff --git a/projects/expressjs/public/app.js b/projects/expressjs/public/app.js index 51a3984..a2d8419 100644 --- a/projects/expressjs/public/app.js +++ b/projects/expressjs/public/app.js @@ -75,39 +75,39 @@ routemamba.register_http_routes([ }, ]); -routemamba.register_routes_headers([ - { - content_url: '/components/header', - preloader: 'loading...', - error_content: 'error', - http_url: [ - '/', - '/about', - '/privacy', - '/tabs-example', - '/post/:id', - '/news/:date/:title' - // ,'/page-not-exist' - ], - }, -]); +// routemamba.register_routes_headers([ +// { +// content_url: '/components/header', +// preloader: 'loading...', +// error_content: 'error', +// http_url: [ +// '/', +// '/about', +// '/privacy', +// '/tabs-example', +// '/post/:id', +// '/news/:date/:title' +// // ,'/page-not-exist' +// ], +// }, +// ]); -routemamba.register_routes_footers([ - { - content_url: '/components/footer', - preloader: 'loading...', - error_content: 'error', - http_url: [ - '/', - '/about', - '/privacy', - '/tabs-example', - '/post/:id', - '/news/:date/:title' - // ,'/page-not-exist' - ], - }, -]); +// routemamba.register_routes_footers([ +// { +// content_url: '/components/footer', +// preloader: 'loading...', +// error_content: 'error', +// http_url: [ +// '/', +// '/about', +// '/privacy', +// '/tabs-example', +// '/post/:id', +// '/news/:date/:title' +// // ,'/page-not-exist' +// ], +// }, +// ]); routemamba.render(); diff --git a/projects/golang/.gitignore b/projects/golang/.gitignore index 3b735ec..be6aea1 100644 --- a/projects/golang/.gitignore +++ b/projects/golang/.gitignore @@ -19,3 +19,5 @@ # Go workspace file go.work +# ignore all of public folder +public/dist \ No newline at end of file diff --git a/projects/golang/public/dist/Controllers.d.ts b/projects/golang/public/dist/Controllers.d.ts deleted file mode 100644 index 535f01b..0000000 --- a/projects/golang/public/dist/Controllers.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { type RouteComponentType } from './types'; -export declare const PageRenderController: () => void; -export declare const store_content: (component_type: RouteComponentType, content: string) => void; diff --git a/projects/golang/public/dist/DomRenderer.d.ts b/projects/golang/public/dist/DomRenderer.d.ts deleted file mode 100644 index b466101..0000000 --- a/projects/golang/public/dist/DomRenderer.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { type RouteContainer, type RouteDomContent } from './types'; -export declare const loadScript: (container: RouteContainer) => void; -/** - * This @function is for render dom content direct in body - */ -export declare const __render_DOM_root: (content: RouteDomContent) => boolean; -/** - * @function is for render DOM in specific container >> - */ -export declare const __render_DOM: (container: RouteContainer, content: RouteDomContent) => boolean; -export declare const __render_state_value: (container: RouteContainer, content: RouteDomContent) => boolean; -/** - * @function for render dom head tag - */ -export declare const __render_DOM_head: (content: RouteDomContent) => boolean; -export declare const generate_body_root_element: () => void; -export declare const generate_header_root_element: () => void; -export declare const generate_footer_root_element: () => void; -export declare const generate_required_all_root_elements: () => void; diff --git a/projects/golang/public/dist/Global.d.ts b/projects/golang/public/dist/Global.d.ts deleted file mode 100644 index 56214ee..0000000 --- a/projects/golang/public/dist/Global.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { type RegisterdRoutesFooters, type RegisterdRoutesHeaders, type RegisterdRoutesPages, type RouteErrorHead, type RouteMetaUrl, type RouteServerHost } from './types'; -/** - * there all golbal array, object and variable initialized - */ -export declare enum RouteComponentTypes { - HEADER = 0, - META = 1, - BODY = 2, - FOOTER = 3, - TAB = 4 -} -export declare namespace HtmlSelector { - var Root: string; - var Header: string; - var Footer: string; - var Body: string; -} -export declare namespace RoutesStorage { - var RoutesPages: RegisterdRoutesPages; - var RoutesHeaders: RegisterdRoutesHeaders; - var RoutesFooters: RegisterdRoutesFooters; - var server_host: RouteServerHost; - var meta_content_url: RouteMetaUrl; - namespace RouteContentsState { - namespace renderStatus { - var header: boolean; - var body: boolean; - var footer: boolean; - } - var ShouldHeaderload: boolean; - var ShouldFooterload: boolean; - var HeaderContent: string | null; - var FooterContent: string | null; - var BodyContent: string | null; - var MetaContent: string | null; - var HttpUrl: string | null; - var navigationCallback: Function | null; - } -} -export declare namespace RenderConfig { - var await_rendering: boolean; -} -/** - * this is persist storage to store readonly value. - */ -export declare namespace PersistStorage { - interface persistNetworkConfig { - readonly localhost: string; - readonly localIp: string; - readonly localFilePath: string; - readonly tauriHost: string; - readonly http_www: string; - readonly https_www: string; - } - interface persistantDomContent { - readonly ErrorHeadContent: RouteErrorHead; - readonly DefineMetaUrlError: string; - readonly NavigateRoutePathUndefined: string; - readonly __404_urlErrorContent: string; - readonly __404_ServerHostErrorContent: string; - } - export var NetworkConfig: persistNetworkConfig; - export var DomContent: persistantDomContent; - export {}; -} diff --git a/projects/golang/public/dist/Navigators.d.ts b/projects/golang/public/dist/Navigators.d.ts deleted file mode 100644 index 7e346cc..0000000 --- a/projects/golang/public/dist/Navigators.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { type NavigateRoute, type NavigateData, type NavigateOptions } from './types'; -export declare const navigate: (route_to: NavigateRoute, data?: NavigateData, options?: NavigateOptions, callback?: Function | null) => void; -export declare const pop_route: () => void; -export declare const push_route: () => void; diff --git a/projects/golang/public/dist/RmLoaders.d.ts b/projects/golang/public/dist/RmLoaders.d.ts deleted file mode 100644 index 7a2468c..0000000 --- a/projects/golang/public/dist/RmLoaders.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { type RouteHttpUrl } from './types'; -export declare const MetaLoader: (httpUrl: RouteHttpUrl, RegisteredUrlPattern: RouteHttpUrl | undefined) => void; -export declare const historyRoutesLoader: (status: boolean) => void; diff --git a/projects/golang/public/dist/RmRegister.d.ts b/projects/golang/public/dist/RmRegister.d.ts deleted file mode 100644 index 744f0b5..0000000 --- a/projects/golang/public/dist/RmRegister.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { type RegisterdRoutesPages, type RegisterdRoutesHeaders, type RegisterdRoutesFooters, type RouteServerHost, type RouteMetaUrl } from './types'; -export declare const register_http_routes: (Routes: RegisterdRoutesPages) => void; -export declare const register_routes_headers: (Headers: RegisterdRoutesHeaders) => void; -export declare const register_routes_footers: (Footers: RegisterdRoutesFooters) => void; -export declare const registerServerHost: (ServerHost: RouteServerHost) => void; -export declare const registerMetaUrl: (MetaUrl: RouteMetaUrl) => void; diff --git a/projects/golang/public/dist/RmRender.d.ts b/projects/golang/public/dist/RmRender.d.ts deleted file mode 100644 index 6a46b6b..0000000 --- a/projects/golang/public/dist/RmRender.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @functions - */ -export declare const renderHeader: () => void; -export declare const renderBody: () => void; -export declare const renderFooter: () => void; -export declare const render: () => void; -export declare const await_rendering: (status: boolean) => void; diff --git a/projects/golang/public/dist/RmStateManager.d.ts b/projects/golang/public/dist/RmStateManager.d.ts deleted file mode 100644 index 573be2a..0000000 --- a/projects/golang/public/dist/RmStateManager.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @namespace localState is to handles all local states. - */ -export declare namespace localState { - /** - * @useState is to handle locally reactive and non-reactive state. - * useState(@param defaultValue, @param selector); - * @param selector should be className | idName | null. - * @param defaultValue can be anything. - * when @param selector is not null, state is reactive at that time, it's mean on state change, value will update automatic. - */ - const useState: (defaultValue?: any, selectors?: string | string[] | null) => any[]; -} diff --git a/projects/golang/public/dist/RmTabsHandler.d.ts b/projects/golang/public/dist/RmTabsHandler.d.ts deleted file mode 100644 index 5822d2c..0000000 --- a/projects/golang/public/dist/RmTabsHandler.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { type TabRegister } from './types'; -/** - * - * @param RegisterdTabs >> @type TabRegister - */ -export declare const initTabs: (RegisterdTabs: TabRegister) => void; diff --git a/projects/golang/public/dist/RmValidator.d.ts b/projects/golang/public/dist/RmValidator.d.ts deleted file mode 100644 index 2066456..0000000 --- a/projects/golang/public/dist/RmValidator.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** there all validators @functions exporting for validate string, objects, arrays etc from one place */ -import checkPathParam from './validators/checkPathParam'; -import isPathParamPattern from './validators/isPathParamPattern'; -declare const RmValidator: { - isValidUrl: (str: string) => boolean; - isEmptyObject: (obj: object) => boolean; - parseQueryString: (query: string) => object; - parseObjectToQueryString: (obj: object) => string; - isValidServerHost: (server_host: string) => boolean; - checkPathParam: typeof checkPathParam; - isPathParamPattern: typeof isPathParamPattern; -}; -export default RmValidator; diff --git a/projects/golang/public/dist/RoutesInitializer.d.ts b/projects/golang/public/dist/RoutesInitializer.d.ts deleted file mode 100644 index be9be28..0000000 --- a/projects/golang/public/dist/RoutesInitializer.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { type Route, type RouteEngineInput } from './types'; -export declare const RouteEngineInit: (Input: RouteEngineInput) => void; -export declare const route: (Route: Route) => void; diff --git a/projects/golang/public/dist/index.d.ts b/projects/golang/public/dist/index.d.ts deleted file mode 100644 index 71edbbc..0000000 --- a/projects/golang/public/dist/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { registerMetaUrl, registerServerHost, register_http_routes, register_routes_footers, register_routes_headers } from './RmRegister'; -import { navigate, pop_route, push_route } from './Navigators'; -import { initTabs } from './RmTabsHandler'; -import { render, await_rendering } from './RmRender'; -import { localState } from './RmStateManager'; -export { registerMetaUrl, registerServerHost, register_http_routes, register_routes_footers, register_routes_headers, navigate, render, await_rendering, pop_route, push_route, initTabs, localState, }; diff --git a/projects/golang/public/dist/routemamba.min.js b/projects/golang/public/dist/routemamba.min.js deleted file mode 100644 index 82a4809..0000000 --- a/projects/golang/public/dist/routemamba.min.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * MIT License - * - * Copyright (c) 2022 Rezwan Ahmod Sami - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).routemamba={})}(this,(function(t){"use strict";var e,n,o,r,a;!function(t){t[t.HEADER=0]="HEADER",t[t.META=1]="META",t[t.BODY=2]="BODY",t[t.FOOTER=3]="FOOTER",t[t.TAB=4]="TAB"}(e||(e={})),function(t){t.Root="root",t.Header="header-root",t.Footer="footer-root",t.Body="body-root"}(n||(n={})),function(t){var e,n;t.RoutesPages=[],t.RoutesHeaders=[],t.RoutesFooters=[],t.server_host="",t.meta_content_url="",e=t.RouteContentsState||(t.RouteContentsState={}),(n=e.renderStatus||(e.renderStatus={})).header=!1,n.body=!1,n.footer=!1,e.ShouldHeaderload=!0,e.ShouldFooterload=!0,e.HeaderContent=null,e.FooterContent=null,e.BodyContent=null,e.MetaContent=null,e.HttpUrl=null}(o||(o={})),function(t){t.await_rendering=!0}(r||(r={})),function(t){t.NetworkConfig={localhost:"http://localhost",localIp:"http://127.0.0.1",localFilePath:"file://",tauriHost:"tauri://localhost",http_www:"http://www.",https_www:"https://www."},t.DomContent={ErrorHeadContent:'ERROR',DefineMetaUrlError:"Define Meta Content Url",NavigateRoutePathUndefined:"Naviagte method called but route path not defined.",__404_urlErrorContent:'\n \n

404 HTTP URL

Routemamba rendering error !!

Did you forget to declare http_url on:

routemamba.route({

   http_url: undefined   <<-- error !(undefined)

});

Set http_url to solve this problem


Developed by: Rezwan Ahmod Sami

',__404_ServerHostErrorContent:'

404 SERVER HOST

Routemamba rendering error !!

Did you forget to declare server_host on:

routemamba.registerServerHost( undefined ); <<-- error!!!

Set registerServerHost() to solve this problem


Developed by: Rezwan Ahmod Sami

'}}(a||(a={}));var l=function(t){var e;if(function(t){return"SCRIPT"==t.tagName}(t))null===(e=t.parentNode)||void 0===e||e.replaceChild(function(t){var e=document.createElement("script");e.text=t.innerHTML;for(var n,o=-1,r=t.attributes;++o2)return!1}return!0}return!1}},b=function(t,r){switch(t){case e.HEADER:o.RouteContentsState.HeaderContent=r;break;case e.BODY:o.RouteContentsState.BodyContent=r;break;case e.FOOTER:o.RouteContentsState.FooterContent=r}!function(){var t=o.RouteContentsState.HeaderContent,e=o.RouteContentsState.FooterContent,r=o.RouteContentsState.BodyContent;o.RouteContentsState.ShouldHeaderload&&o.RouteContentsState.ShouldFooterload&&null!=t&&null!=e&&null!=r?(o.RouteContentsState.ShouldHeaderload&&!o.RouteContentsState.renderStatus.header&&(d(n.Header,t),o.RouteContentsState.renderStatus.header=!0),o.RouteContentsState.renderStatus.body||(d(n.Body,r),o.RouteContentsState.renderStatus.body=!0),o.RouteContentsState.ShouldFooterload&&!o.RouteContentsState.renderStatus.footer&&(d(n.Footer,e),o.RouteContentsState.renderStatus.footer=!0),null!=o.RouteContentsState.HeaderContent&&null!=o.RouteContentsState.BodyContent&&null!=o.RouteContentsState.FooterContent&&(o.RouteContentsState.HeaderContent=null,o.RouteContentsState.BodyContent=null,o.RouteContentsState.FooterContent=null),null!=o.RouteContentsState.navigationCallback&&null!=o.RouteContentsState.navigationCallback&&o.RouteContentsState.navigationCallback()):!o.RouteContentsState.ShouldHeaderload&&o.RouteContentsState.ShouldFooterload&&null==t&&null!=e&&null!=r?(o.RouteContentsState.renderStatus.body||(d(n.Body,r),o.RouteContentsState.renderStatus.body=!0),o.RouteContentsState.renderStatus.footer||(d(n.Footer,e),o.RouteContentsState.renderStatus.footer=!0),null!=o.RouteContentsState.navigationCallback&&null!=o.RouteContentsState.navigationCallback&&o.RouteContentsState.navigationCallback(),null!=o.RouteContentsState.FooterContent&&null!=o.RouteContentsState.BodyContent&&(o.RouteContentsState.FooterContent=null,o.RouteContentsState.BodyContent=null)):o.RouteContentsState.ShouldHeaderload&&!o.RouteContentsState.ShouldFooterload&&null!=t&&null==e&&null!=r?(o.RouteContentsState.renderStatus.header||(d(n.Header,t),o.RouteContentsState.renderStatus.header=!0),o.RouteContentsState.renderStatus.body||(d(n.Body,r),o.RouteContentsState.renderStatus.body=!0),null!=o.RouteContentsState.navigationCallback&&null!=o.RouteContentsState.navigationCallback&&o.RouteContentsState.navigationCallback(),null!=o.RouteContentsState.HeaderContent&&null!=o.RouteContentsState.BodyContent&&(o.RouteContentsState.HeaderContent=null,o.RouteContentsState.BodyContent=null)):o.RouteContentsState.ShouldHeaderload||o.RouteContentsState.ShouldFooterload||null!=t||null!=e||null==r||(o.RouteContentsState.renderStatus.body||(d(n.Body,r),o.RouteContentsState.renderStatus.body=!0),null!=o.RouteContentsState.navigationCallback&&null!=o.RouteContentsState.navigationCallback&&o.RouteContentsState.navigationCallback(),null!=o.RouteContentsState.BodyContent&&(o.RouteContentsState.BodyContent=null));var a=o.RouteContentsState.ShouldHeaderload&&o.RouteContentsState.renderStatus.header&&o.RouteContentsState.renderStatus.body&&o.RouteContentsState.ShouldFooterload&&o.RouteContentsState.renderStatus.footer,l=!o.RouteContentsState.ShouldHeaderload&&!o.RouteContentsState.renderStatus.header&&!o.RouteContentsState.ShouldFooterload&&!o.RouteContentsState.renderStatus.footer&&o.RouteContentsState.renderStatus.body,u=o.RouteContentsState.ShouldHeaderload&&o.RouteContentsState.renderStatus.header&&!o.RouteContentsState.ShouldFooterload&&!o.RouteContentsState.renderStatus.footer&&o.RouteContentsState.renderStatus.body,s=!o.RouteContentsState.ShouldHeaderload&&!o.RouteContentsState.renderStatus.header&&o.RouteContentsState.ShouldFooterload&&o.RouteContentsState.renderStatus.footer&&o.RouteContentsState.renderStatus.body;(a||l||u||s)&&(o.RouteContentsState.renderStatus.header=!1,o.RouteContentsState.renderStatus.body=!1,o.RouteContentsState.renderStatus.footer=!1)}()},S=function(t){var l=window.location.href;switch(t.component_type){case e.HEADER:t.container=n.Header;break;case e.BODY:t.container=n.Body;break;case e.FOOTER:t.container=n.Footer}if(""!=t.server_host)if(g.isValidServerHost(t.server_host))if(t.server_host.includes(a.NetworkConfig.https_www)||t.server_host.includes(a.NetworkConfig.http_www)){for(var u=l.split("/"),s="",c=0;c<3;c++)s+=1==c?"//":u[c];s+="/",t.http_url==t.server_host&&(t.http_url=s),t.server_host=s}else if(t.server_host.includes(a.NetworkConfig.localIp)||t.server_host.includes(a.NetworkConfig.localhost))l.includes(a.NetworkConfig.localIp)?t.server_host.includes(a.NetworkConfig.localhost)&&(t.server_host=t.server_host.replace(a.NetworkConfig.localhost,a.NetworkConfig.localIp)):l.includes(a.NetworkConfig.localhost)&&t.server_host.includes(a.NetworkConfig.localIp)&&(t.server_host=t.server_host.replace(a.NetworkConfig.localIp,a.NetworkConfig.localhost));else{for(var i=t.server_host.split("/"),h="",p=0;p1&&"/"==a[0][a[0].length-1]&&(a[0]=a[0].slice(0,-1));var l={};null!=a[1]&&(l=g.parseQueryString(a[1]));for(var u=!1,s=0;s1&&"/"==a[0][a[0].length-1]&&(a[0]=a[0].slice(0,-1));var l={};null!=a[1]&&(l=g.parseQueryString(a[1]));for(var u=0;u1&&"/"==a[0][a[0].length-1]&&(a[0]=a[0].slice(0,-1));var l={};null!=a[1]&&(l=g.parseQueryString(a[1]));for(var u=!1,s=0;s1){var d=g.parseQueryString(r[1]);g.isEmptyObject(d)||Object.assign(l,d)}l.route="/"}else{if(r.length>1){d=g.parseQueryString(r[1]);g.isEmptyObject(d)||Object.assign(l,d)}l.route=null!=n?n:r[0]}var c={method:"GET",content_url:o.meta_content_url,component_type:e.META,container:"head meta",preloader:"",error_content:"",data:l,http_url_change:!1,server_host:o.server_host,http_url:""};S(c)};t.localState=void 0,f=t.localState||(t.localState={}),_=function(t,e){void 0===t&&(t=null),void 0===e&&(e=void 0),null!=t&&(Array.isArray(t)?t.forEach((function(t){c(t,e)})):c(t,e))},f.useState=function(t,e){void 0===t&&(t=void 0),void 0===e&&(e=null);var n=t;return _(e,n),[function(){return n},function(t){_(e,n=t)}]},t.await_rendering=function(t){r.await_rendering=t},t.initTabs=function(t){t.forEach((function(t){if(null==t.tabSwitcher||""==t.tabSwitcher)throw new Error("`tabSwitcher` field can't be undefined or empty in Tabs register.");if(null==t.initialTab||""==t.initialTab)throw new Error("`initialTab` field can't be undefined or empty in Tabs register.");if(null==t.tabs)throw new Error("`tabs` field can't be undefined in Tabs register.");document.querySelectorAll(t.tabSwitcher).forEach((function(e){var n;e.getAttribute("tabRoute")==t.initialTab&&(null!=document.querySelector(".".concat(t.activeSwitcherClass))&&null!=document.querySelector(".".concat(t.activeSwitcherClass))&&(null===(n=document.querySelector(".".concat(t.activeSwitcherClass)))||void 0===n||n.classList.remove(t.activeSwitcherClass)),e.classList.add(t.activeSwitcherClass)),e.addEventListener("click",(function(){var n,o,r,a,l=e.getAttribute("tabRoute");if(null==l)throw new Error("`tabRoute` Attribute can't be undefined in tab switcher.");null!=document.querySelector(".".concat(t.activeSwitcherClass))&&null!=document.querySelector(".".concat(t.activeSwitcherClass))&&(null===(n=document.querySelector(".".concat(t.activeSwitcherClass)))||void 0===n||n.classList.remove(t.activeSwitcherClass)),e.classList.add(t.activeSwitcherClass);var u=document.getElementById(l);if(null==u||null==u)throw new Error("`"+l+"` tabRoute container can't be undefined.");null!=t.activeTabClass&&null!=t.activeTabClass&&""!=t.activeTabClass?(null===(o=document.querySelector(".".concat(t.activeTabClass)))||void 0===o||o.classList.remove(t.activeTabClass),u.classList.add(t.activeTabClass)):(null===(r=document.querySelector(".rm-tab-active"))||void 0===r||r.style.setProperty("display","",""),null===(a=document.querySelector(".rm-tab-active"))||void 0===a||a.classList.remove("rm-tab-active"),u.style.setProperty("display","block","important"),u.classList.add("rm-tab-active"))}))})),t.tabs.forEach((function(n){if(n.tabRoute==t.initialTab){var o=document.getElementById(n.tabRoute);if(null==o||null==o)throw new Error("`"+n.tabRoute+"` tabRoute container can't be undefined.");null!=t.activeTabClass&&null!=t.activeTabClass&&""!=t.activeTabClass?o.classList.add(t.activeTabClass):(o.style.setProperty("display","block","important"),o.classList.add("rm-tab-active"))}var r={method:"GET",meta_loader:!1,content_url:n.content_url,component_type:e.TAB,container:"#".concat(n.tabRoute),preloader:n.preloader,error_content:n.error_content,data:{},http_url_change:!1,http_url:""};null==n.data&&null==n.data||(r.data=n.data),C(r)}))}))},t.navigate=function(t,n,r,l){if(void 0===n&&(n=null),void 0===r&&(r={}),void 0===l&&(l=null),o.RouteContentsState.navigationCallback=l,o.RouteContentsState.ShouldHeaderload=!1,o.RouteContentsState.ShouldFooterload=!1,null==t&&null==t)throw Error(a.DomContent.NavigateRoutePathUndefined);for(var u=o.RoutesPages,s=0;s1&&"/"==c[c.length-1]&&(c=c.slice(0,-1)),null!=c&&(c==u[s].http_url||null!=g.checkPathParam(c,u[s].http_url))){var i=u[s].http_url,h=i,p=!0,f=u[s].method,_=u[s].meta_loader,b=g.checkPathParam(c,u[s].http_url);if(null==n&&(n={}),"/"==t&&(d=""),null!=r.meta_loader&&"boolean"==typeof r.meta_loader&&(_=r.meta_loader),null!=r.http_url_change&&"boolean"==typeof r.http_url_change&&(p=r.http_url_change),null!=r.method&&""!=r.method&&(f=r.method),null!=r.header_load&&"boolean"==typeof r.header_load&&(o.RouteContentsState.ShouldHeaderload=r.header_load,r.header_load))for(var S=0;S { - container?: RouteContainer; - content_url: RouteContentUrl; - preloader: RoutePreloader; - error_content: RouteErrorContent; - http_url: T; -} -export type RegisterdRoutesHeaders = Array>; -export type RegisterdRoutesFooters = Array>; -/** - * Navigation Options types @param - */ -type NavigationHeaderLoad = boolean; -type NavigationFooterLoad = boolean; -export interface NavigationOptions { - http_url?: RouteHttpUrl; - meta_loader?: RouteMetaLoader; - http_url_change?: RouteHttpUrlChange; - method?: RouteMethod; - header_load?: NavigationHeaderLoad; - footer_load?: NavigationFooterLoad; -} -/** - * Tab handler Options types @param - */ -export interface TabConfig { - tabRoute: string; - content_url: string; - preloader: string; - error_content: string; - data?: RouteData; -} -export interface TabHandler { - tabSwitcher: string; - initialTab: string; - activeSwitcherClass: string; - activeTabClass: string; - tabs: TabConfig[]; -} -export type TabRegister = TabHandler[]; -export {}; diff --git a/projects/golang/public/dist/validators/checkPathParam.d.ts b/projects/golang/public/dist/validators/checkPathParam.d.ts deleted file mode 100644 index 289bea9..0000000 --- a/projects/golang/public/dist/validators/checkPathParam.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -type PathParam = { - [key: string]: string; -}; -declare function checkPathParam(url: string, pattern: string): PathParam | null; -export default checkPathParam; diff --git a/projects/golang/public/dist/validators/isEmptyObject.d.ts b/projects/golang/public/dist/validators/isEmptyObject.d.ts deleted file mode 100644 index 90335e3..0000000 --- a/projects/golang/public/dist/validators/isEmptyObject.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const isEmptyObject: (obj: object) => boolean; -export default isEmptyObject; diff --git a/projects/golang/public/dist/validators/isPathParamPattern.d.ts b/projects/golang/public/dist/validators/isPathParamPattern.d.ts deleted file mode 100644 index dc9c852..0000000 --- a/projects/golang/public/dist/validators/isPathParamPattern.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare function isPathParamPattern(str: string): boolean; -export default isPathParamPattern; diff --git a/projects/golang/public/dist/validators/isValidServerHost.d.ts b/projects/golang/public/dist/validators/isValidServerHost.d.ts deleted file mode 100644 index 5d7769a..0000000 --- a/projects/golang/public/dist/validators/isValidServerHost.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { type RouteServerHost } from '../types'; -declare const isValidServerHost: (server_host: RouteServerHost) => boolean; -export default isValidServerHost; diff --git a/projects/golang/public/dist/validators/isValidUrl.d.ts b/projects/golang/public/dist/validators/isValidUrl.d.ts deleted file mode 100644 index 5a188c8..0000000 --- a/projects/golang/public/dist/validators/isValidUrl.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const isValidUrl: (str: string) => boolean; -export default isValidUrl; diff --git a/projects/golang/public/dist/validators/parseObjectToQueryString.d.ts b/projects/golang/public/dist/validators/parseObjectToQueryString.d.ts deleted file mode 100644 index f2ac8ee..0000000 --- a/projects/golang/public/dist/validators/parseObjectToQueryString.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const parseObjectToQueryString: (obj: object) => string; -export default parseObjectToQueryString; diff --git a/projects/golang/public/dist/validators/parseQueryString.d.ts b/projects/golang/public/dist/validators/parseQueryString.d.ts deleted file mode 100644 index 0b995fa..0000000 --- a/projects/golang/public/dist/validators/parseQueryString.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const parseQueryString: (query: string) => object; -export default parseQueryString; diff --git a/src/Navigators.ts b/src/Navigators.ts index 9290bb3..885830f 100644 --- a/src/Navigators.ts +++ b/src/Navigators.ts @@ -84,6 +84,10 @@ export const navigate = ( options.header_load; if (options.header_load) { + if (RoutesStorage.RoutesHeaders.length == 0) { + RoutesStorage.RouteContentsState.ShouldHeaderload = false; + RoutesStorage.RouteContentsState.HeaderContent = null; + } for ( let hIndex = 0; hIndex < RoutesStorage.RoutesHeaders.length; @@ -133,6 +137,10 @@ export const navigate = ( options.footer_load; if (options.footer_load) { + if (RoutesStorage.RoutesFooters.length == 0) { + RoutesStorage.RouteContentsState.ShouldFooterload = false; + RoutesStorage.RouteContentsState.FooterContent = null; + } for ( let fIndex = 0; fIndex < RoutesStorage.RoutesFooters.length; diff --git a/src/RmRender.ts b/src/RmRender.ts index d2e74f8..38e6a1d 100644 --- a/src/RmRender.ts +++ b/src/RmRender.ts @@ -31,6 +31,10 @@ export const renderHeader = (): void => { } let found = false; + if (RoutesStorage.RoutesHeaders.length == 0) { + RoutesStorage.RouteContentsState.ShouldHeaderload = false; + RoutesStorage.RouteContentsState.HeaderContent = null; + } for (let Hindex = 0; Hindex < RoutesStorage.RoutesHeaders.length; Hindex++) { const Hroute = RoutesStorage.RoutesHeaders[Hindex]; for (let i = 0; i < Hroute.http_url.length; i++) { @@ -164,6 +168,10 @@ export const renderFooter = (): void => { } let found = false; + if (RoutesStorage.RoutesFooters.length == 0) { + RoutesStorage.RouteContentsState.ShouldFooterload = false; + RoutesStorage.RouteContentsState.FooterContent = null; + } for (let Findex = 0; Findex < RoutesStorage.RoutesFooters.length; Findex++) { const Froute = RoutesStorage.RoutesFooters[Findex];