@schenkerjon/ng-govbr-tw 0.0.1
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/README.md +24 -0
- package/esm2022/lib/components/badge/br-badge.component.mjs +42 -0
- package/esm2022/lib/components/button/br-button.component.mjs +93 -0
- package/esm2022/lib/components/card/br-card.component.mjs +65 -0
- package/esm2022/lib/components/footer/br-footer.component.mjs +56 -0
- package/esm2022/lib/components/header/br-header.component.mjs +133 -0
- package/esm2022/lib/components/input/br-input.component.mjs +219 -0
- package/esm2022/lib/components/layout/br-layout.component.mjs +54 -0
- package/esm2022/lib/components/menu/br-menu-item.component.mjs +49 -0
- package/esm2022/lib/components/menu/br-menu.component.mjs +26 -0
- package/esm2022/lib/components/message/br-message.component.mjs +90 -0
- package/esm2022/lib/components/table/br-table.component.mjs +143 -0
- package/esm2022/public-api.mjs +16 -0
- package/esm2022/schenkerjon-ng-govbr-tw.mjs +5 -0
- package/fesm2022/schenkerjon-ng-govbr-tw.mjs +943 -0
- package/fesm2022/schenkerjon-ng-govbr-tw.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/badge/br-badge.component.d.ts +7 -0
- package/lib/components/button/br-button.component.d.ts +17 -0
- package/lib/components/card/br-card.component.d.ts +8 -0
- package/lib/components/footer/br-footer.component.d.ts +6 -0
- package/lib/components/header/br-header.component.d.ts +13 -0
- package/lib/components/input/br-input.component.d.ts +28 -0
- package/lib/components/layout/br-layout.component.d.ts +5 -0
- package/lib/components/menu/br-menu-item.component.d.ts +8 -0
- package/lib/components/menu/br-menu.component.d.ts +5 -0
- package/lib/components/message/br-message.component.d.ts +13 -0
- package/lib/components/table/br-table.component.d.ts +12 -0
- package/package.json +43 -0
- package/public-api.d.ts +11 -0
- package/src/lib/styles/govbr-tw.css +71 -0
- package/tailwind.preset.js +54 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# GovbrTw
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project ng-govbr-tw` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ng-govbr-tw`.
|
|
8
|
+
> Note: Don't forget to add `--project ng-govbr-tw` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build ng-govbr-tw` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build ng-govbr-tw`, go to the dist folder `cd dist/ng-govbr-tw` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test ng-govbr-tw` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class BrBadgeComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.variant = 'primary';
|
|
7
|
+
}
|
|
8
|
+
get badgeClasses() {
|
|
9
|
+
const base = 'inline-flex items-center px-2.5 py-0.5 rounded-govbr-pill text-xs font-semibold font-rawline';
|
|
10
|
+
const variants = {
|
|
11
|
+
primary: 'bg-govbr-primary text-white',
|
|
12
|
+
success: 'bg-govbr-success text-white',
|
|
13
|
+
danger: 'bg-govbr-danger text-white',
|
|
14
|
+
warning: 'bg-govbr-warning-bg text-govbr-gray-80',
|
|
15
|
+
neutral: 'bg-govbr-gray-5 text-govbr-gray-80',
|
|
16
|
+
};
|
|
17
|
+
return `${base} ${variants[this.variant]}`;
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrBadgeComponent, isStandalone: true, selector: "br-badge", inputs: { variant: "variant" }, ngImport: i0, template: `
|
|
21
|
+
<span [class]="badgeClasses">
|
|
22
|
+
<ng-content></ng-content>
|
|
23
|
+
</span>
|
|
24
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrBadgeComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'br-badge',
|
|
30
|
+
standalone: true,
|
|
31
|
+
imports: [CommonModule],
|
|
32
|
+
encapsulation: ViewEncapsulation.None,
|
|
33
|
+
template: `
|
|
34
|
+
<span [class]="badgeClasses">
|
|
35
|
+
<ng-content></ng-content>
|
|
36
|
+
</span>
|
|
37
|
+
`,
|
|
38
|
+
}]
|
|
39
|
+
}], propDecorators: { variant: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZ292YnItdHcvc3JjL2xpYi9jb21wb25lbnRzL2JhZGdlL2JyLWJhZGdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYS9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFYN0I7UUFZVyxZQUFPLEdBQTZELFNBQVMsQ0FBQztLQWV4RjtJQWJDLElBQUksWUFBWTtRQUNkLE1BQU0sSUFBSSxHQUFHLDhGQUE4RixDQUFDO1FBRTVHLE1BQU0sUUFBUSxHQUEyQjtZQUN2QyxPQUFPLEVBQUUsNkJBQTZCO1lBQ3RDLE9BQU8sRUFBRSw2QkFBNkI7WUFDdEMsTUFBTSxFQUFFLDRCQUE0QjtZQUNwQyxPQUFPLEVBQUUsd0NBQXdDO1lBQ2pELE9BQU8sRUFBRSxvQ0FBb0M7U0FDOUMsQ0FBQztRQUVGLE9BQU8sR0FBRyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7K0dBZlUsZ0JBQWdCO21HQUFoQixnQkFBZ0Isb0dBTmpCOzs7O0dBSVQsMkRBTlMsWUFBWTs7NEZBUVgsZ0JBQWdCO2tCQVg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ0Y7OEJBRVUsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JyLWJhZGdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gW2NsYXNzXT1cImJhZGdlQ2xhc3Nlc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnJCYWRnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ25ldXRyYWwnID0gJ3ByaW1hcnknO1xuXG4gIGdldCBiYWRnZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID0gJ2lubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBweC0yLjUgcHktMC41IHJvdW5kZWQtZ292YnItcGlsbCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgZm9udC1yYXdsaW5lJztcblxuICAgIGNvbnN0IHZhcmlhbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgcHJpbWFyeTogJ2JnLWdvdmJyLXByaW1hcnkgdGV4dC13aGl0ZScsXG4gICAgICBzdWNjZXNzOiAnYmctZ292YnItc3VjY2VzcyB0ZXh0LXdoaXRlJyxcbiAgICAgIGRhbmdlcjogJ2JnLWdvdmJyLWRhbmdlciB0ZXh0LXdoaXRlJyxcbiAgICAgIHdhcm5pbmc6ICdiZy1nb3Zici13YXJuaW5nLWJnIHRleHQtZ292YnItZ3JheS04MCcsXG4gICAgICBuZXV0cmFsOiAnYmctZ292YnItZ3JheS01IHRleHQtZ292YnItZ3JheS04MCcsXG4gICAgfTtcblxuICAgIHJldHVybiBgJHtiYXNlfSAke3ZhcmlhbnRzW3RoaXMudmFyaWFudF19YDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class BrButtonComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.variant = 'primary';
|
|
8
|
+
this.size = 'medium';
|
|
9
|
+
this.type = 'button';
|
|
10
|
+
this.circle = false;
|
|
11
|
+
this.block = false;
|
|
12
|
+
this.loading = false;
|
|
13
|
+
this.disabled = false;
|
|
14
|
+
this.onClick = new EventEmitter();
|
|
15
|
+
}
|
|
16
|
+
get buttonClasses() {
|
|
17
|
+
const base = 'inline-flex items-center justify-center font-rawline font-semibold transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2';
|
|
18
|
+
const variants = {
|
|
19
|
+
primary: 'bg-govbr-primary text-white hover:bg-govbr-primary-dark focus:ring-govbr-primary',
|
|
20
|
+
secondary: 'bg-transparent text-govbr-primary border border-govbr-primary hover:bg-govbr-primary hover:text-white focus:ring-govbr-primary',
|
|
21
|
+
danger: 'bg-govbr-danger text-white hover:bg-red-700 focus:ring-govbr-danger',
|
|
22
|
+
};
|
|
23
|
+
const sizes = {
|
|
24
|
+
small: this.circle ? 'w-8 h-8 text-sm' : 'px-3 py-1.5 text-sm',
|
|
25
|
+
medium: this.circle ? 'w-10 h-10 text-base' : 'px-5 py-2 text-base',
|
|
26
|
+
large: this.circle ? 'w-12 h-12 text-lg' : 'px-7 py-3 text-lg',
|
|
27
|
+
};
|
|
28
|
+
const shape = this.circle ? 'rounded-full' : 'rounded-govbr-pill';
|
|
29
|
+
const width = this.block ? 'w-full' : '';
|
|
30
|
+
const disabledCls = this.disabled || this.loading ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer';
|
|
31
|
+
return [base, variants[this.variant], sizes[this.size], shape, width, disabledCls]
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.join(' ');
|
|
34
|
+
}
|
|
35
|
+
handleClick(event) {
|
|
36
|
+
if (!this.disabled && !this.loading) {
|
|
37
|
+
this.onClick.emit(event);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrButtonComponent, isStandalone: true, selector: "br-button", inputs: { variant: "variant", size: "size", type: "type", circle: "circle", block: "block", icon: "icon", loading: "loading", disabled: "disabled" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
42
|
+
<button
|
|
43
|
+
[type]="type"
|
|
44
|
+
[disabled]="disabled || loading"
|
|
45
|
+
[class]="buttonClasses"
|
|
46
|
+
(click)="handleClick($event)"
|
|
47
|
+
>
|
|
48
|
+
<i *ngIf="loading" class="fa-solid fa-spinner fa-spin mr-2"></i>
|
|
49
|
+
<i *ngIf="icon && !loading" [class]="'fa-solid fa-' + icon + (circle ? '' : ' mr-2')"></i>
|
|
50
|
+
<span *ngIf="!circle"><ng-content></ng-content></span>
|
|
51
|
+
</button>
|
|
52
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrButtonComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{
|
|
57
|
+
selector: 'br-button',
|
|
58
|
+
standalone: true,
|
|
59
|
+
imports: [CommonModule],
|
|
60
|
+
encapsulation: ViewEncapsulation.None,
|
|
61
|
+
template: `
|
|
62
|
+
<button
|
|
63
|
+
[type]="type"
|
|
64
|
+
[disabled]="disabled || loading"
|
|
65
|
+
[class]="buttonClasses"
|
|
66
|
+
(click)="handleClick($event)"
|
|
67
|
+
>
|
|
68
|
+
<i *ngIf="loading" class="fa-solid fa-spinner fa-spin mr-2"></i>
|
|
69
|
+
<i *ngIf="icon && !loading" [class]="'fa-solid fa-' + icon + (circle ? '' : ' mr-2')"></i>
|
|
70
|
+
<span *ngIf="!circle"><ng-content></ng-content></span>
|
|
71
|
+
</button>
|
|
72
|
+
`,
|
|
73
|
+
}]
|
|
74
|
+
}], propDecorators: { variant: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], size: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], type: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], circle: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], block: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], icon: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], loading: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], disabled: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], onClick: [{
|
|
91
|
+
type: Output
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWdvdmJyLXR3L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnItYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBb0IvQyxNQUFNLE9BQU8saUJBQWlCO0lBbEI5QjtRQW1CVyxZQUFPLEdBQXVDLFNBQVMsQ0FBQztRQUN4RCxTQUFJLEdBQWlDLFFBQVEsQ0FBQztRQUM5QyxTQUFJLEdBQWtDLFFBQVEsQ0FBQztRQUMvQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztLQW1DcEQ7SUFqQ0MsSUFBSSxhQUFhO1FBQ2YsTUFBTSxJQUFJLEdBQ1IsdUpBQXVKLENBQUM7UUFFMUosTUFBTSxRQUFRLEdBQTJCO1lBQ3ZDLE9BQU8sRUFDTCxrRkFBa0Y7WUFDcEYsU0FBUyxFQUNQLGdJQUFnSTtZQUNsSSxNQUFNLEVBQ0oscUVBQXFFO1NBQ3hFLENBQUM7UUFFRixNQUFNLEtBQUssR0FBMkI7WUFDcEMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxxQkFBcUI7WUFDOUQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxxQkFBcUI7WUFDbkUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxtQkFBbUI7U0FDL0QsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFFdkcsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUM7YUFDL0UsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7K0dBM0NVLGlCQUFpQjttR0FBakIsaUJBQWlCLDRQQWJsQjs7Ozs7Ozs7Ozs7R0FXVCwyREFiUyxZQUFZOzs0RkFlWCxpQkFBaUI7a0JBbEI3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO2lCQUNGOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JyLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIlxuICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzZXNcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIDxpICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiZmEtc29saWQgZmEtc3Bpbm5lciBmYS1zcGluIG1yLTJcIj48L2k+XG4gICAgICA8aSAqbmdJZj1cImljb24gJiYgIWxvYWRpbmdcIiBbY2xhc3NdPVwiJ2ZhLXNvbGlkIGZhLScgKyBpY29uICsgKGNpcmNsZSA/ICcnIDogJyBtci0yJylcIj48L2k+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFjaXJjbGVcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBCckJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2RhbmdlcicgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJztcbiAgQElucHV0KCkgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCcgPSAnYnV0dG9uJztcbiAgQElucHV0KCkgY2lyY2xlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJsb2NrID0gZmFsc2U7XG4gIEBJbnB1dCgpIGljb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgZ2V0IGJ1dHRvbkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID1cbiAgICAgICdpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZm9udC1yYXdsaW5lIGZvbnQtc2VtaWJvbGQgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMic7XG5cbiAgICBjb25zdCB2YXJpYW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHByaW1hcnk6XG4gICAgICAgICdiZy1nb3Zici1wcmltYXJ5IHRleHQtd2hpdGUgaG92ZXI6YmctZ292YnItcHJpbWFyeS1kYXJrIGZvY3VzOnJpbmctZ292YnItcHJpbWFyeScsXG4gICAgICBzZWNvbmRhcnk6XG4gICAgICAgICdiZy10cmFuc3BhcmVudCB0ZXh0LWdvdmJyLXByaW1hcnkgYm9yZGVyIGJvcmRlci1nb3Zici1wcmltYXJ5IGhvdmVyOmJnLWdvdmJyLXByaW1hcnkgaG92ZXI6dGV4dC13aGl0ZSBmb2N1czpyaW5nLWdvdmJyLXByaW1hcnknLFxuICAgICAgZGFuZ2VyOlxuICAgICAgICAnYmctZ292YnItZGFuZ2VyIHRleHQtd2hpdGUgaG92ZXI6YmctcmVkLTcwMCBmb2N1czpyaW5nLWdvdmJyLWRhbmdlcicsXG4gICAgfTtcblxuICAgIGNvbnN0IHNpemVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgc21hbGw6IHRoaXMuY2lyY2xlID8gJ3ctOCBoLTggdGV4dC1zbScgOiAncHgtMyBweS0xLjUgdGV4dC1zbScsXG4gICAgICBtZWRpdW06IHRoaXMuY2lyY2xlID8gJ3ctMTAgaC0xMCB0ZXh0LWJhc2UnIDogJ3B4LTUgcHktMiB0ZXh0LWJhc2UnLFxuICAgICAgbGFyZ2U6IHRoaXMuY2lyY2xlID8gJ3ctMTIgaC0xMiB0ZXh0LWxnJyA6ICdweC03IHB5LTMgdGV4dC1sZycsXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXBlID0gdGhpcy5jaXJjbGUgPyAncm91bmRlZC1mdWxsJyA6ICdyb3VuZGVkLWdvdmJyLXBpbGwnO1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5ibG9jayA/ICd3LWZ1bGwnIDogJyc7XG4gICAgY29uc3QgZGlzYWJsZWRDbHMgPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZyA/ICdvcGFjaXR5LTUwIGN1cnNvci1ub3QtYWxsb3dlZCcgOiAnY3Vyc29yLXBvaW50ZXInO1xuXG4gICAgcmV0dXJuIFtiYXNlLCB2YXJpYW50c1t0aGlzLnZhcmlhbnRdLCBzaXplc1t0aGlzLnNpemVdLCBzaGFwZSwgd2lkdGgsIGRpc2FibGVkQ2xzXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
export class BrCardComponent {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrCardComponent, isStandalone: true, selector: "br-card", inputs: { icon: "icon", linkText: "linkText", linkRoute: "linkRoute" }, ngImport: i0, template: `
|
|
10
|
+
<div class="bg-white rounded border border-govbr-gray-5 shadow-sm hover:shadow-md transition-shadow font-rawline overflow-hidden">
|
|
11
|
+
<div class="p-6">
|
|
12
|
+
<div *ngIf="icon" class="mb-3">
|
|
13
|
+
<i [class]="'fa-solid fa-' + icon + ' text-govbr-primary text-2xl'"></i>
|
|
14
|
+
</div>
|
|
15
|
+
<ng-content></ng-content>
|
|
16
|
+
</div>
|
|
17
|
+
<div *ngIf="linkText" class="px-6 pb-4">
|
|
18
|
+
<a
|
|
19
|
+
*ngIf="linkRoute"
|
|
20
|
+
[routerLink]="linkRoute"
|
|
21
|
+
class="text-govbr-primary text-sm font-semibold hover:underline inline-flex items-center"
|
|
22
|
+
>
|
|
23
|
+
{{ linkText }}
|
|
24
|
+
<i class="fa-solid fa-arrow-right ml-1 text-xs"></i>
|
|
25
|
+
</a>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrCardComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: 'br-card',
|
|
34
|
+
standalone: true,
|
|
35
|
+
imports: [CommonModule, RouterModule],
|
|
36
|
+
encapsulation: ViewEncapsulation.None,
|
|
37
|
+
template: `
|
|
38
|
+
<div class="bg-white rounded border border-govbr-gray-5 shadow-sm hover:shadow-md transition-shadow font-rawline overflow-hidden">
|
|
39
|
+
<div class="p-6">
|
|
40
|
+
<div *ngIf="icon" class="mb-3">
|
|
41
|
+
<i [class]="'fa-solid fa-' + icon + ' text-govbr-primary text-2xl'"></i>
|
|
42
|
+
</div>
|
|
43
|
+
<ng-content></ng-content>
|
|
44
|
+
</div>
|
|
45
|
+
<div *ngIf="linkText" class="px-6 pb-4">
|
|
46
|
+
<a
|
|
47
|
+
*ngIf="linkRoute"
|
|
48
|
+
[routerLink]="linkRoute"
|
|
49
|
+
class="text-govbr-primary text-sm font-semibold hover:underline inline-flex items-center"
|
|
50
|
+
>
|
|
51
|
+
{{ linkText }}
|
|
52
|
+
<i class="fa-solid fa-arrow-right ml-1 text-xs"></i>
|
|
53
|
+
</a>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
`,
|
|
57
|
+
}]
|
|
58
|
+
}], propDecorators: { icon: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], linkText: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], linkRoute: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}] } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1nb3Zici10dy9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC9ici1jYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBNEIvQyxNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO21HQUFmLGVBQWUsMklBckJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVCwyREFyQlMsWUFBWSxrSUFBRSxZQUFZOzs0RkF1QnpCLGVBQWU7a0JBMUIzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtpQkFDRjs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdici1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZCBib3JkZXIgYm9yZGVyLWdvdmJyLWdyYXktNSBzaGFkb3ctc20gaG92ZXI6c2hhZG93LW1kIHRyYW5zaXRpb24tc2hhZG93IGZvbnQtcmF3bGluZSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTZcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImljb25cIiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZhLXNvbGlkIGZhLScgKyBpY29uICsgJyB0ZXh0LWdvdmJyLXByaW1hcnkgdGV4dC0yeGwnXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGlua1RleHRcIiBjbGFzcz1cInB4LTYgcGItNFwiPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwibGlua1JvdXRlXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJsaW5rUm91dGVcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1nb3Zici1wcmltYXJ5IHRleHQtc20gZm9udC1zZW1pYm9sZCBob3Zlcjp1bmRlcmxpbmUgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGxpbmtUZXh0IH19XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1hcnJvdy1yaWdodCBtbC0xIHRleHQteHNcIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBCckNhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBsaW5rVGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgbGlua1JvdXRlPzogc3RyaW5nIHwgYW55W107XG59XG4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class BrFooterComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.logoSrc = '';
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrFooterComponent, isStandalone: true, selector: "br-footer", inputs: { logoSrc: "logoSrc" }, ngImport: i0, template: `
|
|
11
|
+
<footer class="bg-govbr-primary-darkest text-white font-rawline mt-auto">
|
|
12
|
+
<div class="max-w-screen-xl mx-auto px-4 py-6">
|
|
13
|
+
<div class="flex flex-col md:flex-row items-center justify-between gap-4">
|
|
14
|
+
<img
|
|
15
|
+
*ngIf="logoSrc"
|
|
16
|
+
[src]="logoSrc"
|
|
17
|
+
alt="Logo"
|
|
18
|
+
class="h-8 brightness-0 invert"
|
|
19
|
+
/>
|
|
20
|
+
<div class="text-center md:text-right text-sm opacity-80">
|
|
21
|
+
<ng-content></ng-content>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</footer>
|
|
26
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrFooterComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'br-footer',
|
|
32
|
+
standalone: true,
|
|
33
|
+
imports: [CommonModule],
|
|
34
|
+
encapsulation: ViewEncapsulation.None,
|
|
35
|
+
template: `
|
|
36
|
+
<footer class="bg-govbr-primary-darkest text-white font-rawline mt-auto">
|
|
37
|
+
<div class="max-w-screen-xl mx-auto px-4 py-6">
|
|
38
|
+
<div class="flex flex-col md:flex-row items-center justify-between gap-4">
|
|
39
|
+
<img
|
|
40
|
+
*ngIf="logoSrc"
|
|
41
|
+
[src]="logoSrc"
|
|
42
|
+
alt="Logo"
|
|
43
|
+
class="h-8 brightness-0 invert"
|
|
44
|
+
/>
|
|
45
|
+
<div class="text-center md:text-right text-sm opacity-80">
|
|
46
|
+
<ng-content></ng-content>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</footer>
|
|
51
|
+
`,
|
|
52
|
+
}]
|
|
53
|
+
}], propDecorators: { logoSrc: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}] } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWdvdmJyLXR3L3NyYy9saWIvY29tcG9uZW50cy9mb290ZXIvYnItZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQXlCL0MsTUFBTSxPQUFPLGlCQUFpQjtJQXZCOUI7UUF3QlcsWUFBTyxHQUFHLEVBQUUsQ0FBQztLQUN2QjsrR0FGWSxpQkFBaUI7bUdBQWpCLGlCQUFpQixxR0FsQmxCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULDJEQWxCUyxZQUFZOzs0RkFvQlgsaUJBQWlCO2tCQXZCN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDtpQkFDRjs4QkFFVSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnItZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGZvb3RlciBjbGFzcz1cImJnLWdvdmJyLXByaW1hcnktZGFya2VzdCB0ZXh0LXdoaXRlIGZvbnQtcmF3bGluZSBtdC1hdXRvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG8gcHgtNCBweS02XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTRcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdJZj1cImxvZ29TcmNcIlxuICAgICAgICAgICAgW3NyY109XCJsb2dvU3JjXCJcbiAgICAgICAgICAgIGFsdD1cIkxvZ29cIlxuICAgICAgICAgICAgY2xhc3M9XCJoLTggYnJpZ2h0bmVzcy0wIGludmVydFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbWQ6dGV4dC1yaWdodCB0ZXh0LXNtIG9wYWNpdHktODBcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnJGb290ZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBsb2dvU3JjID0gJyc7XG59XG4iXX0=
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Component, ContentChild, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class BrHeaderComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.systemTitle = '';
|
|
8
|
+
this.logoSrc = '';
|
|
9
|
+
this.logout = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrHeaderComponent, isStandalone: true, selector: "br-header", inputs: { systemTitle: "systemTitle", systemSubtitle: "systemSubtitle", logoSrc: "logoSrc", userName: "userName", userRole: "userRole" }, outputs: { logout: "logout" }, queries: [{ propertyName: "quickAccessItems", first: true, predicate: ["quickAccessItems"], descendants: true }], ngImport: i0, template: `
|
|
13
|
+
<!-- Top bar -->
|
|
14
|
+
<div style="background-color:#071d41;color:#ffffff;font-size:12px;padding:4px 16px;font-family:'Rawline','Raleway',sans-serif;">
|
|
15
|
+
<div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;">
|
|
16
|
+
<ng-container *ngIf="quickAccessItems; else defaultQuickAccess">
|
|
17
|
+
<ng-container *ngTemplateOutlet="quickAccessItems"></ng-container>
|
|
18
|
+
</ng-container>
|
|
19
|
+
<ng-template #defaultQuickAccess>
|
|
20
|
+
<span></span>
|
|
21
|
+
</ng-template>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<!-- Main header -->
|
|
26
|
+
<header style="background-color:#1351b4;color:#ffffff;font-family:'Rawline','Raleway',sans-serif;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1);">
|
|
27
|
+
<div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;">
|
|
28
|
+
<!-- Logo + Title -->
|
|
29
|
+
<div style="display:flex;align-items:center;gap:16px;">
|
|
30
|
+
<img
|
|
31
|
+
*ngIf="logoSrc"
|
|
32
|
+
[src]="logoSrc"
|
|
33
|
+
[alt]="systemTitle"
|
|
34
|
+
style="height:40px;"
|
|
35
|
+
/>
|
|
36
|
+
<div>
|
|
37
|
+
<h1 style="font-size:18px;font-weight:700;line-height:1.25;color:#ffffff;margin:0;">{{ systemTitle }}</h1>
|
|
38
|
+
<p *ngIf="systemSubtitle" style="font-size:12px;opacity:0.8;color:#ffffff;margin:0;">{{ systemSubtitle }}</p>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<!-- User area -->
|
|
43
|
+
<div *ngIf="userName" style="display:flex;align-items:center;gap:12px;">
|
|
44
|
+
<div style="text-align:right;">
|
|
45
|
+
<span style="display:block;font-size:14px;font-weight:600;color:#ffffff;">{{ userName }}</span>
|
|
46
|
+
<span *ngIf="userRole" style="display:block;font-size:12px;opacity:0.8;color:#ffffff;">{{ userRole }}</span>
|
|
47
|
+
</div>
|
|
48
|
+
<button
|
|
49
|
+
type="button"
|
|
50
|
+
style="margin-left:8px;padding:8px;border-radius:50%;border:none;background:transparent;color:#ffffff;cursor:pointer;"
|
|
51
|
+
(click)="logout.emit()"
|
|
52
|
+
title="Sair"
|
|
53
|
+
>
|
|
54
|
+
<i class="fa-solid fa-right-from-bracket"></i>
|
|
55
|
+
</button>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</header>
|
|
59
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrHeaderComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{
|
|
64
|
+
selector: 'br-header',
|
|
65
|
+
standalone: true,
|
|
66
|
+
imports: [CommonModule],
|
|
67
|
+
encapsulation: ViewEncapsulation.None,
|
|
68
|
+
template: `
|
|
69
|
+
<!-- Top bar -->
|
|
70
|
+
<div style="background-color:#071d41;color:#ffffff;font-size:12px;padding:4px 16px;font-family:'Rawline','Raleway',sans-serif;">
|
|
71
|
+
<div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;">
|
|
72
|
+
<ng-container *ngIf="quickAccessItems; else defaultQuickAccess">
|
|
73
|
+
<ng-container *ngTemplateOutlet="quickAccessItems"></ng-container>
|
|
74
|
+
</ng-container>
|
|
75
|
+
<ng-template #defaultQuickAccess>
|
|
76
|
+
<span></span>
|
|
77
|
+
</ng-template>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<!-- Main header -->
|
|
82
|
+
<header style="background-color:#1351b4;color:#ffffff;font-family:'Rawline','Raleway',sans-serif;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1);">
|
|
83
|
+
<div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;">
|
|
84
|
+
<!-- Logo + Title -->
|
|
85
|
+
<div style="display:flex;align-items:center;gap:16px;">
|
|
86
|
+
<img
|
|
87
|
+
*ngIf="logoSrc"
|
|
88
|
+
[src]="logoSrc"
|
|
89
|
+
[alt]="systemTitle"
|
|
90
|
+
style="height:40px;"
|
|
91
|
+
/>
|
|
92
|
+
<div>
|
|
93
|
+
<h1 style="font-size:18px;font-weight:700;line-height:1.25;color:#ffffff;margin:0;">{{ systemTitle }}</h1>
|
|
94
|
+
<p *ngIf="systemSubtitle" style="font-size:12px;opacity:0.8;color:#ffffff;margin:0;">{{ systemSubtitle }}</p>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<!-- User area -->
|
|
99
|
+
<div *ngIf="userName" style="display:flex;align-items:center;gap:12px;">
|
|
100
|
+
<div style="text-align:right;">
|
|
101
|
+
<span style="display:block;font-size:14px;font-weight:600;color:#ffffff;">{{ userName }}</span>
|
|
102
|
+
<span *ngIf="userRole" style="display:block;font-size:12px;opacity:0.8;color:#ffffff;">{{ userRole }}</span>
|
|
103
|
+
</div>
|
|
104
|
+
<button
|
|
105
|
+
type="button"
|
|
106
|
+
style="margin-left:8px;padding:8px;border-radius:50%;border:none;background:transparent;color:#ffffff;cursor:pointer;"
|
|
107
|
+
(click)="logout.emit()"
|
|
108
|
+
title="Sair"
|
|
109
|
+
>
|
|
110
|
+
<i class="fa-solid fa-right-from-bracket"></i>
|
|
111
|
+
</button>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</header>
|
|
115
|
+
`,
|
|
116
|
+
}]
|
|
117
|
+
}], propDecorators: { systemTitle: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], systemSubtitle: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], logoSrc: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], userName: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], userRole: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], logout: [{
|
|
128
|
+
type: Output
|
|
129
|
+
}], quickAccessItems: [{
|
|
130
|
+
type: ContentChild,
|
|
131
|
+
args: ['quickAccessItems']
|
|
132
|
+
}] } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWdvdmJyLXR3L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnItaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUF3RC9DLE1BQU0sT0FBTyxpQkFBaUI7SUF0RDlCO1FBdURXLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFHWixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQUU3QzsrR0FSWSxpQkFBaUI7bUdBQWpCLGlCQUFpQixnV0FqRGxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVCwyREFqRFMsWUFBWTs7NEZBbURYLGlCQUFpQjtrQkF0RDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUO2lCQUNGOzhCQUVVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDMkIsZ0JBQWdCO3NCQUFqRCxZQUFZO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdici1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tIFRvcCBiYXIgLS0+XG4gICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IzA3MWQ0MTtjb2xvcjojZmZmZmZmO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6NHB4IDE2cHg7Zm9udC1mYW1pbHk6J1Jhd2xpbmUnLCdSYWxld2F5JyxzYW5zLXNlcmlmO1wiPlxuICAgICAgPGRpdiBzdHlsZT1cIm1heC13aWR0aDoxMjgwcHg7bWFyZ2luOjAgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVpY2tBY2Nlc3NJdGVtczsgZWxzZSBkZWZhdWx0UXVpY2tBY2Nlc3NcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicXVpY2tBY2Nlc3NJdGVtc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0UXVpY2tBY2Nlc3M+XG4gICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE1haW4gaGVhZGVyIC0tPlxuICAgIDxoZWFkZXIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiMxMzUxYjQ7Y29sb3I6I2ZmZmZmZjtmb250LWZhbWlseTonUmF3bGluZScsJ1JhbGV3YXknLHNhbnMtc2VyaWY7Ym94LXNoYWRvdzowIDRweCA2cHggLTFweCByZ2JhKDAsMCwwLDAuMSk7XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwibWF4LXdpZHRoOjEyODBweDttYXJnaW46MCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE2cHg7XCI+XG4gICAgICAgIDwhLS0gTG9nbyArIFRpdGxlIC0tPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTZweDtcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdJZj1cImxvZ29TcmNcIlxuICAgICAgICAgICAgW3NyY109XCJsb2dvU3JjXCJcbiAgICAgICAgICAgIFthbHRdPVwic3lzdGVtVGl0bGVcIlxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6NDBweDtcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMSBzdHlsZT1cImZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxLjI1O2NvbG9yOiNmZmZmZmY7bWFyZ2luOjA7XCI+e3sgc3lzdGVtVGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgPHAgKm5nSWY9XCJzeXN0ZW1TdWJ0aXRsZVwiIHN0eWxlPVwiZm9udC1zaXplOjEycHg7b3BhY2l0eTowLjg7Y29sb3I6I2ZmZmZmZjttYXJnaW46MDtcIj57eyBzeXN0ZW1TdWJ0aXRsZSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBVc2VyIGFyZWEgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyTmFtZVwiIHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtcIj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodDtcIj5cbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I2ZmZmZmZjtcIj57eyB1c2VyTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXNlclJvbGVcIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEycHg7b3BhY2l0eTowLjg7Y29sb3I6I2ZmZmZmZjtcIj57eyB1c2VyUm9sZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6OHB4O3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZmZmZjtjdXJzb3I6cG9pbnRlcjtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImxvZ291dC5lbWl0KClcIlxuICAgICAgICAgICAgdGl0bGU9XCJTYWlyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXJpZ2h0LWZyb20tYnJhY2tldFwiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2hlYWRlcj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnJIZWFkZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzeXN0ZW1UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBzeXN0ZW1TdWJ0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgbG9nb1NyYyA9ICcnO1xuICBASW5wdXQoKSB1c2VyTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgdXNlclJvbGU/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBsb2dvdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBDb250ZW50Q2hpbGQoJ3F1aWNrQWNjZXNzSXRlbXMnKSBxdWlja0FjY2Vzc0l0ZW1zPzogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbiJdfQ==
|