@rededor/site-front-end-lib 0.0.52 → 0.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/index.mjs +2 -1
- package/esm2022/lib/components/page-template-sidebar/page-template-sidebar.component.mjs +3 -3
- package/esm2022/lib/components/section-navigation/section-navigation.component.mjs +67 -0
- package/esm2022/lib/models/section-navigation.model.mjs +2 -0
- package/esm2022/lib/services/scroll-service/scroll-service.service.mjs +39 -0
- package/fesm2022/rededor-site-front-end-lib.mjs +101 -3
- package/fesm2022/rededor-site-front-end-lib.mjs.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/section-navigation/section-navigation.component.d.ts +19 -0
- package/lib/models/section-navigation.model.d.ts +9 -0
- package/lib/services/scroll-service/scroll-service.service.d.ts +7 -0
- package/package.json +1 -1
|
@@ -33,4 +33,5 @@ export * from './page-header/page-header.component';
|
|
|
33
33
|
export * from './breadcrumbs/breadcrumbs.component';
|
|
34
34
|
export * from './page-template-sidebar/page-template-sidebar.component';
|
|
35
35
|
export * from './filter-letter-and-terms/filter-letter-and-terms.component';
|
|
36
|
-
|
|
36
|
+
export * from './section-navigation/section-navigation.component';
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFDYixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsMkZBQTJGLENBQUM7QUFDMUcsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyw2RkFBNkYsQ0FBQztBQUM1RyxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsZ0ZBQWdGLENBQUM7QUFDL0YsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9vdGVyL2NvbXBvbmVudHMvZm9vdGVyLWRpc2NsYWltZXIvZm9vdGVyLWRpc2NsYWltZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9vdGVyL2NvbXBvbmVudHMvZm9vdGVyLW1lbnUvZm9vdGVyLW1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9vdGVyL2NvbXBvbmVudHMvZm9vdGVyLW1lbnUtaXRlbS9mb290ZXItbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvb3Rlci9jb21wb25lbnRzL2Zvb3Rlci1zb2NpYWwtbWVkaWFzL2Zvb3Rlci1zb2NpYWwtbWVkaWFzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVyL2NvbXBvbmVudHMvaGVhZGVyLWFjdGlvbi1tZW51L2hlYWRlci1hY3Rpb24tbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvY29tcG9uZW50cy9oZWFkZXItYXV4LW1lbnUvaGVhZGVyLWF1eC1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci9jb21wb25lbnRzL2hlYWRlci1hdXgtbWVudS1jb250YWluZXIvaGVhZGVyLWF1eC1tZW51LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvY29tcG9uZW50cy9oZWFkZXItYXV4LW1lbnUtaXRlbS9oZWFkZXItYXV4LW1lbnUtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvY29tcG9uZW50cy9oZWFkZXItYXV4LW1lbnUtaXRlbS1kcm9wZG93bi9oZWFkZXItYXV4LW1lbnUtaXRlbS1kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvY29tcG9uZW50cy9oZWFkZXItbG9nby9oZWFkZXItbG9nby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvY29tcG9uZW50cy9oZWFkZXItbWFpbi1tZW51L2hlYWRlci1tYWluLW1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVyL2NvbXBvbmVudHMvaGVhZGVyLW1haW4tbWVudS1pdGVtL2hlYWRlci1tYWluLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvY29tcG9uZW50cy9oZWFkZXItbWFpbi1tZW51LWl0ZW0tZHJvcGRvd24vaGVhZGVyLW1haW4tbWVudS1pdGVtLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci9jb21wb25lbnRzL2hlYWRlci1zaWRlLW1lbnUvaGVhZGVyLXNpZGUtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvY29tcG9uZW50cy9oZWFkZXItc2lkZS1tZW51LWl0ZW0vaGVhZGVyLXNpZGUtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWQtc2NyZWVuL2xvYWQtc2NyZWVuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NpZGUtY3Rhcy9zaWRlLWN0YXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2lkZS1jdGFzL2NvbXBvbmVudHMvc2lkZS1jdGFzLWJvdHRvbS9zaWRlLWN0YXMtYm90dG9tLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NpZGUtY3Rhcy9jb21wb25lbnRzL3NpZGUtY3Rhcy1yaWdodC1ib3R0b20vc2lkZS1jdGFzLXJpZ2h0LWJvdHRvbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWRlLWN0YXMvY29tcG9uZW50cy9zaWRlLWN0YXMtcmlnaHQtbWlkZGxlL3NpZGUtY3Rhcy1yaWdodC1taWRkbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2lkZS1jdGFzL2NvbXBvbmVudHMvc2lkZS1jdGFzLXJpZ2h0LXRvcC9zaWRlLWN0YXMtcmlnaHQtdG9wLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3doYXRzYXBwL3doYXRzYXBwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FsZ29saWEvYWxnb2xpYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci9lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci9lcnJvci1zZXJ2aWNlL2Vycm9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jdGEtd3JhcHBlci9jdGEtd3JhcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1icy9icmVhZGNydW1icy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlLXRlbXBsYXRlLXNpZGViYXIvcGFnZS10ZW1wbGF0ZS1zaWRlYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1sZXR0ZXItYW5kLXRlcm1zL2ZpbHRlci1sZXR0ZXItYW5kLXRlcm1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3Rpb24tbmF2aWdhdGlvbi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
export class PageTemplateSidebarComponent {
|
|
@@ -8,7 +8,7 @@ export class PageTemplateSidebarComponent {
|
|
|
8
8
|
}
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageTemplateSidebarComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
|
-
args: [{ selector: 'rdsite-page-template-sidebar', standalone: true, imports: [CommonModule], template: "<div class=\"page-template-sidebar\">\n <!-- Header Section -->\n <div class=\"header-content\">\n @if (headerContent) {\n <ng-container [ngTemplateOutlet]=\"headerContent\"></ng-container>\n }\n </div>\n\n <!-- Before Content Section -->\n <div class=\"before-content\">\n @if (beforeContent) {\n <ng-container [ngTemplateOutlet]=\"beforeContent\"></ng-container>\n }\n </div>\n\n <!-- Main Content -->\n <div class=\"main-content\">\n @if (mainContent) {\n <ng-container [ngTemplateOutlet]=\"mainContent\"></ng-container>\n }\n </div>\n\n <!-- Sidebars -->\n <div class=\"main-sidebar\">\n @if (mainSidebar) {\n <ng-container [ngTemplateOutlet]=\"mainSidebar\"></ng-container>\n }\n </div>\n <div class=\"secondary-sidebar\">\n @if (sidebarContent) {\n <ng-container [ngTemplateOutlet]=\"sidebarContent\"></ng-container>\n }\n </div>\n\n <!-- After Content -->\n <div class=\"after-content\">\n @if (afterContent) {\n <ng-container [ngTemplateOutlet]=\"afterContent\"></ng-container>\n }\n </div>\n</div>\n", styles: [".page-template-sidebar{display:grid;grid-template-columns:733px 292px;grid-template-rows:auto auto;grid-auto-rows:auto;gap:0px 53px;grid-auto-flow:row dense;padding:0 146px 0 142px;box-sizing:border-box}.page-template-sidebar .header-content{grid-area:1/1/2/4;margin:0 -146px 0 -142px;width:calc(100% + 288px)}.page-template-sidebar .main-sidebar{grid-area:1/3/3/4}.page-template-sidebar .secondary-sidebar{grid-area:3/3/5/4}.page-template-sidebar .before-content{grid-area:2/1/3/3}.page-template-sidebar .main-content{grid-area:3/1/5/3}.page-template-sidebar .after-content{grid-area:5/1/6/4}@media (max-width: 361px){.page-template-sidebar{padding:0 15px;min-height:148px}}@media (min-width: 361px) and (max-width: 769px){.page-template-sidebar{padding:0 40px}}@media (min-width: 769px) and (max-width: 1024px){.page-template-sidebar{padding:0 90px}}@media (min-width: 1024px) and (max-width: 1366px){.page-template-sidebar{padding:0 52px}}\n"] }]
|
|
11
|
+
args: [{ selector: 'rdsite-page-template-sidebar', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"page-template-sidebar\">\n <!-- Header Section -->\n <div class=\"header-content\">\n @if (headerContent) {\n <ng-container [ngTemplateOutlet]=\"headerContent\"></ng-container>\n }\n </div>\n\n <!-- Before Content Section -->\n <div class=\"before-content\">\n @if (beforeContent) {\n <ng-container [ngTemplateOutlet]=\"beforeContent\"></ng-container>\n }\n </div>\n\n <!-- Main Content -->\n <div class=\"main-content\">\n @if (mainContent) {\n <ng-container [ngTemplateOutlet]=\"mainContent\"></ng-container>\n }\n </div>\n\n <!-- Sidebars -->\n <div class=\"main-sidebar\">\n @if (mainSidebar) {\n <ng-container [ngTemplateOutlet]=\"mainSidebar\"></ng-container>\n }\n </div>\n <div class=\"secondary-sidebar\">\n @if (sidebarContent) {\n <ng-container [ngTemplateOutlet]=\"sidebarContent\"></ng-container>\n }\n </div>\n\n <!-- After Content -->\n <div class=\"after-content\">\n @if (afterContent) {\n <ng-container [ngTemplateOutlet]=\"afterContent\"></ng-container>\n }\n </div>\n</div>\n", styles: [".page-template-sidebar{display:grid;grid-template-columns:733px 292px;grid-template-rows:auto auto;grid-auto-rows:auto;gap:0px 53px;grid-auto-flow:row dense;padding:0 146px 0 142px;box-sizing:border-box}.page-template-sidebar .header-content{grid-area:1/1/2/4;margin:0 -146px 0 -142px;width:calc(100% + 288px)}.page-template-sidebar .main-sidebar{grid-area:1/3/3/4}.page-template-sidebar .secondary-sidebar{grid-area:3/3/5/4}.page-template-sidebar .before-content{grid-area:2/1/3/3}.page-template-sidebar .main-content{grid-area:3/1/5/3}.page-template-sidebar .after-content{grid-area:5/1/6/4}@media (max-width: 361px){.page-template-sidebar{padding:0 15px;min-height:148px}}@media (min-width: 361px) and (max-width: 769px){.page-template-sidebar{padding:0 40px}}@media (min-width: 769px) and (max-width: 1024px){.page-template-sidebar{padding:0 90px}}@media (min-width: 1024px) and (max-width: 1366px){.page-template-sidebar{padding:0 52px}}\n"] }]
|
|
12
12
|
}], propDecorators: { headerContent: [{
|
|
13
13
|
type: Input
|
|
14
14
|
}], beforeContent: [{
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
22
22
|
}], afterContent: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10ZW1wbGF0ZS1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS10ZW1wbGF0ZS1zaWRlYmFyL3BhZ2UtdGVtcGxhdGUtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtdGVtcGxhdGUtc2lkZWJhci9wYWdlLXRlbXBsYXRlLXNpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDOzs7QUFVdEYsTUFBTSxPQUFPLDRCQUE0QjsrR0FBNUIsNEJBQTRCO21HQUE1Qiw0QkFBNEIsNFJDWHpDLHFrQ0F5Q0EseStCRG5DWSxZQUFZOzs0RkFLWCw0QkFBNEI7a0JBUnhDLFNBQVM7K0JBQ0UsOEJBQThCLGNBQzVCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxXQUNkLENBQUMsc0JBQXNCLENBQUM7OEJBS3hCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jkc2l0ZS1wYWdlLXRlbXBsYXRlLXNpZGViYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS10ZW1wbGF0ZS1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhZ2UtdGVtcGxhdGUtc2lkZWJhci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUZW1wbGF0ZVNpZGViYXJDb21wb25lbnQge1xuICBASW5wdXQoKSBoZWFkZXJDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgYmVmb3JlQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIG1haW5Db250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgbWFpblNpZGViYXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBzaWRlYmFyQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGFmdGVyQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnZS10ZW1wbGF0ZS1zaWRlYmFyXCI+XG4gIDwhLS0gSGVhZGVyIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGVudFwiPlxuICAgIEBpZiAoaGVhZGVyQ29udGVudCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8IS0tIEJlZm9yZSBDb250ZW50IFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJiZWZvcmUtY29udGVudFwiPlxuICAgIEBpZiAoYmVmb3JlQ29udGVudCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJiZWZvcmVDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8IS0tIE1haW4gQ29udGVudCAtLT5cbiAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxuICAgIEBpZiAobWFpbkNvbnRlbnQpIHtcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWFpbkNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDwhLS0gU2lkZWJhcnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJtYWluLXNpZGViYXJcIj5cbiAgICBAaWYgKG1haW5TaWRlYmFyKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1haW5TaWRlYmFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNlY29uZGFyeS1zaWRlYmFyXCI+XG4gICAgQGlmIChzaWRlYmFyQ29udGVudCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlYmFyQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPCEtLSBBZnRlciBDb250ZW50IC0tPlxuICA8ZGl2IGNsYXNzPVwiYWZ0ZXItY29udGVudFwiPlxuICAgIEBpZiAoYWZ0ZXJDb250ZW50KSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFmdGVyQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, signal, effect, inject, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ScrollService } from '../../services/scroll-service/scroll-service.service';
|
|
4
|
+
import { CuraService } from '../../services/cura/cura.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SectionNavigationComponent {
|
|
7
|
+
set navigationSections(value) {
|
|
8
|
+
if (!value?.length) {
|
|
9
|
+
throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');
|
|
10
|
+
}
|
|
11
|
+
this.sections.set(value);
|
|
12
|
+
if (!this.activeSection()) {
|
|
13
|
+
this.activeSection.set(value[0].id);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
set navigationConfig(value) {
|
|
17
|
+
this.config.set(value);
|
|
18
|
+
}
|
|
19
|
+
constructor() {
|
|
20
|
+
this.scrollService = inject(ScrollService);
|
|
21
|
+
this.curaService = inject(CuraService);
|
|
22
|
+
this.sections = signal([]);
|
|
23
|
+
this.config = signal(undefined);
|
|
24
|
+
this.activeSection = signal('');
|
|
25
|
+
this.ariaLabel = 'Page Navigation';
|
|
26
|
+
this.sectionChange = new EventEmitter();
|
|
27
|
+
effect(() => {
|
|
28
|
+
const sections = this.sections();
|
|
29
|
+
if (sections.length && !this.activeSection()) {
|
|
30
|
+
this.activeSection.set(sections[0].id);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
const sections = this.sections();
|
|
36
|
+
if (!sections.length) {
|
|
37
|
+
throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');
|
|
38
|
+
}
|
|
39
|
+
if (!this.activeSection()) {
|
|
40
|
+
this.activeSection.set(sections[0].id);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
onSectionClick(section) {
|
|
44
|
+
const config = this.config();
|
|
45
|
+
const success = this.scrollService.scrollToElement(section.id, config?.offsetTop ?? 56, config?.smoothScroll ?? true);
|
|
46
|
+
if (success) {
|
|
47
|
+
this.activeSection.set(section.id);
|
|
48
|
+
this.sectionChange.emit(section);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "rdsite-section-navigation", inputs: { navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel" }, outputs: { sectionChange: "sectionChange" }, ngImport: i0, template: "<nav [class]=\"config()?.containerClass || 'nav-container'\" [attr.aria-label]=\"ariaLabel\">\n <div class=\"nav-inner\">\n <ul class=\"nav-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n <li role=\"none\">\n @if (activeSection() === section.id) {\n <cura-button\n size=\"small\"\n type=\"button\"\n color=\"primary\"\n font-color=\"light\"\n target=\"_self\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"'page'\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button>\n } @else {\n <cura-button-transparent\n size=\"small\"\n type=\"button\"\n color=\"neutral\"\n font-color=\"dark\"\n target=\"_self\"\n text-align=\"center\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"null\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button-transparent>\n }\n </li>\n }\n </ul>\n </div>\n</nav>\n", styles: [":host{display:block}.nav-container{width:100%;position:sticky;top:0;left:0;z-index:50;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:26px}.nav-inner{max-width:1152px;margin-left:auto;margin-right:auto}.nav-menu{display:flex;list-style:none;padding:0;margin:0}cura-button{position:relative;--border-radius: 4px 4px 0 0 !important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'rdsite-section-navigation', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav [class]=\"config()?.containerClass || 'nav-container'\" [attr.aria-label]=\"ariaLabel\">\n <div class=\"nav-inner\">\n <ul class=\"nav-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n <li role=\"none\">\n @if (activeSection() === section.id) {\n <cura-button\n size=\"small\"\n type=\"button\"\n color=\"primary\"\n font-color=\"light\"\n target=\"_self\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"'page'\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button>\n } @else {\n <cura-button-transparent\n size=\"small\"\n type=\"button\"\n color=\"neutral\"\n font-color=\"dark\"\n target=\"_self\"\n text-align=\"center\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"null\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button-transparent>\n }\n </li>\n }\n </ul>\n </div>\n</nav>\n", styles: [":host{display:block}.nav-container{width:100%;position:sticky;top:0;left:0;z-index:50;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:26px}.nav-inner{max-width:1152px;margin-left:auto;margin-right:auto}.nav-menu{display:flex;list-style:none;padding:0;margin:0}cura-button{position:relative;--border-radius: 4px 4px 0 0 !important}\n"] }]
|
|
57
|
+
}], ctorParameters: () => [], propDecorators: { navigationSections: [{
|
|
58
|
+
type: Input,
|
|
59
|
+
args: [{ required: true }]
|
|
60
|
+
}], navigationConfig: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], ariaLabel: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], sectionChange: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VjdGlvbi1uYXZpZ2F0aW9uL3NlY3Rpb24tbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tbmF2aWdhdGlvbi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVksTUFBTSxFQUFVLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFVL0QsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxJQUNJLGtCQUFrQixDQUFDLEtBQTBCO1FBQy9DLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFDSSxnQkFBZ0IsQ0FBQyxLQUE4QjtRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBUUQ7UUE5QmlCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTFDLGFBQVEsR0FBRyxNQUFNLENBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLFdBQU0sR0FBRyxNQUFNLENBQXNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLGtCQUFhLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBb0I1QyxjQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFHOUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUdwRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsT0FBMEI7UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUV0SCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDOytHQTNEVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixzUENkdkMsMjdDQTBDQSxzYkRqQ1ksWUFBWTs7NEZBS1gsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsV0FDZCxDQUFDLHNCQUFzQixDQUFDO3dEQWE3QixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWFyQixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBTU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGFBQWE7c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBzaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIE9uSW5pdCwgaW5qZWN0LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlY3Rpb24sIFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlY3Rpb24tbmF2aWdhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Nyb2xsLXNlcnZpY2Uvc2Nyb2xsLXNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDdXJhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2N1cmEvY3VyYS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncmRzaXRlLXNlY3Rpb24tbmF2aWdhdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFNlcnZpY2UgPSBpbmplY3QoU2Nyb2xsU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VyYVNlcnZpY2UgPSBpbmplY3QoQ3VyYVNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHNlY3Rpb25zID0gc2lnbmFsPE5hdmlnYXRpb25TZWN0aW9uW10+KFtdKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gc2lnbmFsPFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBhY3RpdmVTZWN0aW9uID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHNldCBuYXZpZ2F0aW9uU2VjdGlvbnModmFsdWU6IE5hdmlnYXRpb25TZWN0aW9uW10pIHtcbiAgICBpZiAoIXZhbHVlPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCByZXF1ZXIgcGVsbyBtZW5vcyB1bWEgc2XDp8Ojby4nKTtcbiAgICB9XG4gICAgdGhpcy5zZWN0aW9ucy5zZXQodmFsdWUpO1xuXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVNlY3Rpb24oKSkge1xuICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldCh2YWx1ZVswXS5pZCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IG5hdmlnYXRpb25Db25maWcodmFsdWU6IFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGFyaWFMYWJlbCA9ICdQYWdlIE5hdmlnYXRpb24nO1xuXG4gIEBPdXRwdXQoKVxuICBzZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOYXZpZ2F0aW9uU2VjdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zKCk7XG4gICAgICBpZiAoc2VjdGlvbnMubGVuZ3RoICYmICF0aGlzLmFjdGl2ZVNlY3Rpb24oKSkge1xuICAgICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHNlY3Rpb25zWzBdLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5zZWN0aW9ucygpO1xuICAgIGlmICghc2VjdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ08gU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgcmVxdWVyIHBlbG8gbWVub3MgdW1hIHNlw6fDo28uJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVNlY3Rpb24oKSkge1xuICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldChzZWN0aW9uc1swXS5pZCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWN0aW9uQ2xpY2soc2VjdGlvbjogTmF2aWdhdGlvblNlY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSB0aGlzLnNjcm9sbFNlcnZpY2Uuc2Nyb2xsVG9FbGVtZW50KHNlY3Rpb24uaWQsIGNvbmZpZz8ub2Zmc2V0VG9wID8/IDU2LCBjb25maWc/LnNtb290aFNjcm9sbCA/PyB0cnVlKTtcblxuICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHNlY3Rpb24uaWQpO1xuICAgICAgdGhpcy5zZWN0aW9uQ2hhbmdlLmVtaXQoc2VjdGlvbik7XG4gICAgfVxuICB9XG59XG4iLCI8bmF2IFtjbGFzc109XCJjb25maWcoKT8uY29udGFpbmVyQ2xhc3MgfHwgJ25hdi1jb250YWluZXInXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIj5cbiAgPGRpdiBjbGFzcz1cIm5hdi1pbm5lclwiPlxuICAgIDx1bCBjbGFzcz1cIm5hdi1tZW51XCIgcm9sZT1cIm1lbnViYXJcIj5cbiAgICAgIEBmb3IgKHNlY3Rpb24gb2Ygc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5pZCkge1xuICAgICAgICA8bGkgcm9sZT1cIm5vbmVcIj5cbiAgICAgICAgICBAaWYgKGFjdGl2ZVNlY3Rpb24oKSA9PT0gc2VjdGlvbi5pZCkge1xuICAgICAgICAgICAgPGN1cmEtYnV0dG9uXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBmb250LWNvbG9yPVwibGlnaHRcIlxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgICAgIFtpZF09XCInbmF2LScgKyBzZWN0aW9uLmlkXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIidwYWdlJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblNlY3Rpb25DbGljayhzZWN0aW9uKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ05hdmlnYXRlIHRvICcgKyBzZWN0aW9uLnRpdGxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgc2VjdGlvbi50aXRsZSB9fVxuICAgICAgICAgICAgPC9jdXJhLWJ1dHRvbj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxjdXJhLWJ1dHRvbi10cmFuc3BhcmVudFxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgZm9udC1jb2xvcj1cImRhcmtcIlxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICAgIHRleHQtYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgICBbaWRdPVwiJ25hdi0nICsgc2VjdGlvbi5pZFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJudWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VjdGlvbkNsaWNrKHNlY3Rpb24pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTmF2aWdhdGUgdG8gJyArIHNlY3Rpb24udGl0bGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBzZWN0aW9uLnRpdGxlIH19XG4gICAgICAgICAgICA8L2N1cmEtYnV0dG9uLXRyYW5zcGFyZW50PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvbmF2PlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1uYXZpZ2F0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvbW9kZWxzL3NlY3Rpb24tbmF2aWdhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uU2VjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdGlvbk5hdmlnYXRpb25Db25maWcge1xuICBvZmZzZXRUb3A/OiBudW1iZXI7XG4gIHNtb290aFNjcm9sbD86IGJvb2xlYW47XG4gIGNvbnRhaW5lckNsYXNzPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ScrollService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.document = inject(DOCUMENT);
|
|
7
|
+
}
|
|
8
|
+
scrollToElement(elementId, offset = 0, smooth = true) {
|
|
9
|
+
const element = this.document.getElementById(elementId);
|
|
10
|
+
if (!element) {
|
|
11
|
+
console.warn(`Elemento com id "${elementId}" não encontrado`);
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
const titleElement = element.querySelector('h1, h2, h3, h4, h5, h6') || element;
|
|
16
|
+
const titlePosition = titleElement.getBoundingClientRect().top + window.scrollY;
|
|
17
|
+
const stickyHeaderHeight = document.querySelector('.nav-container')?.clientHeight || 0;
|
|
18
|
+
const offsetPosition = titlePosition - offset - stickyHeaderHeight - 16;
|
|
19
|
+
window.scrollTo({
|
|
20
|
+
top: offsetPosition,
|
|
21
|
+
behavior: smooth ? 'smooth' : 'auto',
|
|
22
|
+
});
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error('Erro ao fazer scroll para o elemento:', error);
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
31
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollService, decorators: [{
|
|
34
|
+
type: Injectable,
|
|
35
|
+
args: [{
|
|
36
|
+
providedIn: 'root',
|
|
37
|
+
}]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL3NlcnZpY2VzL3Njcm9sbC1zZXJ2aWNlL3Njcm9sbC1zZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlVLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0E0QnJDO0lBMUJDLGVBQWUsQ0FBQyxTQUFpQixFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUk7UUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzlELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsSUFBSSxPQUFPLENBQUM7WUFFaEYsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDaEYsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQztZQUN2RixNQUFNLGNBQWMsR0FBRyxhQUFhLEdBQUcsTUFBTSxHQUFHLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztZQUV4RSxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNkLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU07YUFDckMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDOUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzsrR0E1QlUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbFNlcnZpY2Uge1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBzY3JvbGxUb0VsZW1lbnQoZWxlbWVudElkOiBzdHJpbmcsIG9mZnNldCA9IDAsIHNtb290aCA9IHRydWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpO1xuXG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnRvIGNvbSBpZCBcIiR7ZWxlbWVudElkfVwiIG7Do28gZW5jb250cmFkb2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0aXRsZUVsZW1lbnQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2gxLCBoMiwgaDMsIGg0LCBoNSwgaDYnKSB8fCBlbGVtZW50O1xuXG4gICAgICBjb25zdCB0aXRsZVBvc2l0aW9uID0gdGl0bGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgICAgY29uc3Qgc3RpY2t5SGVhZGVySGVpZ2h0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5hdi1jb250YWluZXInKT8uY2xpZW50SGVpZ2h0IHx8IDA7XG4gICAgICBjb25zdCBvZmZzZXRQb3NpdGlvbiA9IHRpdGxlUG9zaXRpb24gLSBvZmZzZXQgLSBzdGlja3lIZWFkZXJIZWlnaHQgLSAxNjtcblxuICAgICAgd2luZG93LnNjcm9sbFRvKHtcbiAgICAgICAgdG9wOiBvZmZzZXRQb3NpdGlvbixcbiAgICAgICAgYmVoYXZpb3I6IHNtb290aCA/ICdzbW9vdGgnIDogJ2F1dG8nLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvIGFvIGZhemVyIHNjcm9sbCBwYXJhIG8gZWxlbWVudG86JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, Inject, PLATFORM_ID, Optional, makeStateKey, signal, EventEmitter, Component, Input, Output, Directive, HostListener, CUSTOM_ELEMENTS_SCHEMA, ViewChild, HostBinding, effect, Pipe } from '@angular/core';
|
|
2
|
+
import { InjectionToken, Injectable, Inject, PLATFORM_ID, Optional, makeStateKey, signal, EventEmitter, Component, Input, Output, Directive, HostListener, CUSTOM_ELEMENTS_SCHEMA, ViewChild, HostBinding, effect, inject, Pipe } from '@angular/core';
|
|
3
3
|
import algoliasearch from 'algoliasearch';
|
|
4
4
|
import { from, fromEvent, startWith, timeout, catchError, of, Observable, debounceTime, BehaviorSubject } from 'rxjs';
|
|
5
5
|
import * as i2 from '@angular/common';
|
|
@@ -19069,7 +19069,7 @@ class PageTemplateSidebarComponent {
|
|
|
19069
19069
|
}
|
|
19070
19070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageTemplateSidebarComponent, decorators: [{
|
|
19071
19071
|
type: Component,
|
|
19072
|
-
args: [{ selector: 'rdsite-page-template-sidebar', standalone: true, imports: [CommonModule], template: "<div class=\"page-template-sidebar\">\n <!-- Header Section -->\n <div class=\"header-content\">\n @if (headerContent) {\n <ng-container [ngTemplateOutlet]=\"headerContent\"></ng-container>\n }\n </div>\n\n <!-- Before Content Section -->\n <div class=\"before-content\">\n @if (beforeContent) {\n <ng-container [ngTemplateOutlet]=\"beforeContent\"></ng-container>\n }\n </div>\n\n <!-- Main Content -->\n <div class=\"main-content\">\n @if (mainContent) {\n <ng-container [ngTemplateOutlet]=\"mainContent\"></ng-container>\n }\n </div>\n\n <!-- Sidebars -->\n <div class=\"main-sidebar\">\n @if (mainSidebar) {\n <ng-container [ngTemplateOutlet]=\"mainSidebar\"></ng-container>\n }\n </div>\n <div class=\"secondary-sidebar\">\n @if (sidebarContent) {\n <ng-container [ngTemplateOutlet]=\"sidebarContent\"></ng-container>\n }\n </div>\n\n <!-- After Content -->\n <div class=\"after-content\">\n @if (afterContent) {\n <ng-container [ngTemplateOutlet]=\"afterContent\"></ng-container>\n }\n </div>\n</div>\n", styles: [".page-template-sidebar{display:grid;grid-template-columns:733px 292px;grid-template-rows:auto auto;grid-auto-rows:auto;gap:0px 53px;grid-auto-flow:row dense;padding:0 146px 0 142px;box-sizing:border-box}.page-template-sidebar .header-content{grid-area:1/1/2/4;margin:0 -146px 0 -142px;width:calc(100% + 288px)}.page-template-sidebar .main-sidebar{grid-area:1/3/3/4}.page-template-sidebar .secondary-sidebar{grid-area:3/3/5/4}.page-template-sidebar .before-content{grid-area:2/1/3/3}.page-template-sidebar .main-content{grid-area:3/1/5/3}.page-template-sidebar .after-content{grid-area:5/1/6/4}@media (max-width: 361px){.page-template-sidebar{padding:0 15px;min-height:148px}}@media (min-width: 361px) and (max-width: 769px){.page-template-sidebar{padding:0 40px}}@media (min-width: 769px) and (max-width: 1024px){.page-template-sidebar{padding:0 90px}}@media (min-width: 1024px) and (max-width: 1366px){.page-template-sidebar{padding:0 52px}}\n"] }]
|
|
19072
|
+
args: [{ selector: 'rdsite-page-template-sidebar', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"page-template-sidebar\">\n <!-- Header Section -->\n <div class=\"header-content\">\n @if (headerContent) {\n <ng-container [ngTemplateOutlet]=\"headerContent\"></ng-container>\n }\n </div>\n\n <!-- Before Content Section -->\n <div class=\"before-content\">\n @if (beforeContent) {\n <ng-container [ngTemplateOutlet]=\"beforeContent\"></ng-container>\n }\n </div>\n\n <!-- Main Content -->\n <div class=\"main-content\">\n @if (mainContent) {\n <ng-container [ngTemplateOutlet]=\"mainContent\"></ng-container>\n }\n </div>\n\n <!-- Sidebars -->\n <div class=\"main-sidebar\">\n @if (mainSidebar) {\n <ng-container [ngTemplateOutlet]=\"mainSidebar\"></ng-container>\n }\n </div>\n <div class=\"secondary-sidebar\">\n @if (sidebarContent) {\n <ng-container [ngTemplateOutlet]=\"sidebarContent\"></ng-container>\n }\n </div>\n\n <!-- After Content -->\n <div class=\"after-content\">\n @if (afterContent) {\n <ng-container [ngTemplateOutlet]=\"afterContent\"></ng-container>\n }\n </div>\n</div>\n", styles: [".page-template-sidebar{display:grid;grid-template-columns:733px 292px;grid-template-rows:auto auto;grid-auto-rows:auto;gap:0px 53px;grid-auto-flow:row dense;padding:0 146px 0 142px;box-sizing:border-box}.page-template-sidebar .header-content{grid-area:1/1/2/4;margin:0 -146px 0 -142px;width:calc(100% + 288px)}.page-template-sidebar .main-sidebar{grid-area:1/3/3/4}.page-template-sidebar .secondary-sidebar{grid-area:3/3/5/4}.page-template-sidebar .before-content{grid-area:2/1/3/3}.page-template-sidebar .main-content{grid-area:3/1/5/3}.page-template-sidebar .after-content{grid-area:5/1/6/4}@media (max-width: 361px){.page-template-sidebar{padding:0 15px;min-height:148px}}@media (min-width: 361px) and (max-width: 769px){.page-template-sidebar{padding:0 40px}}@media (min-width: 769px) and (max-width: 1024px){.page-template-sidebar{padding:0 90px}}@media (min-width: 1024px) and (max-width: 1366px){.page-template-sidebar{padding:0 52px}}\n"] }]
|
|
19073
19073
|
}], propDecorators: { headerContent: [{
|
|
19074
19074
|
type: Input
|
|
19075
19075
|
}], beforeContent: [{
|
|
@@ -19108,6 +19108,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
19108
19108
|
type: Output
|
|
19109
19109
|
}] } });
|
|
19110
19110
|
|
|
19111
|
+
class ScrollService {
|
|
19112
|
+
constructor() {
|
|
19113
|
+
this.document = inject(DOCUMENT);
|
|
19114
|
+
}
|
|
19115
|
+
scrollToElement(elementId, offset = 0, smooth = true) {
|
|
19116
|
+
const element = this.document.getElementById(elementId);
|
|
19117
|
+
if (!element) {
|
|
19118
|
+
console.warn(`Elemento com id "${elementId}" não encontrado`);
|
|
19119
|
+
return false;
|
|
19120
|
+
}
|
|
19121
|
+
try {
|
|
19122
|
+
const titleElement = element.querySelector('h1, h2, h3, h4, h5, h6') || element;
|
|
19123
|
+
const titlePosition = titleElement.getBoundingClientRect().top + window.scrollY;
|
|
19124
|
+
const stickyHeaderHeight = document.querySelector('.nav-container')?.clientHeight || 0;
|
|
19125
|
+
const offsetPosition = titlePosition - offset - stickyHeaderHeight - 16;
|
|
19126
|
+
window.scrollTo({
|
|
19127
|
+
top: offsetPosition,
|
|
19128
|
+
behavior: smooth ? 'smooth' : 'auto',
|
|
19129
|
+
});
|
|
19130
|
+
return true;
|
|
19131
|
+
}
|
|
19132
|
+
catch (error) {
|
|
19133
|
+
console.error('Erro ao fazer scroll para o elemento:', error);
|
|
19134
|
+
return false;
|
|
19135
|
+
}
|
|
19136
|
+
}
|
|
19137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19138
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
|
|
19139
|
+
}
|
|
19140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollService, decorators: [{
|
|
19141
|
+
type: Injectable,
|
|
19142
|
+
args: [{
|
|
19143
|
+
providedIn: 'root',
|
|
19144
|
+
}]
|
|
19145
|
+
}] });
|
|
19146
|
+
|
|
19147
|
+
class SectionNavigationComponent {
|
|
19148
|
+
set navigationSections(value) {
|
|
19149
|
+
if (!value?.length) {
|
|
19150
|
+
throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');
|
|
19151
|
+
}
|
|
19152
|
+
this.sections.set(value);
|
|
19153
|
+
if (!this.activeSection()) {
|
|
19154
|
+
this.activeSection.set(value[0].id);
|
|
19155
|
+
}
|
|
19156
|
+
}
|
|
19157
|
+
set navigationConfig(value) {
|
|
19158
|
+
this.config.set(value);
|
|
19159
|
+
}
|
|
19160
|
+
constructor() {
|
|
19161
|
+
this.scrollService = inject(ScrollService);
|
|
19162
|
+
this.curaService = inject(CuraService);
|
|
19163
|
+
this.sections = signal([]);
|
|
19164
|
+
this.config = signal(undefined);
|
|
19165
|
+
this.activeSection = signal('');
|
|
19166
|
+
this.ariaLabel = 'Page Navigation';
|
|
19167
|
+
this.sectionChange = new EventEmitter();
|
|
19168
|
+
effect(() => {
|
|
19169
|
+
const sections = this.sections();
|
|
19170
|
+
if (sections.length && !this.activeSection()) {
|
|
19171
|
+
this.activeSection.set(sections[0].id);
|
|
19172
|
+
}
|
|
19173
|
+
});
|
|
19174
|
+
}
|
|
19175
|
+
ngOnInit() {
|
|
19176
|
+
const sections = this.sections();
|
|
19177
|
+
if (!sections.length) {
|
|
19178
|
+
throw new Error('O SectionNavigationComponent requer pelo menos uma seção.');
|
|
19179
|
+
}
|
|
19180
|
+
if (!this.activeSection()) {
|
|
19181
|
+
this.activeSection.set(sections[0].id);
|
|
19182
|
+
}
|
|
19183
|
+
}
|
|
19184
|
+
onSectionClick(section) {
|
|
19185
|
+
const config = this.config();
|
|
19186
|
+
const success = this.scrollService.scrollToElement(section.id, config?.offsetTop ?? 56, config?.smoothScroll ?? true);
|
|
19187
|
+
if (success) {
|
|
19188
|
+
this.activeSection.set(section.id);
|
|
19189
|
+
this.sectionChange.emit(section);
|
|
19190
|
+
}
|
|
19191
|
+
}
|
|
19192
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19193
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "rdsite-section-navigation", inputs: { navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel" }, outputs: { sectionChange: "sectionChange" }, ngImport: i0, template: "<nav [class]=\"config()?.containerClass || 'nav-container'\" [attr.aria-label]=\"ariaLabel\">\n <div class=\"nav-inner\">\n <ul class=\"nav-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n <li role=\"none\">\n @if (activeSection() === section.id) {\n <cura-button\n size=\"small\"\n type=\"button\"\n color=\"primary\"\n font-color=\"light\"\n target=\"_self\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"'page'\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button>\n } @else {\n <cura-button-transparent\n size=\"small\"\n type=\"button\"\n color=\"neutral\"\n font-color=\"dark\"\n target=\"_self\"\n text-align=\"center\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"null\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button-transparent>\n }\n </li>\n }\n </ul>\n </div>\n</nav>\n", styles: [":host{display:block}.nav-container{width:100%;position:sticky;top:0;left:0;z-index:50;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:26px}.nav-inner{max-width:1152px;margin-left:auto;margin-right:auto}.nav-menu{display:flex;list-style:none;padding:0;margin:0}cura-button{position:relative;--border-radius: 4px 4px 0 0 !important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
19194
|
+
}
|
|
19195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, decorators: [{
|
|
19196
|
+
type: Component,
|
|
19197
|
+
args: [{ selector: 'rdsite-section-navigation', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav [class]=\"config()?.containerClass || 'nav-container'\" [attr.aria-label]=\"ariaLabel\">\n <div class=\"nav-inner\">\n <ul class=\"nav-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n <li role=\"none\">\n @if (activeSection() === section.id) {\n <cura-button\n size=\"small\"\n type=\"button\"\n color=\"primary\"\n font-color=\"light\"\n target=\"_self\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"'page'\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button>\n } @else {\n <cura-button-transparent\n size=\"small\"\n type=\"button\"\n color=\"neutral\"\n font-color=\"dark\"\n target=\"_self\"\n text-align=\"center\"\n role=\"menuitem\"\n [id]=\"'nav-' + section.id\"\n [attr.aria-current]=\"null\"\n (click)=\"onSectionClick(section)\"\n [attr.aria-label]=\"'Navigate to ' + section.title\"\n >\n {{ section.title }}\n </cura-button-transparent>\n }\n </li>\n }\n </ul>\n </div>\n</nav>\n", styles: [":host{display:block}.nav-container{width:100%;position:sticky;top:0;left:0;z-index:50;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:26px}.nav-inner{max-width:1152px;margin-left:auto;margin-right:auto}.nav-menu{display:flex;list-style:none;padding:0;margin:0}cura-button{position:relative;--border-radius: 4px 4px 0 0 !important}\n"] }]
|
|
19198
|
+
}], ctorParameters: () => [], propDecorators: { navigationSections: [{
|
|
19199
|
+
type: Input,
|
|
19200
|
+
args: [{ required: true }]
|
|
19201
|
+
}], navigationConfig: [{
|
|
19202
|
+
type: Input
|
|
19203
|
+
}], ariaLabel: [{
|
|
19204
|
+
type: Input
|
|
19205
|
+
}], sectionChange: [{
|
|
19206
|
+
type: Output
|
|
19207
|
+
}] } });
|
|
19208
|
+
|
|
19111
19209
|
// Components
|
|
19112
19210
|
|
|
19113
19211
|
class PhonePipe {
|
|
@@ -19134,5 +19232,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
19134
19232
|
* Generated bundle index. Do not edit.
|
|
19135
19233
|
*/
|
|
19136
19234
|
|
|
19137
|
-
export { AbstractModalComponent, AbstractModalDrawerComponent, AlgoliaComponent, AlgoliaSearchApiService, AlgoliaService, BreadcrumbsComponent, CtaWrapperComponent, CuraService, EnumDoencaTaxonomy, EnumDoencaTaxonomyCat, ErrorComponent, ErrorService, Errors, Estados, FilterLetterAndTermsComponent, FooterComponent, FooterDisclaimerComponent, FooterMenuComponent, FooterMenuItemComponent, FooterSocialMediasComponent, HeaderActionMenuComponent, HeaderAuxMenuComponent, HeaderAuxMenuContainerComponent, HeaderAuxMenuItemComponent, HeaderAuxMenuItemDropdownComponent, HeaderComponent, HeaderLogoComponent, HeaderMainMenuComponent, HeaderMainMenuItemComponent, HeaderMainMenuItemDropdownComponent, HeaderService, HeaderSideMenuComponent, HeaderSideMenuItemComponent, HttpClientService, IconCuraDefaultType, LIB_CONFIG, LoadScreenComponent, LogService, ModalDrawerService, ModalService, NguCarouselService, OverlayComponent, PageHeaderComponent, PageTemplateSidebarComponent, PhonePipe, PhoneService, PrivacyToolsService, REQUEST, RESPONSE, RdsiteClickOutsideDirective, RdsiteLinkDirective, RdsiteModalComponentStyle, RdsiteModalDrawerComponentStyle, RdsitePhoneModalDirective, SSR_CURA_API, SearchComponent, SeoService, ServerResponseService, SideCtasBottomComponent, SideCtasComponent, SideCtasRightBottomComponent, SideCtasRightMiddleComponent, SideCtasRightTopComponent, SiteBackendService, SsrLoadingService, Themes, TransferStateService, WhatsappComponent, formatPhone, getSiteUrl, removeDuplicateObjectsFromArray, removeDuplicateValuesFromArray, removeHtmlTags, toQueryParams };
|
|
19235
|
+
export { AbstractModalComponent, AbstractModalDrawerComponent, AlgoliaComponent, AlgoliaSearchApiService, AlgoliaService, BreadcrumbsComponent, CtaWrapperComponent, CuraService, EnumDoencaTaxonomy, EnumDoencaTaxonomyCat, ErrorComponent, ErrorService, Errors, Estados, FilterLetterAndTermsComponent, FooterComponent, FooterDisclaimerComponent, FooterMenuComponent, FooterMenuItemComponent, FooterSocialMediasComponent, HeaderActionMenuComponent, HeaderAuxMenuComponent, HeaderAuxMenuContainerComponent, HeaderAuxMenuItemComponent, HeaderAuxMenuItemDropdownComponent, HeaderComponent, HeaderLogoComponent, HeaderMainMenuComponent, HeaderMainMenuItemComponent, HeaderMainMenuItemDropdownComponent, HeaderService, HeaderSideMenuComponent, HeaderSideMenuItemComponent, HttpClientService, IconCuraDefaultType, LIB_CONFIG, LoadScreenComponent, LogService, ModalDrawerService, ModalService, NguCarouselService, OverlayComponent, PageHeaderComponent, PageTemplateSidebarComponent, PhonePipe, PhoneService, PrivacyToolsService, REQUEST, RESPONSE, RdsiteClickOutsideDirective, RdsiteLinkDirective, RdsiteModalComponentStyle, RdsiteModalDrawerComponentStyle, RdsitePhoneModalDirective, SSR_CURA_API, SearchComponent, SectionNavigationComponent, SeoService, ServerResponseService, SideCtasBottomComponent, SideCtasComponent, SideCtasRightBottomComponent, SideCtasRightMiddleComponent, SideCtasRightTopComponent, SiteBackendService, SsrLoadingService, Themes, TransferStateService, WhatsappComponent, formatPhone, getSiteUrl, removeDuplicateObjectsFromArray, removeDuplicateValuesFromArray, removeHtmlTags, toQueryParams };
|
|
19138
19236
|
//# sourceMappingURL=rededor-site-front-end-lib.mjs.map
|