ng-prime-tools 1.0.8 → 1.0.10
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 +35 -9
- package/esm2022/lib/enums/badge-type.enum.mjs +21 -0
- package/esm2022/lib/enums/form-input-type.enum.mjs +2 -1
- package/esm2022/lib/enums/public-api.mjs +2 -1
- package/esm2022/lib/models/badge.model.mjs +2 -0
- package/esm2022/lib/models/bread-crumb-config.model.mjs +2 -0
- package/esm2022/lib/models/button.model.mjs +2 -0
- package/esm2022/lib/models/card-config.model.mjs +2 -0
- package/esm2022/lib/models/chart-config.model.mjs +2 -0
- package/esm2022/lib/models/dialog.model.mjs +2 -0
- package/esm2022/lib/models/footer-config.model.mjs +2 -0
- package/esm2022/lib/models/footer.model.mjs +2 -0
- package/esm2022/lib/models/form-text-field.model.mjs +1 -1
- package/esm2022/lib/models/icon-style.model.mjs +2 -0
- package/esm2022/lib/models/image-style.model.mjs +2 -0
- package/esm2022/lib/models/index.mjs +1 -5
- package/esm2022/lib/models/login-model.mjs +2 -0
- package/esm2022/lib/models/login-page-config.model.mjs +2 -0
- package/esm2022/lib/models/menu-config.model.mjs +2 -0
- package/esm2022/lib/models/menu-item.model.mjs +2 -0
- package/esm2022/lib/models/menu.model.mjs +2 -0
- package/esm2022/lib/models/metric-card-data.model.mjs +2 -0
- package/esm2022/lib/models/nav-bar-menu-config.model.mjs +2 -0
- package/esm2022/lib/models/page-skeleton-config.model.mjs +2 -0
- package/esm2022/lib/models/pattern.model.mjs +2 -0
- package/esm2022/lib/models/public-api.mjs +37 -1
- package/esm2022/lib/models/side-menu-bar-config.model.mjs +2 -0
- package/esm2022/lib/models/table-column.model.mjs +1 -1
- package/esm2022/lib/models/text-style.model.mjs +2 -0
- package/esm2022/lib/models/title-style.model.mjs +2 -0
- package/esm2022/lib/multi-search-criteria/index.mjs +2 -6
- package/esm2022/lib/multi-search-criteria/multi-search-criteria.component.mjs +3 -3
- package/esm2022/lib/multi-search-criteria/public-api.mjs +3 -0
- package/esm2022/lib/ng-advanced-prime-table/index.mjs +2 -6
- package/esm2022/lib/ng-advanced-prime-table/ng-advanced-prime-table.component.mjs +14 -3
- package/esm2022/lib/ng-advanced-prime-table/ng-advanced-prime-table.module.mjs +7 -3
- package/esm2022/lib/ng-advanced-prime-table/public-api.mjs +3 -0
- package/esm2022/lib/ng-prime-tools.module.mjs +175 -5
- package/esm2022/lib/pt-bread-crumb/index.mjs +2 -0
- package/esm2022/lib/pt-bread-crumb/pt-bread-crumb.component.mjs +50 -0
- package/esm2022/lib/pt-bread-crumb/pt-bread-crumb.module.mjs +19 -0
- package/esm2022/lib/pt-bread-crumb/pt-bread-crumb.service.mjs +92 -0
- package/esm2022/lib/pt-bread-crumb/public-api.mjs +3 -0
- package/esm2022/lib/pt-button/index.mjs +2 -0
- package/esm2022/lib/pt-button/pt-button.component.mjs +56 -0
- package/esm2022/lib/pt-button/pt-button.module.mjs +19 -0
- package/esm2022/lib/pt-button/public-api.mjs +3 -0
- package/esm2022/lib/pt-card/index.mjs +2 -0
- package/esm2022/lib/pt-card/pt-card.component.mjs +115 -0
- package/esm2022/lib/pt-card/pt-card.module.mjs +19 -0
- package/esm2022/lib/pt-card/public-api.mjs +3 -0
- package/esm2022/lib/pt-chart/index.mjs +2 -0
- package/esm2022/lib/pt-chart/pt-chart.component.mjs +61 -0
- package/esm2022/lib/pt-chart/pt-chart.module.mjs +18 -0
- package/esm2022/lib/pt-chart/public-api.mjs +3 -0
- package/esm2022/lib/pt-dialog/index.mjs +2 -0
- package/esm2022/lib/pt-dialog/pt-dialog.component.mjs +92 -0
- package/esm2022/lib/pt-dialog/pt-dialog.module.mjs +36 -0
- package/esm2022/lib/pt-dialog/public-api.mjs +3 -0
- package/esm2022/lib/pt-footer/index.mjs +2 -0
- package/esm2022/lib/pt-footer/pt-footer.component.mjs +41 -0
- package/esm2022/lib/pt-footer/pt-footer.module.mjs +19 -0
- package/esm2022/lib/pt-footer/public-api.mjs +3 -0
- package/esm2022/lib/pt-login-page/index.mjs +2 -0
- package/esm2022/lib/pt-login-page/pt-login-page.component.mjs +142 -0
- package/esm2022/lib/pt-login-page/pt-login-page.module.mjs +39 -0
- package/esm2022/lib/pt-login-page/public-api.mjs +3 -0
- package/esm2022/lib/pt-menu/index.mjs +2 -0
- package/esm2022/lib/pt-menu/pt-menu.component.mjs +90 -0
- package/esm2022/lib/pt-menu/pt-menu.module.mjs +18 -0
- package/esm2022/lib/pt-menu/public-api.mjs +3 -0
- package/esm2022/lib/pt-menu-fancy/index.mjs +2 -0
- package/esm2022/lib/pt-menu-fancy/pt-menu-fancy.component.mjs +92 -0
- package/esm2022/lib/pt-menu-fancy/pt-menu-fancy.module.mjs +19 -0
- package/esm2022/lib/pt-menu-fancy/public-api.mjs +3 -0
- package/esm2022/lib/pt-metric-card/index.mjs +2 -0
- package/esm2022/lib/pt-metric-card/pt-metric-card.component.mjs +150 -0
- package/esm2022/lib/pt-metric-card/pt-metric-card.module.mjs +18 -0
- package/esm2022/lib/pt-metric-card/public-api.mjs +3 -0
- package/esm2022/lib/pt-metric-card-group/index.mjs +2 -0
- package/esm2022/lib/pt-metric-card-group/pt-metric-card-group.component.mjs +18 -0
- package/esm2022/lib/pt-metric-card-group/pt-metric-card-group.module.mjs +19 -0
- package/esm2022/lib/pt-metric-card-group/public-api.mjs +3 -0
- package/esm2022/lib/pt-nav-bar-menu/index.mjs +2 -0
- package/esm2022/lib/pt-nav-bar-menu/pt-nav-bar-menu.component.mjs +97 -0
- package/esm2022/lib/pt-nav-bar-menu/pt-nav-bar-menu.module.mjs +20 -0
- package/esm2022/lib/pt-nav-bar-menu/public-api.mjs +3 -0
- package/esm2022/lib/pt-page-skeleton/index.mjs +2 -0
- package/esm2022/lib/pt-page-skeleton/pt-page-skeleton.component.mjs +53 -0
- package/esm2022/lib/pt-page-skeleton/pt-page-skeleton.module.mjs +44 -0
- package/esm2022/lib/pt-page-skeleton/public-api.mjs +3 -0
- package/esm2022/lib/pt-side-bar-menu/index.mjs +2 -0
- package/esm2022/lib/pt-side-bar-menu/pt-side-bar-menu.component.mjs +206 -0
- package/esm2022/lib/pt-side-bar-menu/pt-side-bar-menu.module.mjs +21 -0
- package/esm2022/lib/pt-side-bar-menu/public-api.mjs +3 -0
- package/esm2022/lib/pt-text-area-input/pt-text-area-input.component.mjs +2 -2
- package/esm2022/lib/pt-text-input/pt-text-input.component.mjs +20 -4
- package/esm2022/public-api.mjs +30 -2
- package/fesm2022/ng-prime-tools.mjs +1780 -49
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/lib/enums/badge-type.enum.d.ts +20 -0
- package/lib/enums/badge-type.enum.d.ts.map +1 -0
- package/lib/enums/form-input-type.enum.d.ts +2 -1
- package/lib/enums/form-input-type.enum.d.ts.map +1 -1
- package/lib/enums/public-api.d.ts +1 -0
- package/lib/enums/public-api.d.ts.map +1 -1
- package/lib/models/badge.model.d.ts +8 -0
- package/lib/models/badge.model.d.ts.map +1 -0
- package/lib/models/bread-crumb-config.model.d.ts +7 -0
- package/lib/models/bread-crumb-config.model.d.ts.map +1 -0
- package/lib/models/button.model.d.ts +15 -0
- package/lib/models/button.model.d.ts.map +1 -0
- package/lib/models/card-config.model.d.ts +22 -0
- package/lib/models/card-config.model.d.ts.map +1 -0
- package/lib/models/chart-config.model.d.ts +18 -0
- package/lib/models/chart-config.model.d.ts.map +1 -0
- package/lib/models/dialog.model.d.ts +13 -0
- package/lib/models/dialog.model.d.ts.map +1 -0
- package/lib/models/footer-config.model.d.ts +8 -0
- package/lib/models/footer-config.model.d.ts.map +1 -0
- package/lib/models/footer.model.d.ts +5 -0
- package/lib/models/footer.model.d.ts.map +1 -0
- package/lib/models/form-text-field.model.d.ts +2 -0
- package/lib/models/form-text-field.model.d.ts.map +1 -1
- package/lib/models/icon-style.model.d.ts +7 -0
- package/lib/models/icon-style.model.d.ts.map +1 -0
- package/lib/models/image-style.model.d.ts +9 -0
- package/lib/models/image-style.model.d.ts.map +1 -0
- package/lib/models/index.d.ts +0 -4
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/login-model.d.ts +7 -0
- package/lib/models/login-model.d.ts.map +1 -0
- package/lib/models/login-page-config.model.d.ts +21 -0
- package/lib/models/login-page-config.model.d.ts.map +1 -0
- package/lib/models/menu-config.model.d.ts +10 -0
- package/lib/models/menu-config.model.d.ts.map +1 -0
- package/lib/models/menu-item.model.d.ts +7 -0
- package/lib/models/menu-item.model.d.ts.map +1 -0
- package/lib/models/menu.model.d.ts +13 -0
- package/lib/models/menu.model.d.ts.map +1 -0
- package/lib/models/metric-card-data.model.d.ts +35 -0
- package/lib/models/metric-card-data.model.d.ts.map +1 -0
- package/lib/models/nav-bar-menu-config.model.d.ts +11 -0
- package/lib/models/nav-bar-menu-config.model.d.ts.map +1 -0
- package/lib/models/page-skeleton-config.model.d.ts +14 -0
- package/lib/models/page-skeleton-config.model.d.ts.map +1 -0
- package/lib/models/pattern.model.d.ts +5 -0
- package/lib/models/pattern.model.d.ts.map +1 -0
- package/lib/models/public-api.d.ts +22 -0
- package/lib/models/public-api.d.ts.map +1 -1
- package/lib/models/side-menu-bar-config.model.d.ts +21 -0
- package/lib/models/side-menu-bar-config.model.d.ts.map +1 -0
- package/lib/models/table-column.model.d.ts +1 -0
- package/lib/models/table-column.model.d.ts.map +1 -1
- package/lib/models/text-style.model.d.ts +6 -0
- package/lib/models/text-style.model.d.ts.map +1 -0
- package/lib/models/title-style.model.d.ts +9 -0
- package/lib/models/title-style.model.d.ts.map +1 -0
- package/lib/multi-search-criteria/index.d.ts +1 -5
- package/lib/multi-search-criteria/index.d.ts.map +1 -1
- package/lib/multi-search-criteria/{public_api.d.ts → public-api.d.ts} +1 -1
- package/lib/multi-search-criteria/public-api.d.ts.map +1 -0
- package/lib/ng-advanced-prime-table/index.d.ts +1 -5
- package/lib/ng-advanced-prime-table/index.d.ts.map +1 -1
- package/lib/ng-advanced-prime-table/ng-advanced-prime-table.component.d.ts +5 -1
- package/lib/ng-advanced-prime-table/ng-advanced-prime-table.component.d.ts.map +1 -1
- package/lib/ng-advanced-prime-table/ng-advanced-prime-table.module.d.ts +2 -1
- package/lib/ng-advanced-prime-table/ng-advanced-prime-table.module.d.ts.map +1 -1
- package/lib/ng-advanced-prime-table/{public_api.d.ts → public-api.d.ts} +1 -1
- package/lib/ng-advanced-prime-table/public-api.d.ts.map +1 -0
- package/lib/ng-prime-tools.module.d.ts +15 -1
- package/lib/ng-prime-tools.module.d.ts.map +1 -1
- package/lib/pt-bread-crumb/index.d.ts +2 -0
- package/lib/pt-bread-crumb/index.d.ts.map +1 -0
- package/lib/pt-bread-crumb/pt-bread-crumb.component.d.ts +23 -0
- package/lib/pt-bread-crumb/pt-bread-crumb.component.d.ts.map +1 -0
- package/lib/pt-bread-crumb/pt-bread-crumb.module.d.ts +10 -0
- package/lib/pt-bread-crumb/pt-bread-crumb.module.d.ts.map +1 -0
- package/lib/pt-bread-crumb/pt-bread-crumb.service.d.ts +17 -0
- package/lib/pt-bread-crumb/pt-bread-crumb.service.d.ts.map +1 -0
- package/lib/pt-bread-crumb/public-api.d.ts +3 -0
- package/lib/pt-bread-crumb/public-api.d.ts.map +1 -0
- package/lib/pt-button/index.d.ts +2 -0
- package/lib/pt-button/index.d.ts.map +1 -0
- package/lib/pt-button/pt-button.component.d.ts +17 -0
- package/lib/pt-button/pt-button.component.d.ts.map +1 -0
- package/lib/pt-button/pt-button.module.d.ts +10 -0
- package/lib/pt-button/pt-button.module.d.ts.map +1 -0
- package/lib/pt-button/public-api.d.ts +3 -0
- package/lib/pt-button/public-api.d.ts.map +1 -0
- package/lib/pt-card/index.d.ts +2 -0
- package/lib/pt-card/index.d.ts.map +1 -0
- package/lib/pt-card/pt-card.component.d.ts +53 -0
- package/lib/pt-card/pt-card.component.d.ts.map +1 -0
- package/lib/pt-card/pt-card.module.d.ts +10 -0
- package/lib/pt-card/pt-card.module.d.ts.map +1 -0
- package/lib/pt-card/public-api.d.ts +3 -0
- package/lib/pt-card/public-api.d.ts.map +1 -0
- package/lib/pt-chart/index.d.ts +2 -0
- package/lib/pt-chart/index.d.ts.map +1 -0
- package/lib/pt-chart/pt-chart.component.d.ts +15 -0
- package/lib/pt-chart/pt-chart.component.d.ts.map +1 -0
- package/lib/pt-chart/pt-chart.module.d.ts +9 -0
- package/lib/pt-chart/pt-chart.module.d.ts.map +1 -0
- package/lib/pt-chart/public-api.d.ts +3 -0
- package/lib/pt-chart/public-api.d.ts.map +1 -0
- package/lib/pt-dialog/index.d.ts +2 -0
- package/lib/pt-dialog/index.d.ts.map +1 -0
- package/lib/pt-dialog/pt-dialog.component.d.ts +20 -0
- package/lib/pt-dialog/pt-dialog.component.d.ts.map +1 -0
- package/lib/pt-dialog/pt-dialog.module.d.ts +13 -0
- package/lib/pt-dialog/pt-dialog.module.d.ts.map +1 -0
- package/lib/pt-dialog/public-api.d.ts +3 -0
- package/lib/pt-dialog/public-api.d.ts.map +1 -0
- package/lib/pt-footer/index.d.ts +2 -0
- package/lib/pt-footer/index.d.ts.map +1 -0
- package/lib/pt-footer/pt-footer.component.d.ts +11 -0
- package/lib/pt-footer/pt-footer.component.d.ts.map +1 -0
- package/lib/pt-footer/pt-footer.module.d.ts +10 -0
- package/lib/pt-footer/pt-footer.module.d.ts.map +1 -0
- package/lib/pt-footer/public-api.d.ts +3 -0
- package/lib/pt-footer/public-api.d.ts.map +1 -0
- package/lib/pt-login-page/index.d.ts +2 -0
- package/lib/pt-login-page/index.d.ts.map +1 -0
- package/lib/pt-login-page/pt-login-page.component.d.ts +20 -0
- package/lib/pt-login-page/pt-login-page.component.d.ts.map +1 -0
- package/lib/pt-login-page/pt-login-page.module.d.ts +13 -0
- package/lib/pt-login-page/pt-login-page.module.d.ts.map +1 -0
- package/lib/pt-login-page/public-api.d.ts +3 -0
- package/lib/pt-login-page/public-api.d.ts.map +1 -0
- package/lib/pt-menu/index.d.ts +2 -0
- package/lib/pt-menu/index.d.ts.map +1 -0
- package/lib/pt-menu/pt-menu.component.d.ts +32 -0
- package/lib/pt-menu/pt-menu.component.d.ts.map +1 -0
- package/lib/pt-menu/pt-menu.module.d.ts +9 -0
- package/lib/pt-menu/pt-menu.module.d.ts.map +1 -0
- package/lib/pt-menu/public-api.d.ts +3 -0
- package/lib/pt-menu/public-api.d.ts.map +1 -0
- package/lib/pt-menu-fancy/index.d.ts +2 -0
- package/lib/pt-menu-fancy/index.d.ts.map +1 -0
- package/lib/pt-menu-fancy/pt-menu-fancy.component.d.ts +33 -0
- package/lib/pt-menu-fancy/pt-menu-fancy.component.d.ts.map +1 -0
- package/lib/pt-menu-fancy/pt-menu-fancy.module.d.ts +10 -0
- package/lib/pt-menu-fancy/pt-menu-fancy.module.d.ts.map +1 -0
- package/lib/pt-menu-fancy/public-api.d.ts +3 -0
- package/lib/pt-menu-fancy/public-api.d.ts.map +1 -0
- package/lib/pt-metric-card/index.d.ts +2 -0
- package/lib/pt-metric-card/index.d.ts.map +1 -0
- package/lib/pt-metric-card/pt-metric-card.component.d.ts +60 -0
- package/lib/pt-metric-card/pt-metric-card.component.d.ts.map +1 -0
- package/lib/pt-metric-card/pt-metric-card.module.d.ts +9 -0
- package/lib/pt-metric-card/pt-metric-card.module.d.ts.map +1 -0
- package/lib/pt-metric-card/public-api.d.ts +3 -0
- package/lib/pt-metric-card/public-api.d.ts.map +1 -0
- package/lib/pt-metric-card-group/index.d.ts +2 -0
- package/lib/pt-metric-card-group/index.d.ts.map +1 -0
- package/lib/pt-metric-card-group/pt-metric-card-group.component.d.ts +8 -0
- package/lib/pt-metric-card-group/pt-metric-card-group.component.d.ts.map +1 -0
- package/lib/pt-metric-card-group/pt-metric-card-group.module.d.ts +10 -0
- package/lib/pt-metric-card-group/pt-metric-card-group.module.d.ts.map +1 -0
- package/lib/pt-metric-card-group/public-api.d.ts +3 -0
- package/lib/pt-metric-card-group/public-api.d.ts.map +1 -0
- package/lib/pt-nav-bar-menu/index.d.ts +2 -0
- package/lib/pt-nav-bar-menu/index.d.ts.map +1 -0
- package/lib/pt-nav-bar-menu/pt-nav-bar-menu.component.d.ts +44 -0
- package/lib/pt-nav-bar-menu/pt-nav-bar-menu.component.d.ts.map +1 -0
- package/lib/pt-nav-bar-menu/pt-nav-bar-menu.module.d.ts +11 -0
- package/lib/pt-nav-bar-menu/pt-nav-bar-menu.module.d.ts.map +1 -0
- package/lib/pt-nav-bar-menu/public-api.d.ts +3 -0
- package/lib/pt-nav-bar-menu/public-api.d.ts.map +1 -0
- package/lib/pt-page-skeleton/index.d.ts +2 -0
- package/lib/pt-page-skeleton/index.d.ts.map +1 -0
- package/lib/pt-page-skeleton/pt-page-skeleton.component.d.ts +15 -0
- package/lib/pt-page-skeleton/pt-page-skeleton.component.d.ts.map +1 -0
- package/lib/pt-page-skeleton/pt-page-skeleton.module.d.ts +15 -0
- package/lib/pt-page-skeleton/pt-page-skeleton.module.d.ts.map +1 -0
- package/lib/pt-page-skeleton/public-api.d.ts +3 -0
- package/lib/pt-page-skeleton/public-api.d.ts.map +1 -0
- package/lib/pt-side-bar-menu/index.d.ts +2 -0
- package/lib/pt-side-bar-menu/index.d.ts.map +1 -0
- package/lib/pt-side-bar-menu/pt-side-bar-menu.component.d.ts +41 -0
- package/lib/pt-side-bar-menu/pt-side-bar-menu.component.d.ts.map +1 -0
- package/lib/pt-side-bar-menu/pt-side-bar-menu.module.d.ts +12 -0
- package/lib/pt-side-bar-menu/pt-side-bar-menu.module.d.ts.map +1 -0
- package/lib/pt-side-bar-menu/public-api.d.ts +3 -0
- package/lib/pt-side-bar-menu/public-api.d.ts.map +1 -0
- package/lib/pt-text-input/pt-text-input.component.d.ts +1 -0
- package/lib/pt-text-input/pt-text-input.component.d.ts.map +1 -1
- package/package.json +4 -2
- package/public-api.d.ts +15 -1
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/multi-search-criteria/public_api.mjs +0 -4
- package/esm2022/lib/ng-advanced-prime-table/public_api.mjs +0 -4
- package/lib/multi-search-criteria/public_api.d.ts.map +0 -1
- package/lib/ng-advanced-prime-table/public_api.d.ts.map +0 -1
@@ -0,0 +1,142 @@
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
2
|
+
import { Validators } from '@angular/forms';
|
3
|
+
import { FormInputTypeEnum } from '../enums';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/forms";
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "../pt-text-input/pt-text-input.component";
|
8
|
+
import * as i4 from "../pt-card/pt-card.component";
|
9
|
+
import * as i5 from "../pt-button/pt-button.component";
|
10
|
+
export class PTLoginPageComponent {
|
11
|
+
constructor(fb) {
|
12
|
+
this.fb = fb;
|
13
|
+
this.loginSubmit = new EventEmitter();
|
14
|
+
this.backgroundImageStyle = '';
|
15
|
+
this.formGroup = this.fb.group({});
|
16
|
+
}
|
17
|
+
ngOnInit() {
|
18
|
+
this.initializeDefaults();
|
19
|
+
this.setupFormFields();
|
20
|
+
this.formGroup.patchValue({
|
21
|
+
username: this.loginPageConfig.login?.username || '',
|
22
|
+
password: this.loginPageConfig.login?.password || '',
|
23
|
+
});
|
24
|
+
this.setBackgroundImageStyle();
|
25
|
+
// Enable/Disable the button based on form validity
|
26
|
+
this.formGroup.statusChanges.subscribe((status) => {
|
27
|
+
this.loginPageConfig.buttonConfig.disabled = status !== 'VALID';
|
28
|
+
});
|
29
|
+
}
|
30
|
+
// Initialize default values for all fields in loginPageConfig if not set
|
31
|
+
initializeDefaults() {
|
32
|
+
// Initialize backgroundImage
|
33
|
+
this.loginPageConfig.backgroundImage = {
|
34
|
+
imageUrl: this.loginPageConfig.backgroundImage?.imageUrl || '',
|
35
|
+
transparencyPercentage: this.loginPageConfig.backgroundImage?.transparencyPercentage || '100',
|
36
|
+
...this.loginPageConfig.backgroundImage,
|
37
|
+
};
|
38
|
+
// Initialize title
|
39
|
+
this.loginPageConfig.title = {
|
40
|
+
text: this.loginPageConfig.title?.text || 'Login',
|
41
|
+
position: this.loginPageConfig.title?.position || 'center',
|
42
|
+
color: this.loginPageConfig.title?.color || '#333',
|
43
|
+
fontSize: this.loginPageConfig.title?.fontSize || '24px',
|
44
|
+
...this.loginPageConfig.title,
|
45
|
+
};
|
46
|
+
// Initialize logoUrl
|
47
|
+
this.loginPageConfig.logoUrl = {
|
48
|
+
altText: this.loginPageConfig.logoUrl?.altText || 'Logo',
|
49
|
+
imageUrl: this.loginPageConfig.logoUrl?.imageUrl || '',
|
50
|
+
width: this.loginPageConfig.logoUrl?.width || '100px',
|
51
|
+
height: this.loginPageConfig.logoUrl?.height || 'auto',
|
52
|
+
...this.loginPageConfig.logoUrl,
|
53
|
+
};
|
54
|
+
// Initialize footer
|
55
|
+
this.loginPageConfig.footer = {
|
56
|
+
version: this.loginPageConfig.footer?.version || 'V1.0',
|
57
|
+
copyright: this.loginPageConfig.footer?.copyright || 'Your Company © 2024',
|
58
|
+
...this.loginPageConfig.footer,
|
59
|
+
};
|
60
|
+
// Initialize login
|
61
|
+
this.loginPageConfig.login = {
|
62
|
+
username: this.loginPageConfig.login?.username || '',
|
63
|
+
password: this.loginPageConfig.login?.password || '',
|
64
|
+
errorMessage: this.loginPageConfig.login?.errorMessage || '',
|
65
|
+
emptyFieldsErrorMessage: this.loginPageConfig.login?.emptyFieldsErrorMessage ||
|
66
|
+
"Veuillez saisir votre nom d'utilisateur et votre mot de passe !",
|
67
|
+
...this.loginPageConfig.login,
|
68
|
+
};
|
69
|
+
// Initialize cardConfig
|
70
|
+
this.loginPageConfig.cardConfig = {
|
71
|
+
noBorder: this.loginPageConfig.cardConfig?.noBorder ?? true,
|
72
|
+
width: this.loginPageConfig.cardConfig?.width ?? '400px',
|
73
|
+
padding: this.loginPageConfig.cardConfig?.padding ?? '40px',
|
74
|
+
...this.loginPageConfig.cardConfig,
|
75
|
+
};
|
76
|
+
// Initialize usernameField
|
77
|
+
this.loginPageConfig.usernameField = {
|
78
|
+
name: this.loginPageConfig.usernameField?.name || 'username',
|
79
|
+
label: this.loginPageConfig.usernameField?.label || "Nom d'utilisateur",
|
80
|
+
required: this.loginPageConfig.usernameField?.required ?? true,
|
81
|
+
placeholder: this.loginPageConfig.usernameField?.placeholder ||
|
82
|
+
"Entrer votre nom d'utilisateur",
|
83
|
+
...this.loginPageConfig.usernameField,
|
84
|
+
};
|
85
|
+
// Initialize passwordField
|
86
|
+
this.loginPageConfig.passwordField = {
|
87
|
+
name: this.loginPageConfig.passwordField?.name || 'password',
|
88
|
+
label: this.loginPageConfig.passwordField?.label || 'Mot de passe',
|
89
|
+
required: this.loginPageConfig.passwordField?.required ?? true,
|
90
|
+
placeholder: this.loginPageConfig.passwordField?.placeholder ||
|
91
|
+
'Entrer votre mot de passe',
|
92
|
+
type: this.loginPageConfig.passwordField?.type || FormInputTypeEnum.PASSWORD,
|
93
|
+
...this.loginPageConfig.passwordField,
|
94
|
+
};
|
95
|
+
// Initialize buttonConfig
|
96
|
+
this.loginPageConfig.buttonConfig = {
|
97
|
+
label: this.loginPageConfig.buttonConfig?.label || 'Login',
|
98
|
+
type: this.loginPageConfig.buttonConfig?.type || 'submit',
|
99
|
+
icon: this.loginPageConfig.buttonConfig?.icon || 'pi pi-sign-in',
|
100
|
+
iconPos: this.loginPageConfig.buttonConfig?.iconPos || 'left',
|
101
|
+
styleClass: this.loginPageConfig.buttonConfig?.styleClass || 'p-button-success',
|
102
|
+
disabled: this.loginPageConfig.buttonConfig?.disabled ?? true,
|
103
|
+
width: this.loginPageConfig.buttonConfig?.width ?? '100%',
|
104
|
+
...this.loginPageConfig.buttonConfig,
|
105
|
+
};
|
106
|
+
}
|
107
|
+
setBackgroundImageStyle() {
|
108
|
+
const transparency = parseFloat(this.loginPageConfig?.backgroundImage?.transparencyPercentage) / 100;
|
109
|
+
this.backgroundImageStyle = `linear-gradient(rgba(255,255,255,${1 - transparency}), rgba(255,255,255,${1 - transparency})), url(${this.loginPageConfig?.backgroundImage?.imageUrl})`;
|
110
|
+
}
|
111
|
+
login() {
|
112
|
+
if (this.formGroup.valid) {
|
113
|
+
this.loginSubmit.emit(this.formGroup.value);
|
114
|
+
}
|
115
|
+
else {
|
116
|
+
this.loginPageConfig.login.errorMessage =
|
117
|
+
this.loginPageConfig.login?.emptyFieldsErrorMessage;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
// Setup form fields using the usernameField and passwordField from LoginPageConfig
|
121
|
+
setupFormFields() {
|
122
|
+
const usernameValidators = this.loginPageConfig.usernameField?.required
|
123
|
+
? [Validators.required]
|
124
|
+
: [];
|
125
|
+
const passwordValidators = this.loginPageConfig.passwordField?.required
|
126
|
+
? [Validators.required]
|
127
|
+
: [];
|
128
|
+
this.formGroup.addControl(this.loginPageConfig.usernameField.name, this.fb.control(this.loginPageConfig.login?.username, usernameValidators));
|
129
|
+
this.formGroup.addControl(this.loginPageConfig.passwordField.name, this.fb.control(this.loginPageConfig.login?.password, passwordValidators));
|
130
|
+
}
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTLoginPageComponent, selector: "pt-login-page", inputs: { loginPageConfig: "loginPageConfig" }, outputs: { loginSubmit: "loginSubmit" }, ngImport: i0, template: "<div\n class=\"login-container\"\n [ngStyle]=\"{\n 'background-image': backgroundImageStyle\n }\"\n>\n <pt-card [config]=\"loginPageConfig.cardConfig!\">\n <div class=\"logo-container\" *ngIf=\"loginPageConfig.logoUrl?.imageUrl\">\n <img\n [src]=\"loginPageConfig.logoUrl?.imageUrl\"\n [alt]=\"loginPageConfig.logoUrl?.altText\"\n [style.width]=\"loginPageConfig.logoUrl?.width\"\n [style.height]=\"loginPageConfig.logoUrl?.height\"\n />\n </div>\n\n <div\n class=\"title-container\"\n [ngStyle]=\"{ 'text-align': loginPageConfig.title?.position }\"\n >\n <h1\n [ngStyle]=\"{\n color: loginPageConfig.title?.color,\n 'font-size': loginPageConfig.title?.fontSize\n }\"\n >\n {{ loginPageConfig.title?.text }}\n </h1>\n </div>\n\n <form class=\"form-container\" [formGroup]=\"formGroup\" (ngSubmit)=\"login()\">\n <div *ngIf=\"loginPageConfig.login?.errorMessage\" class=\"error-message\">\n {{ loginPageConfig.login?.errorMessage }}\n </div>\n <div class=\"field\">\n <pt-text-input\n [formGroup]=\"formGroup\"\n [formField]=\"loginPageConfig.usernameField!\"\n ></pt-text-input>\n </div>\n <div class=\"field\">\n <pt-text-input\n [formGroup]=\"formGroup\"\n [formField]=\"loginPageConfig.passwordField!\"\n ></pt-text-input>\n </div>\n <div class=\"submit-btn\">\n <pt-button [buttonConfig]=\"loginPageConfig.buttonConfig!\"></pt-button>\n </div>\n </form>\n\n <div class=\"login-footer\">\n {{ loginPageConfig.footer?.version }}\n <span>{{ loginPageConfig.footer?.copyright }}</span>\n </div>\n </pt-card>\n</div>\n", styles: [".login-container{background-size:cover;background-position:center;background-repeat:no-repeat;height:100vh;width:100vw;display:flex;justify-content:center;align-items:center}.error-message{color:red;background-color:#ffe6e6;border:1px solid red;padding:10px;margin-bottom:10px;border-radius:5px;width:100%}.logo-container{display:flex;justify-content:center;align-items:center;margin-bottom:20px}.title-container{text-align:center;margin-bottom:20px}.field{display:flex;flex-direction:column;margin-bottom:20px;width:100%}.submit-btn{display:flex;justify-content:center;width:100%}::ng-deep pt-button{width:100%}::ng-deep .submit-btn p-button button{width:100%}@media (max-width: 768px){.submit-btn{min-width:100%}}.login-footer{margin-top:20px;text-align:center;font-size:.9em;color:#555}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PTTextInputComponent, selector: "pt-text-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i4.PTCardComponent, selector: "pt-card", inputs: ["config"] }, { kind: "component", type: i5.PTButtonComponent, selector: "pt-button", inputs: ["buttonConfig"] }] }); }
|
133
|
+
}
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageComponent, decorators: [{
|
135
|
+
type: Component,
|
136
|
+
args: [{ selector: 'pt-login-page', template: "<div\n class=\"login-container\"\n [ngStyle]=\"{\n 'background-image': backgroundImageStyle\n }\"\n>\n <pt-card [config]=\"loginPageConfig.cardConfig!\">\n <div class=\"logo-container\" *ngIf=\"loginPageConfig.logoUrl?.imageUrl\">\n <img\n [src]=\"loginPageConfig.logoUrl?.imageUrl\"\n [alt]=\"loginPageConfig.logoUrl?.altText\"\n [style.width]=\"loginPageConfig.logoUrl?.width\"\n [style.height]=\"loginPageConfig.logoUrl?.height\"\n />\n </div>\n\n <div\n class=\"title-container\"\n [ngStyle]=\"{ 'text-align': loginPageConfig.title?.position }\"\n >\n <h1\n [ngStyle]=\"{\n color: loginPageConfig.title?.color,\n 'font-size': loginPageConfig.title?.fontSize\n }\"\n >\n {{ loginPageConfig.title?.text }}\n </h1>\n </div>\n\n <form class=\"form-container\" [formGroup]=\"formGroup\" (ngSubmit)=\"login()\">\n <div *ngIf=\"loginPageConfig.login?.errorMessage\" class=\"error-message\">\n {{ loginPageConfig.login?.errorMessage }}\n </div>\n <div class=\"field\">\n <pt-text-input\n [formGroup]=\"formGroup\"\n [formField]=\"loginPageConfig.usernameField!\"\n ></pt-text-input>\n </div>\n <div class=\"field\">\n <pt-text-input\n [formGroup]=\"formGroup\"\n [formField]=\"loginPageConfig.passwordField!\"\n ></pt-text-input>\n </div>\n <div class=\"submit-btn\">\n <pt-button [buttonConfig]=\"loginPageConfig.buttonConfig!\"></pt-button>\n </div>\n </form>\n\n <div class=\"login-footer\">\n {{ loginPageConfig.footer?.version }}\n <span>{{ loginPageConfig.footer?.copyright }}</span>\n </div>\n </pt-card>\n</div>\n", styles: [".login-container{background-size:cover;background-position:center;background-repeat:no-repeat;height:100vh;width:100vw;display:flex;justify-content:center;align-items:center}.error-message{color:red;background-color:#ffe6e6;border:1px solid red;padding:10px;margin-bottom:10px;border-radius:5px;width:100%}.logo-container{display:flex;justify-content:center;align-items:center;margin-bottom:20px}.title-container{text-align:center;margin-bottom:20px}.field{display:flex;flex-direction:column;margin-bottom:20px;width:100%}.submit-btn{display:flex;justify-content:center;width:100%}::ng-deep pt-button{width:100%}::ng-deep .submit-btn p-button button{width:100%}@media (max-width: 768px){.submit-btn{min-width:100%}}.login-footer{margin-top:20px;text-align:center;font-size:.9em;color:#555}\n"] }]
|
137
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { loginPageConfig: [{
|
138
|
+
type: Input
|
139
|
+
}], loginSubmit: [{
|
140
|
+
type: Output
|
141
|
+
}] } });
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbG9naW4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBTzdDLE1BQU0sT0FBTyxvQkFBb0I7SUFTL0IsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFOekIsZ0JBQVcsR0FDbkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUdqQyx5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFHaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUU7WUFDcEQsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsSUFBSSxFQUFFO1NBQ3JELENBQUMs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RUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2dpblBhZ2VDb25maWcsIExvZ2luTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUlucHV0VHlwZUVudW0gfSBmcm9tICcuLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LWxvZ2luLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtbG9naW4tcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWxvZ2luLXBhZ2UuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVExvZ2luUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxvZ2luUGFnZUNvbmZpZyE6IExvZ2luUGFnZUNvbmZpZztcblxuICBAT3V0cHV0KCkgbG9naW5TdWJtaXQ6IEV2ZW50RW1pdHRlcjxMb2dpbk1vZGVsPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxMb2dpbk1vZGVsPigpO1xuXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBiYWNrZ3JvdW5kSW1hZ2VTdHlsZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdHMoKTtcbiAgICB0aGlzLnNldHVwRm9ybUZpZWxkcygpO1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgdXNlcm5hbWU6IHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy51c2VybmFtZSB8fCAnJyxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8ucGFzc3dvcmQgfHwgJycsXG4gICAgfSk7XG4gICAgdGhpcy5zZXRCYWNrZ3JvdW5kSW1hZ2VTdHlsZSgpO1xuXG4gICAgLy8gRW5hYmxlL0Rpc2FibGUgdGhlIGJ1dHRvbiBiYXNlZCBvbiBmb3JtIHZhbGlkaXR5XG4gICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnIS5kaXNhYmxlZCA9IHN0YXR1cyAhPT0gJ1ZBTElEJztcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluaXRpYWxpemUgZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCBmaWVsZHMgaW4gbG9naW5QYWdlQ29uZmlnIGlmIG5vdCBzZXRcbiAgaW5pdGlhbGl6ZURlZmF1bHRzKCkge1xuICAgIC8vIEluaXRpYWxpemUgYmFja2dyb3VuZEltYWdlXG4gICAgdGhpcy5sb2dpblBhZ2VDb25maWcuYmFja2dyb3VuZEltYWdlID0ge1xuICAgICAgaW1hZ2VVcmw6IHRoaXMubG9naW5QYWdlQ29uZmlnLmJhY2tncm91bmRJbWFnZT8uaW1hZ2VVcmwgfHwgJycsXG4gICAgICB0cmFuc3BhcmVuY3lQZXJjZW50YWdlOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2U/LnRyYW5zcGFyZW5jeVBlcmNlbnRhZ2UgfHwgJzEwMCcsXG4gICAgICAuLi50aGlzLmxvZ2luUGFnZUNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2UsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgdGl0bGVcbiAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy50aXRsZSA9IHtcbiAgICAgIHRleHQ6IHRoaXMubG9naW5QYWdlQ29uZmlnLnRpdGxlPy50ZXh0IHx8ICdMb2dpbicsXG4gICAgICBwb3NpdGlvbjogdGhpcy5sb2dpblBhZ2VDb25maWcudGl0bGU/LnBvc2l0aW9uIHx8ICdjZW50ZXInLFxuICAgICAgY29sb3I6IHRoaXMubG9naW5QYWdlQ29uZmlnLnRpdGxlPy5jb2xvciB8fCAnIzMzMycsXG4gICAgICBmb250U2l6ZTogdGhpcy5sb2dpblBhZ2VDb25maWcudGl0bGU/LmZvbnRTaXplIHx8ICcyNHB4JyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLnRpdGxlLFxuICAgIH07XG5cbiAgICAvLyBJbml0aWFsaXplIGxvZ29VcmxcbiAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dvVXJsID0ge1xuICAgICAgYWx0VGV4dDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8uYWx0VGV4dCB8fCAnTG9nbycsXG4gICAgICBpbWFnZVVybDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8uaW1hZ2VVcmwgfHwgJycsXG4gICAgICB3aWR0aDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8ud2lkdGggfHwgJzEwMHB4JyxcbiAgICAgIGhlaWdodDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8uaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ29VcmwsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgZm9vdGVyXG4gICAgdGhpcy5sb2dpblBhZ2VDb25maWcuZm9vdGVyID0ge1xuICAgICAgdmVyc2lvbjogdGhpcy5sb2dpblBhZ2VDb25maWcuZm9vdGVyPy52ZXJzaW9uIHx8ICdWMS4wJyxcbiAgICAgIGNvcHlyaWdodDpcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcuZm9vdGVyPy5jb3B5cmlnaHQgfHwgJ1lvdXIgQ29tcGFueSDCqSAyMDI0JyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmZvb3RlcixcbiAgICB9O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBsb2dpblxuICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luID0ge1xuICAgICAgdXNlcm5hbWU6IHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy51c2VybmFtZSB8fCAnJyxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8ucGFzc3dvcmQgfHwgJycsXG4gICAgICBlcnJvck1lc3NhZ2U6IHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy5lcnJvck1lc3NhZ2UgfHwgJycsXG4gICAgICBlbXB0eUZpZWxkc0Vycm9yTWVzc2FnZTpcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcubG9naW4/LmVtcHR5RmllbGRzRXJyb3JNZXNzYWdlIHx8XG4gICAgICAgIFwiVmV1aWxsZXogc2Fpc2lyIHZvdHJlIG5vbSBkJ3V0aWxpc2F0ZXVyIGV0IHZvdHJlIG1vdCBkZSBwYXNzZSAhXCIsXG4gICAgICAuLi50aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbixcbiAgICB9O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBjYXJkQ29uZmlnXG4gICAgdGhpcy5sb2dpblBhZ2VDb25maWcuY2FyZENvbmZpZyA9IHtcbiAgICAgIG5vQm9yZGVyOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5jYXJkQ29uZmlnPy5ub0JvcmRlciA/PyB0cnVlLFxuICAgICAgd2lkdGg6IHRoaXMubG9naW5QYWdlQ29uZmlnLmNhcmRDb25maWc/LndpZHRoID8/ICc0MDBweCcsXG4gICAgICBwYWRkaW5nOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5jYXJkQ29uZmlnPy5wYWRkaW5nID8/ICc0MHB4JyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmNhcmRDb25maWcsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgdXNlcm5hbWVGaWVsZFxuICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQgPSB7XG4gICAgICBuYW1lOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy51c2VybmFtZUZpZWxkPy5uYW1lIHx8ICd1c2VybmFtZScsXG4gICAgICBsYWJlbDogdGhpcy5sb2dpblBhZ2VDb25maWcudXNlcm5hbWVGaWVsZD8ubGFiZWwgfHwgXCJOb20gZCd1dGlsaXNhdGV1clwiLFxuICAgICAgcmVxdWlyZWQ6IHRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQ/LnJlcXVpcmVkID8/IHRydWUsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcudXNlcm5hbWVGaWVsZD8ucGxhY2Vob2xkZXIgfHxcbiAgICAgICAgXCJFbnRyZXIgdm90cmUgbm9tIGQndXRpbGlzYXRldXJcIixcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgcGFzc3dvcmRGaWVsZFxuICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLnBhc3N3b3JkRmllbGQgPSB7XG4gICAgICBuYW1lOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy5uYW1lIHx8ICdwYXNzd29yZCcsXG4gICAgICBsYWJlbDogdGhpcy5sb2dpblBhZ2VDb25maWcucGFzc3dvcmRGaWVsZD8ubGFiZWwgfHwgJ01vdCBkZSBwYXNzZScsXG4gICAgICByZXF1aXJlZDogdGhpcy5sb2dpblBhZ2VDb25maWcucGFzc3dvcmRGaWVsZD8ucmVxdWlyZWQgPz8gdHJ1ZSxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy5wbGFjZWhvbGRlciB8fFxuICAgICAgICAnRW50cmVyIHZvdHJlIG1vdCBkZSBwYXNzZScsXG4gICAgICB0eXBlOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy50eXBlIHx8IEZvcm1JbnB1dFR5cGVFbnVtLlBBU1NXT1JELFxuICAgICAgLi4udGhpcy5sb2dpblBhZ2VDb25maWcucGFzc3dvcmRGaWVsZCxcbiAgICB9O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBidXR0b25Db25maWdcbiAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5idXR0b25Db25maWcgPSB7XG4gICAgICBsYWJlbDogdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnPy5sYWJlbCB8fCAnTG9naW4nLFxuICAgICAgdHlwZTogdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnPy50eXBlIHx8ICdzdWJtaXQnLFxuICAgICAgaWNvbjogdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnPy5pY29uIHx8ICdwaSBwaS1zaWduLWluJyxcbiAgICAgIGljb25Qb3M6IHRoaXMubG9naW5QYWdlQ29uZmlnLmJ1dHRvbkNvbmZpZz8uaWNvblBvcyB8fCAnbGVmdCcsXG4gICAgICBzdHlsZUNsYXNzOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5idXR0b25Db25maWc/LnN0eWxlQ2xhc3MgfHwgJ3AtYnV0dG9uLXN1Y2Nlc3MnLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMubG9naW5QYWdlQ29uZmlnLmJ1dHRvbkNvbmZpZz8uZGlzYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIHdpZHRoOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5idXR0b25Db25maWc/LndpZHRoID8/ICcxMDAlJyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmJ1dHRvbkNvbmZpZyxcbiAgICB9O1xuICB9XG5cbiAgc2V0QmFja2dyb3VuZEltYWdlU3R5bGUoKSB7XG4gICAgY29uc3QgdHJhbnNwYXJlbmN5ID1cbiAgICAgIHBhcnNlRmxvYXQoXG4gICAgICAgIHRoaXMubG9naW5QYWdlQ29uZmlnPy5iYWNrZ3JvdW5kSW1hZ2U/LnRyYW5zcGFyZW5jeVBlcmNlbnRhZ2UhXG4gICAgICApIC8gMTAwO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlU3R5bGUgPSBgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LDI1NSwyNTUsJHtcbiAgICAgIDEgLSB0cmFuc3BhcmVuY3lcbiAgICB9KSwgcmdiYSgyNTUsMjU1LDI1NSwkezEgLSB0cmFuc3BhcmVuY3l9KSksIHVybCgke1xuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWc/LmJhY2tncm91bmRJbWFnZT8uaW1hZ2VVcmxcbiAgICB9KWA7XG4gIH1cblxuICBsb2dpbigpIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgIHRoaXMubG9naW5TdWJtaXQuZW1pdCh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luIS5lcnJvck1lc3NhZ2UgPVxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8uZW1wdHlGaWVsZHNFcnJvck1lc3NhZ2U7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0dXAgZm9ybSBmaWVsZHMgdXNpbmcgdGhlIHVzZXJuYW1lRmllbGQgYW5kIHBhc3N3b3JkRmllbGQgZnJvbSBMb2dpblBhZ2VDb25maWdcbiAgc2V0dXBGb3JtRmllbGRzKCkge1xuICAgIGNvbnN0IHVzZXJuYW1lVmFsaWRhdG9ycyA9IHRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQ/LnJlcXVpcmVkXG4gICAgICA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgOiBbXTtcbiAgICBjb25zdCBwYXNzd29yZFZhbGlkYXRvcnMgPSB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy5yZXF1aXJlZFxuICAgICAgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIDogW107XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcudXNlcm5hbWVGaWVsZCEubmFtZSxcbiAgICAgIHRoaXMuZmIuY29udHJvbCh0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8udXNlcm5hbWUsIHVzZXJuYW1lVmFsaWRhdG9ycylcbiAgICApO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkIS5uYW1lLFxuICAgICAgdGhpcy5mYi5jb250cm9sKHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy5wYXNzd29yZCwgcGFzc3dvcmRWYWxpZGF0b3JzKVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJsb2dpbi1jb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ2JhY2tncm91bmQtaW1hZ2UnOiBiYWNrZ3JvdW5kSW1hZ2VTdHlsZVxuICB9XCJcbj5cbiAgPHB0LWNhcmQgW2NvbmZpZ109XCJsb2dpblBhZ2VDb25maWcuY2FyZENvbmZpZyFcIj5cbiAgICA8ZGl2IGNsYXNzPVwibG9nby1jb250YWluZXJcIiAqbmdJZj1cImxvZ2luUGFnZUNvbmZpZy5sb2dvVXJsPy5pbWFnZVVybFwiPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cImxvZ2luUGFnZUNvbmZpZy5sb2dvVXJsPy5pbWFnZVVybFwiXG4gICAgICAgIFthbHRdPVwibG9naW5QYWdlQ29uZmlnLmxvZ29Vcmw/LmFsdFRleHRcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwibG9naW5QYWdlQ29uZmlnLmxvZ29Vcmw/LndpZHRoXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJsb2dpblBhZ2VDb25maWcubG9nb1VybD8uaGVpZ2h0XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICd0ZXh0LWFsaWduJzogbG9naW5QYWdlQ29uZmlnLnRpdGxlPy5wb3NpdGlvbiB9XCJcbiAgICA+XG4gICAgICA8aDFcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGNvbG9yOiBsb2dpblBhZ2VDb25maWcudGl0bGU/LmNvbG9yLFxuICAgICAgICAgICdmb250LXNpemUnOiBsb2dpblBhZ2VDb25maWcudGl0bGU/LmZvbnRTaXplXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICB7eyBsb2dpblBhZ2VDb25maWcudGl0bGU/LnRleHQgfX1cbiAgICAgIDwvaDE+XG4gICAgPC9kaXY+XG5cbiAgICA8Zm9ybSBjbGFzcz1cImZvcm0tY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAobmdTdWJtaXQpPVwibG9naW4oKVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImxvZ2luUGFnZUNvbmZpZy5sb2dpbj8uZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAgICAgIHt7IGxvZ2luUGFnZUNvbmZpZy5sb2dpbj8uZXJyb3JNZXNzYWdlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICA8cHQtdGV4dC1pbnB1dFxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgICBbZm9ybUZpZWxkXT1cImxvZ2luUGFnZUNvbmZpZy51c2VybmFtZUZpZWxkIVwiXG4gICAgICAgID48L3B0LXRleHQtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICA8cHQtdGV4dC1pbnB1dFxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgICBbZm9ybUZpZWxkXT1cImxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkIVwiXG4gICAgICAgID48L3B0LXRleHQtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJtaXQtYnRuXCI+XG4gICAgICAgIDxwdC1idXR0b24gW2J1dHRvbkNvbmZpZ109XCJsb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnIVwiPjwvcHQtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdiBjbGFzcz1cImxvZ2luLWZvb3RlclwiPlxuICAgICAge3sgbG9naW5QYWdlQ29uZmlnLmZvb3Rlcj8udmVyc2lvbiB9fVxuICAgICAgPHNwYW4+e3sgbG9naW5QYWdlQ29uZmlnLmZvb3Rlcj8uY29weXJpZ2h0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L3B0LWNhcmQ+XG48L2Rpdj5cbiJdfQ==
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { PTLoginPageComponent } from './pt-login-page.component';
|
4
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
5
|
+
import { PTTextInputModule } from '../pt-text-input/pt-text-input.module';
|
6
|
+
import { PTCardModule } from '../pt-card/pt-card.module';
|
7
|
+
import { PTButtonModule } from '../pt-button';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
export class PTLoginPageModule {
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageModule, declarations: [PTLoginPageComponent], imports: [CommonModule,
|
12
|
+
FormsModule,
|
13
|
+
ReactiveFormsModule,
|
14
|
+
PTTextInputModule,
|
15
|
+
PTCardModule,
|
16
|
+
PTButtonModule], exports: [PTLoginPageComponent] }); }
|
17
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageModule, imports: [CommonModule,
|
18
|
+
FormsModule,
|
19
|
+
ReactiveFormsModule,
|
20
|
+
PTTextInputModule,
|
21
|
+
PTCardModule,
|
22
|
+
PTButtonModule] }); }
|
23
|
+
}
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageModule, decorators: [{
|
25
|
+
type: NgModule,
|
26
|
+
args: [{
|
27
|
+
declarations: [PTLoginPageComponent],
|
28
|
+
imports: [
|
29
|
+
CommonModule,
|
30
|
+
FormsModule,
|
31
|
+
ReactiveFormsModule,
|
32
|
+
PTTextInputModule,
|
33
|
+
PTCardModule,
|
34
|
+
PTButtonModule,
|
35
|
+
],
|
36
|
+
exports: [PTLoginPageComponent],
|
37
|
+
}]
|
38
|
+
}] });
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbG9naW4tcGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWM5QyxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFYYixvQkFBb0IsYUFFakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixjQUFjLGFBRU4sb0JBQW9CO2dIQUVuQixpQkFBaUIsWUFUMUIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixjQUFjOzs0RkFJTCxpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBUTG9naW5QYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9wdC1sb2dpbi1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBUVGV4dElucHV0TW9kdWxlIH0gZnJvbSAnLi4vcHQtdGV4dC1pbnB1dC9wdC10ZXh0LWlucHV0Lm1vZHVsZSc7XG5pbXBvcnQgeyBQVENhcmRNb2R1bGUgfSBmcm9tICcuLi9wdC1jYXJkL3B0LWNhcmQubW9kdWxlJztcbmltcG9ydCB7IFBUQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vcHQtYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUFRMb2dpblBhZ2VDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUFRUZXh0SW5wdXRNb2R1bGUsXG4gICAgUFRDYXJkTW9kdWxlLFxuICAgIFBUQnV0dG9uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbUFRMb2dpblBhZ2VDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBQVExvZ2luUGFnZU1vZHVsZSB7fVxuIl19
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './pt-login-page.component';
|
2
|
+
export * from './pt-login-page.module';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtbG9naW4tcGFnZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHQtbG9naW4tcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wdC1sb2dpbi1wYWdlLm1vZHVsZSc7XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './public-api';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
@@ -0,0 +1,90 @@
|
|
1
|
+
import { Component, Input, HostListener } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/common";
|
4
|
+
export class PTMenuComponent {
|
5
|
+
constructor() {
|
6
|
+
this.config = {
|
7
|
+
icon: { code: 'pi pi-ellipsis-v', color: '#000', fontSize: '15px' },
|
8
|
+
menuDirection: 'right',
|
9
|
+
};
|
10
|
+
this.isOpen = false;
|
11
|
+
}
|
12
|
+
static { this.DEFAULT_TEXT_COLOR = '#000'; }
|
13
|
+
static { this.DEFAULT_TEXT_FONT_SIZE = '15px'; }
|
14
|
+
static { this.DEFAULT_ICON_COLOR = '#000'; }
|
15
|
+
static { this.DEFAULT_ICON_FONT_SIZE = '15px'; }
|
16
|
+
static { this.DEFAULT_ICON_CODE = 'pi pi-ellipsis-v'; }
|
17
|
+
static { this.openMenuInstance = null; }
|
18
|
+
toggleMenu() {
|
19
|
+
if (PTMenuComponent.openMenuInstance &&
|
20
|
+
PTMenuComponent.openMenuInstance !== this) {
|
21
|
+
PTMenuComponent.openMenuInstance.closeMenu();
|
22
|
+
}
|
23
|
+
this.isOpen = !this.isOpen;
|
24
|
+
if (this.isOpen) {
|
25
|
+
PTMenuComponent.openMenuInstance = this;
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
PTMenuComponent.openMenuInstance = null;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
closeMenu() {
|
32
|
+
this.isOpen = false;
|
33
|
+
if (PTMenuComponent.openMenuInstance === this) {
|
34
|
+
PTMenuComponent.openMenuInstance = null;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
getMenuItemIconClass(item) {
|
38
|
+
// Assuming that icons starting with "fa" are FontAwesome icons
|
39
|
+
return typeof item.icon === 'string' ? item.icon : item.icon?.code || '';
|
40
|
+
}
|
41
|
+
getMenuItemIconStyles(item) {
|
42
|
+
if (typeof item.icon !== 'string') {
|
43
|
+
return {
|
44
|
+
color: item.icon?.color || PTMenuComponent.DEFAULT_ICON_COLOR,
|
45
|
+
fontSize: item.icon?.fontSize || PTMenuComponent.DEFAULT_ICON_FONT_SIZE,
|
46
|
+
};
|
47
|
+
}
|
48
|
+
return {
|
49
|
+
color: PTMenuComponent.DEFAULT_ICON_COLOR,
|
50
|
+
fontSize: PTMenuComponent.DEFAULT_ICON_FONT_SIZE,
|
51
|
+
};
|
52
|
+
}
|
53
|
+
getIconClass() {
|
54
|
+
return this.config.icon?.code || PTMenuComponent.DEFAULT_ICON_CODE;
|
55
|
+
}
|
56
|
+
getIconStyles() {
|
57
|
+
return {
|
58
|
+
color: this.config.color ||
|
59
|
+
this.config.icon?.color ||
|
60
|
+
PTMenuComponent.DEFAULT_ICON_COLOR,
|
61
|
+
fontSize: this.config.fontSize ||
|
62
|
+
this.config.icon?.fontSize ||
|
63
|
+
PTMenuComponent.DEFAULT_ICON_FONT_SIZE,
|
64
|
+
};
|
65
|
+
}
|
66
|
+
getTextStyles(item) {
|
67
|
+
return {
|
68
|
+
color: item.color || PTMenuComponent.DEFAULT_TEXT_COLOR,
|
69
|
+
fontSize: item.fontSize || PTMenuComponent.DEFAULT_TEXT_FONT_SIZE,
|
70
|
+
};
|
71
|
+
}
|
72
|
+
onDocumentClick(event) {
|
73
|
+
const clickedInside = event.target.closest('.pt-menu');
|
74
|
+
if (!clickedInside) {
|
75
|
+
this.closeMenu();
|
76
|
+
}
|
77
|
+
}
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMenuComponent, selector: "pt-menu", inputs: { config: "config" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div\n [ngClass]=\"{\n open: isOpen,\n 'menu-left': config.menuDirection === 'left',\n 'menu-right': config.menuDirection === 'right'\n }\"\n class=\"pt-menu\"\n>\n <i\n class=\"menu-icon\"\n (click)=\"toggleMenu()\"\n [ngClass]=\"getIconClass()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <div class=\"menu-dropdown\" *ngIf=\"isOpen\">\n <div\n class=\"menu-item\"\n *ngFor=\"let item of config.menuItems\"\n (click)=\"item.action()\"\n >\n <i\n [ngClass]=\"getMenuItemIconClass(item)\"\n [ngStyle]=\"getMenuItemIconStyles(item)\"\n ></i>\n <span [ngStyle]=\"getTextStyles(item)\">{{ item.text }}</span>\n </div>\n </div>\n</div>\n", styles: [".pt-menu{position:relative;display:inline-block}.pt-menu .menu-icon{font-style:normal;font-weight:400;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;padding:8px;transition:background-color .2s,box-shadow .2s}.pt-menu .menu-icon:hover{background-color:#5959591a;box-shadow:0 0 0 1px #5959591a}.pt-menu .menu-dropdown{display:none;position:absolute;background-color:#fff;box-shadow:0 8px 16px #0003;min-width:160px;z-index:1;border-radius:5px;overflow:hidden}.pt-menu .menu-item{padding:8px 16px;cursor:pointer;display:flex;align-items:center}.pt-menu .menu-item i{margin-right:10px}.pt-menu .menu-item:hover{background-color:#f1f1f1}.pt-menu.open .menu-dropdown{display:block}.pt-menu.menu-left .menu-dropdown{right:0;left:auto}.pt-menu.menu-right .menu-dropdown{left:0;right:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
80
|
+
}
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuComponent, decorators: [{
|
82
|
+
type: Component,
|
83
|
+
args: [{ selector: 'pt-menu', template: "<div\n [ngClass]=\"{\n open: isOpen,\n 'menu-left': config.menuDirection === 'left',\n 'menu-right': config.menuDirection === 'right'\n }\"\n class=\"pt-menu\"\n>\n <i\n class=\"menu-icon\"\n (click)=\"toggleMenu()\"\n [ngClass]=\"getIconClass()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <div class=\"menu-dropdown\" *ngIf=\"isOpen\">\n <div\n class=\"menu-item\"\n *ngFor=\"let item of config.menuItems\"\n (click)=\"item.action()\"\n >\n <i\n [ngClass]=\"getMenuItemIconClass(item)\"\n [ngStyle]=\"getMenuItemIconStyles(item)\"\n ></i>\n <span [ngStyle]=\"getTextStyles(item)\">{{ item.text }}</span>\n </div>\n </div>\n</div>\n", styles: [".pt-menu{position:relative;display:inline-block}.pt-menu .menu-icon{font-style:normal;font-weight:400;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;padding:8px;transition:background-color .2s,box-shadow .2s}.pt-menu .menu-icon:hover{background-color:#5959591a;box-shadow:0 0 0 1px #5959591a}.pt-menu .menu-dropdown{display:none;position:absolute;background-color:#fff;box-shadow:0 8px 16px #0003;min-width:160px;z-index:1;border-radius:5px;overflow:hidden}.pt-menu .menu-item{padding:8px 16px;cursor:pointer;display:flex;align-items:center}.pt-menu .menu-item i{margin-right:10px}.pt-menu .menu-item:hover{background-color:#f1f1f1}.pt-menu.open .menu-dropdown{display:block}.pt-menu.menu-left .menu-dropdown{right:0;left:auto}.pt-menu.menu-right .menu-dropdown{left:0;right:auto}\n"] }]
|
84
|
+
}], propDecorators: { config: [{
|
85
|
+
type: Input
|
86
|
+
}], onDocumentClick: [{
|
87
|
+
type: HostListener,
|
88
|
+
args: ['document:click', ['$event']]
|
89
|
+
}] } });
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUvcHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUvcHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVEvRCxNQUFNLE9BQU8sZUFBZTtJQUw1QjtRQU1XLFdBQU0sR0FBZTtZQUM1QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1lBQ25FLGFBQWEsRUFBRSxPQUFPO1NBQ3ZCLENBQUM7UUFVRixXQUFNLEdBQUcsS0FBSyxDQUFDO0tBMkVoQjthQW5GeUIsdUJBQWtCLEdBQUcsTUFBTSxBQUFULENBQVU7YUFDNUIsMkJBQXNCLEdBQUcsTUFBTSxBQUFULENBQVU7YUFDaEMsdUJBQWtCLEdBQUcsTUFBTSxBQUFULENBQVU7YUFDNUIsMkJBQXNCLEdBQUcsTUFBTSxBQUFULENBQVU7YUFDaEMsc0JBQWlCLEdBQUcsa0JBQWtCLEFBQXJCLENBQXNCO2FBRWhELHFCQUFnQixHQUEyQixJQUFJLEFBQS9CLENBQWdDO0lBSS9ELFVBQVU7UUFDUixJQUNFLGVBQWUsQ0FBQyxnQkFBZ0I7WUFDaEMsZUFBZSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFDekMsQ0FBQztZQUNELGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMxQyxDQUFDO2FBQU0sQ0FBQztZQUNOLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQWM7UUFDakMsK0RBQStEO1FBQy9ELE9BQU8sT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFjO1FBQ2xDLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLGVBQWUsQ0FBQyxrQkFBa0I7Z0JBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxlQUFlLENBQUMsc0JBQXNCO2FBQ3hFLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTztZQUNMLEtBQUssRUFBRSxlQUFlLENBQUMsa0JBQWtCO1lBQ3pDLFFBQVEsRUFBRSxlQUFlLENBQUMsc0JBQXNCO1NBQ2pELENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUNyRSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU87WUFDTCxLQUFLLEVBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLO2dCQUN2QixlQUFlLENBQUMsa0JBQWtCO1lBQ3BDLFFBQVEsRUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVE7Z0JBQzFCLGVBQWUsQ0FBQyxzQkFBc0I7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBYztRQUMxQixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDLGtCQUFrQjtZQUN2RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxlQUFlLENBQUMsc0JBQXNCO1NBQ2xFLENBQUM7SUFDSixDQUFDO0lBR0QsZUFBZSxDQUFDLEtBQWlCO1FBQy9CLE1BQU0sYUFBYSxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDOytHQXhGVSxlQUFlO21HQUFmLGVBQWUsbUpDUjVCLDJzQkE0QkE7OzRGRHBCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFNBQVM7OEJBS1YsTUFBTTtzQkFBZCxLQUFLO2dCQWtGTixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVJdGVtLCBNZW51Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtbWVudS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBUTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbmZpZzogTWVudUNvbmZpZyA9IHtcbiAgICBpY29uOiB7IGNvZGU6ICdwaSBwaS1lbGxpcHNpcy12JywgY29sb3I6ICcjMDAwJywgZm9udFNpemU6ICcxNXB4JyB9LFxuICAgIG1lbnVEaXJlY3Rpb246ICdyaWdodCcsXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9URVhUX0NPTE9SID0gJyMwMDAnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RFWFRfRk9OVF9TSVpFID0gJzE1cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0lDT05fQ09MT1IgPSAnIzAwMCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSUNPTl9GT05UX1NJWkUgPSAnMTVweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSUNPTl9DT0RFID0gJ3BpIHBpLWVsbGlwc2lzLXYnO1xuXG4gIHByaXZhdGUgc3RhdGljIG9wZW5NZW51SW5zdGFuY2U6IFBUTWVudUNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gIGlzT3BlbiA9IGZhbHNlO1xuXG4gIHRvZ2dsZU1lbnUoKSB7XG4gICAgaWYgKFxuICAgICAgUFRNZW51Q29tcG9uZW50Lm9wZW5NZW51SW5zdGFuY2UgJiZcbiAgICAgIFBUTWVudUNvbXBvbmVudC5vcGVuTWVudUluc3RhbmNlICE9PSB0aGlzXG4gICAgKSB7XG4gICAgICBQVE1lbnVDb21wb25lbnQub3Blbk1lbnVJbnN0YW5jZS5jbG9zZU1lbnUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcblxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgUFRNZW51Q29tcG9uZW50Lm9wZW5NZW51SW5zdGFuY2UgPSB0aGlzO1xuICAgIH0gZWxzZSB7XG4gICAgICBQVE1lbnVDb21wb25lbnQub3Blbk1lbnVJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VNZW51KCkge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgaWYgKFBUTWVudUNvbXBvbmVudC5vcGVuTWVudUluc3RhbmNlID09PSB0aGlzKSB7XG4gICAgICBQVE1lbnVDb21wb25lbnQub3Blbk1lbnVJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZ2V0TWVudUl0ZW1JY29uQ2xhc3MoaXRlbTogTWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIC8vIEFzc3VtaW5nIHRoYXQgaWNvbnMgc3RhcnRpbmcgd2l0aCBcImZhXCIgYXJlIEZvbnRBd2Vzb21lIGljb25zXG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtLmljb24gPT09ICdzdHJpbmcnID8gaXRlbS5pY29uIDogaXRlbS5pY29uPy5jb2RlIHx8ICcnO1xuICB9XG5cbiAgZ2V0TWVudUl0ZW1JY29uU3R5bGVzKGl0ZW06IE1lbnVJdGVtKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtLmljb24gIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogaXRlbS5pY29uPy5jb2xvciB8fCBQVE1lbnVDb21wb25lbnQuREVGQVVMVF9JQ09OX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTogaXRlbS5pY29uPy5mb250U2l6ZSB8fCBQVE1lbnVDb21wb25lbnQuREVGQVVMVF9JQ09OX0ZPTlRfU0laRSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogUFRNZW51Q29tcG9uZW50LkRFRkFVTFRfSUNPTl9DT0xPUixcbiAgICAgIGZvbnRTaXplOiBQVE1lbnVDb21wb25lbnQuREVGQVVMVF9JQ09OX0ZPTlRfU0laRSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0SWNvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmljb24/LmNvZGUgfHwgUFRNZW51Q29tcG9uZW50LkRFRkFVTFRfSUNPTl9DT0RFO1xuICB9XG5cbiAgZ2V0SWNvblN0eWxlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6XG4gICAgICAgIHRoaXMuY29uZmlnLmNvbG9yIHx8XG4gICAgICAgIHRoaXMuY29uZmlnLmljb24/LmNvbG9yIHx8XG4gICAgICAgIFBUTWVudUNvbXBvbmVudC5ERUZBVUxUX0lDT05fQ09MT1IsXG4gICAgICBmb250U2l6ZTpcbiAgICAgICAgdGhpcy5jb25maWcuZm9udFNpemUgfHxcbiAgICAgICAgdGhpcy5jb25maWcuaWNvbj8uZm9udFNpemUgfHxcbiAgICAgICAgUFRNZW51Q29tcG9uZW50LkRFRkFVTFRfSUNPTl9GT05UX1NJWkUsXG4gICAgfTtcbiAgfVxuXG4gIGdldFRleHRTdHlsZXMoaXRlbTogTWVudUl0ZW0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IGl0ZW0uY29sb3IgfHwgUFRNZW51Q29tcG9uZW50LkRFRkFVTFRfVEVYVF9DT0xPUixcbiAgICAgIGZvbnRTaXplOiBpdGVtLmZvbnRTaXplIHx8IFBUTWVudUNvbXBvbmVudC5ERUZBVUxUX1RFWFRfRk9OVF9TSVpFLFxuICAgIH07XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcucHQtbWVudScpO1xuICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xuICAgICAgdGhpcy5jbG9zZU1lbnUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwie1xuICAgIG9wZW46IGlzT3BlbixcbiAgICAnbWVudS1sZWZ0JzogY29uZmlnLm1lbnVEaXJlY3Rpb24gPT09ICdsZWZ0JyxcbiAgICAnbWVudS1yaWdodCc6IGNvbmZpZy5tZW51RGlyZWN0aW9uID09PSAncmlnaHQnXG4gIH1cIlxuICBjbGFzcz1cInB0LW1lbnVcIlxuPlxuICA8aVxuICAgIGNsYXNzPVwibWVudS1pY29uXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCJcbiAgICBbbmdDbGFzc109XCJnZXRJY29uQ2xhc3MoKVwiXG4gICAgW25nU3R5bGVdPVwiZ2V0SWNvblN0eWxlcygpXCJcbiAgPjwvaT5cbiAgPGRpdiBjbGFzcz1cIm1lbnUtZHJvcGRvd25cIiAqbmdJZj1cImlzT3BlblwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZy5tZW51SXRlbXNcIlxuICAgICAgKGNsaWNrKT1cIml0ZW0uYWN0aW9uKClcIlxuICAgID5cbiAgICAgIDxpXG4gICAgICAgIFtuZ0NsYXNzXT1cImdldE1lbnVJdGVtSWNvbkNsYXNzKGl0ZW0pXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0TWVudUl0ZW1JY29uU3R5bGVzKGl0ZW0pXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhbiBbbmdTdHlsZV09XCJnZXRUZXh0U3R5bGVzKGl0ZW0pXCI+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { PTMenuComponent } from './pt-menu.component';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class PTMenuModule {
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: PTMenuModule, declarations: [PTMenuComponent], imports: [CommonModule], exports: [PTMenuComponent] }); }
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuModule, imports: [CommonModule] }); }
|
9
|
+
}
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuModule, decorators: [{
|
11
|
+
type: NgModule,
|
12
|
+
args: [{
|
13
|
+
declarations: [PTMenuComponent],
|
14
|
+
imports: [CommonModule],
|
15
|
+
exports: [PTMenuComponent],
|
16
|
+
}]
|
17
|
+
}] });
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUvcHQtbWVudS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU90RCxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBSlIsZUFBZSxhQUNwQixZQUFZLGFBQ1osZUFBZTtnSEFFZCxZQUFZLFlBSGIsWUFBWTs7NEZBR1gsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUFRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9wdC1tZW51LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BUTWVudUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbUFRNZW51Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUFRNZW51TW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './pt-menu.component';
|
2
|
+
export * from './pt-menu.module';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtbWVudS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHQtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wdC1tZW51Lm1vZHVsZSc7XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './public-api';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUtZmFuY3kvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
@@ -0,0 +1,92 @@
|
|
1
|
+
import { Component, Input, HostListener } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/common";
|
4
|
+
import * as i2 from "../pt-card/pt-card.component";
|
5
|
+
export class PTMenuFancyComponent {
|
6
|
+
constructor() {
|
7
|
+
this.config = {
|
8
|
+
icon: { code: 'pi pi-ellipsis-v', color: '#000', fontSize: '15px' },
|
9
|
+
menuDirection: 'right',
|
10
|
+
};
|
11
|
+
this.cardMenuConfig = { noBorder: true };
|
12
|
+
this.isOpen = false;
|
13
|
+
}
|
14
|
+
static { this.DEFAULT_TEXT_COLOR = '#000'; }
|
15
|
+
static { this.DEFAULT_TEXT_FONT_SIZE = '15px'; }
|
16
|
+
static { this.DEFAULT_ICON_COLOR = '#000'; }
|
17
|
+
static { this.DEFAULT_ICON_FONT_SIZE = '15px'; }
|
18
|
+
static { this.DEFAULT_ICON_CODE = 'pi pi-ellipsis-v'; }
|
19
|
+
static { this.openMenuInstance = null; }
|
20
|
+
toggleMenu() {
|
21
|
+
if (PTMenuFancyComponent.openMenuInstance &&
|
22
|
+
PTMenuFancyComponent.openMenuInstance !== this) {
|
23
|
+
PTMenuFancyComponent.openMenuInstance.closeMenu();
|
24
|
+
}
|
25
|
+
this.isOpen = !this.isOpen;
|
26
|
+
if (this.isOpen) {
|
27
|
+
PTMenuFancyComponent.openMenuInstance = this;
|
28
|
+
}
|
29
|
+
else {
|
30
|
+
PTMenuFancyComponent.openMenuInstance = null;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
closeMenu() {
|
34
|
+
this.isOpen = false;
|
35
|
+
if (PTMenuFancyComponent.openMenuInstance === this) {
|
36
|
+
PTMenuFancyComponent.openMenuInstance = null;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
getMenuItemIconClass(item) {
|
40
|
+
// Assuming that icons starting with "fa" are FontAwesome icons
|
41
|
+
return typeof item.icon === 'string' ? item.icon : item.icon?.code || '';
|
42
|
+
}
|
43
|
+
getMenuItemIconStyles(item) {
|
44
|
+
if (typeof item.icon !== 'string') {
|
45
|
+
return {
|
46
|
+
color: item.icon?.color || PTMenuFancyComponent.DEFAULT_ICON_COLOR,
|
47
|
+
fontSize: item.icon?.fontSize || PTMenuFancyComponent.DEFAULT_ICON_FONT_SIZE,
|
48
|
+
};
|
49
|
+
}
|
50
|
+
return {
|
51
|
+
color: PTMenuFancyComponent.DEFAULT_ICON_COLOR,
|
52
|
+
fontSize: PTMenuFancyComponent.DEFAULT_ICON_FONT_SIZE,
|
53
|
+
};
|
54
|
+
}
|
55
|
+
getIconClass() {
|
56
|
+
return this.config.icon?.code || PTMenuFancyComponent.DEFAULT_ICON_CODE;
|
57
|
+
}
|
58
|
+
getIconStyles() {
|
59
|
+
return {
|
60
|
+
color: this.config.color ||
|
61
|
+
this.config.icon?.color ||
|
62
|
+
PTMenuFancyComponent.DEFAULT_ICON_COLOR,
|
63
|
+
fontSize: this.config.fontSize ||
|
64
|
+
this.config.icon?.fontSize ||
|
65
|
+
PTMenuFancyComponent.DEFAULT_ICON_FONT_SIZE,
|
66
|
+
};
|
67
|
+
}
|
68
|
+
getTextStyles(item) {
|
69
|
+
return {
|
70
|
+
color: item.color || PTMenuFancyComponent.DEFAULT_TEXT_COLOR,
|
71
|
+
fontSize: item.fontSize || PTMenuFancyComponent.DEFAULT_TEXT_FONT_SIZE,
|
72
|
+
};
|
73
|
+
}
|
74
|
+
onDocumentClick(event) {
|
75
|
+
const clickedInside = event.target.closest('.pt-menu-fancy');
|
76
|
+
if (!clickedInside) {
|
77
|
+
this.closeMenu();
|
78
|
+
}
|
79
|
+
}
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuFancyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMenuFancyComponent, selector: "pt-menu-fancy", inputs: { config: "config" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div\n [ngClass]=\"{\n open: isOpen,\n 'menu-left': config.menuDirection === 'left',\n 'menu-right': config.menuDirection === 'right'\n }\"\n class=\"pt-menu-fancy\"\n>\n <i\n class=\"menu-icon\"\n (click)=\"toggleMenu()\"\n [ngClass]=\"getIconClass()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <div class=\"menu-dropdown\" *ngIf=\"isOpen\">\n <pt-card [config]=\"cardMenuConfig\">\n <div\n class=\"menu-item\"\n *ngFor=\"let item of config.menuItems\"\n (click)=\"item.action()\"\n >\n <i\n [ngClass]=\"getMenuItemIconClass(item)\"\n [ngStyle]=\"getMenuItemIconStyles(item)\"\n ></i>\n <span [ngStyle]=\"getTextStyles(item)\">{{ item.text }}</span>\n </div>\n </pt-card>\n </div>\n</div>\n", styles: [".pt-menu-fancy{position:relative;display:inline-block}.pt-menu-fancy .menu-icon{font-style:normal;font-weight:400;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;padding:8px;transition:background-color .2s,box-shadow .2s}.pt-menu-fancy .menu-icon:hover{background-color:#5959591a;box-shadow:0 0 0 1px #5959591a}.pt-menu-fancy .menu-dropdown{position:absolute;top:100%;background-color:#fff;box-shadow:0 8px 16px #0003;min-width:160px;z-index:1;border-radius:5px;overflow:hidden;opacity:0;transform:translateY(-20px);transition:transform .3s ease-out,opacity .3s ease-out}.pt-menu-fancy.open .menu-dropdown{display:block;opacity:1;transform:translateY(0)}.pt-menu-fancy.menu-left .menu-dropdown{right:0;left:auto}.pt-menu-fancy.menu-right .menu-dropdown{left:0;right:auto}.pt-menu-fancy .menu-item{padding:8px 16px;cursor:pointer;display:flex;align-items:center}.pt-menu-fancy .menu-item i{margin-right:10px}.pt-menu-fancy .menu-item:hover{background-color:#f1f1f1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.PTCardComponent, selector: "pt-card", inputs: ["config"] }] }); }
|
82
|
+
}
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuFancyComponent, decorators: [{
|
84
|
+
type: Component,
|
85
|
+
args: [{ selector: 'pt-menu-fancy', template: "<div\n [ngClass]=\"{\n open: isOpen,\n 'menu-left': config.menuDirection === 'left',\n 'menu-right': config.menuDirection === 'right'\n }\"\n class=\"pt-menu-fancy\"\n>\n <i\n class=\"menu-icon\"\n (click)=\"toggleMenu()\"\n [ngClass]=\"getIconClass()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <div class=\"menu-dropdown\" *ngIf=\"isOpen\">\n <pt-card [config]=\"cardMenuConfig\">\n <div\n class=\"menu-item\"\n *ngFor=\"let item of config.menuItems\"\n (click)=\"item.action()\"\n >\n <i\n [ngClass]=\"getMenuItemIconClass(item)\"\n [ngStyle]=\"getMenuItemIconStyles(item)\"\n ></i>\n <span [ngStyle]=\"getTextStyles(item)\">{{ item.text }}</span>\n </div>\n </pt-card>\n </div>\n</div>\n", styles: [".pt-menu-fancy{position:relative;display:inline-block}.pt-menu-fancy .menu-icon{font-style:normal;font-weight:400;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;padding:8px;transition:background-color .2s,box-shadow .2s}.pt-menu-fancy .menu-icon:hover{background-color:#5959591a;box-shadow:0 0 0 1px #5959591a}.pt-menu-fancy .menu-dropdown{position:absolute;top:100%;background-color:#fff;box-shadow:0 8px 16px #0003;min-width:160px;z-index:1;border-radius:5px;overflow:hidden;opacity:0;transform:translateY(-20px);transition:transform .3s ease-out,opacity .3s ease-out}.pt-menu-fancy.open .menu-dropdown{display:block;opacity:1;transform:translateY(0)}.pt-menu-fancy.menu-left .menu-dropdown{right:0;left:auto}.pt-menu-fancy.menu-right .menu-dropdown{left:0;right:auto}.pt-menu-fancy .menu-item{padding:8px 16px;cursor:pointer;display:flex;align-items:center}.pt-menu-fancy .menu-item i{margin-right:10px}.pt-menu-fancy .menu-item:hover{background-color:#f1f1f1}\n"] }]
|
86
|
+
}], propDecorators: { config: [{
|
87
|
+
type: Input
|
88
|
+
}], onDocumentClick: [{
|
89
|
+
type: HostListener,
|
90
|
+
args: ['document:click', ['$event']]
|
91
|
+
}] } });
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWVudS1mYW5jeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUtZmFuY3kvcHQtbWVudS1mYW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUtZmFuY3kvcHQtbWVudS1mYW5jeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRL0QsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1XLFdBQU0sR0FBZTtZQUM1QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1lBQ25FLGFBQWEsRUFBRSxPQUFPO1NBQ3ZCLENBQUM7UUFFRixtQkFBYyxHQUFlLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBVWhELFdBQU0sR0FBRyxLQUFLLENBQUM7S0E4RWhCO2FBdEZ5Qix1QkFBa0IsR0FBRyxNQUFNLEFBQVQsQ0FBVTthQUM1QiwyQkFBc0IsR0FBRyxNQUFNLEFBQVQsQ0FBVTthQUNoQyx1QkFBa0IsR0FBRyxNQUFNLEFBQVQsQ0FBVTthQUM1QiwyQkFBc0IsR0FBRyxNQUFNLEFBQVQsQ0FBVTthQUNoQyxzQkFBaUIsR0FBRyxrQkFBa0IsQUFBckIsQ0FBc0I7YUFFaEQscUJBQWdCLEdBQWdDLElBQUksQUFBcEMsQ0FBcUM7SUFJcEUsVUFBVTtRQUNSLElBQ0Usb0JBQW9CLENBQUMsZ0JBQWdCO1lBQ3JDLG9CQUFvQixDQUFDLGdCQUFnQixLQUFLLElBQUksRUFDOUMsQ0FBQztZQUNELG9CQUFvQixDQUFDLGdCQUFnQixD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TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVJdGVtLCBNZW51Q29uZmlnLCBDYXJkQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtbWVudS1mYW5jeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1tZW51LWZhbmN5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtbWVudS1mYW5jeS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBUTWVudUZhbmN5Q29tcG9uZW50IHtcbiAgQElucHV0KCkgY29uZmlnOiBNZW51Q29uZmlnID0ge1xuICAgIGljb246IHsgY29kZTogJ3BpIHBpLWVsbGlwc2lzLXYnLCBjb2xvcjogJyMwMDAnLCBmb250U2l6ZTogJzE1cHgnIH0sXG4gICAgbWVudURpcmVjdGlvbjogJ3JpZ2h0JyxcbiAgfTtcblxuICBjYXJkTWVudUNvbmZpZzogQ2FyZENvbmZpZyA9IHsgbm9Cb3JkZXI6IHRydWUgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RFWFRfQ09MT1IgPSAnIzAwMCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVEVYVF9GT05UX1NJWkUgPSAnMTVweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSUNPTl9DT0xPUiA9ICcjMDAwJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9JQ09OX0ZPTlRfU0laRSA9ICcxNXB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9JQ09OX0NPREUgPSAncGkgcGktZWxsaXBzaXMtdic7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgb3Blbk1lbnVJbnN0YW5jZTogUFRNZW51RmFuY3lDb21wb25lbnQgfCBudWxsID0gbnVsbDtcblxuICBpc09wZW4gPSBmYWxzZTtcblxuICB0b2dnbGVNZW51KCkge1xuICAgIGlmIChcbiAgICAgIFBUTWVudUZhbmN5Q29tcG9uZW50Lm9wZW5NZW51SW5zdGFuY2UgJiZcbiAgICAgIFBUTWVudUZhbmN5Q29tcG9uZW50Lm9wZW5NZW51SW5zdGFuY2UgIT09IHRoaXNcbiAgICApIHtcbiAgICAgIFBUTWVudUZhbmN5Q29tcG9uZW50Lm9wZW5NZW51SW5zdGFuY2UuY2xvc2VNZW51KCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG5cbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIFBUTWVudUZhbmN5Q29tcG9uZW50Lm9wZW5NZW51SW5zdGFuY2UgPSB0aGlzO1xuICAgIH0gZWxzZSB7XG4gICAgICBQVE1lbnVGYW5jeUNvbXBvbmVudC5vcGVuTWVudUluc3RhbmNlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjbG9zZU1lbnUoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICBpZiAoUFRNZW51RmFuY3lDb21wb25lbnQub3Blbk1lbnVJbnN0YW5jZSA9PT0gdGhpcykge1xuICAgICAgUFRNZW51RmFuY3lDb21wb25lbnQub3Blbk1lbnVJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZ2V0TWVudUl0ZW1JY29uQ2xhc3MoaXRlbTogTWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIC8vIEFzc3VtaW5nIHRoYXQgaWNvbnMgc3RhcnRpbmcgd2l0aCBcImZhXCIgYXJlIEZvbnRBd2Vzb21lIGljb25zXG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtLmljb24gPT09ICdzdHJpbmcnID8gaXRlbS5pY29uIDogaXRlbS5pY29uPy5jb2RlIHx8ICcnO1xuICB9XG5cbiAgZ2V0TWVudUl0ZW1JY29uU3R5bGVzKGl0ZW06IE1lbnVJdGVtKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtLmljb24gIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogaXRlbS5pY29uPy5jb2xvciB8fCBQVE1lbnVGYW5jeUNvbXBvbmVudC5ERUZBVUxUX0lDT05fQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOlxuICAgICAgICAgIGl0ZW0uaWNvbj8uZm9udFNpemUgfHwgUFRNZW51RmFuY3lDb21wb25lbnQuREVGQVVMVF9JQ09OX0ZPTlRfU0laRSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogUFRNZW51RmFuY3lDb21wb25lbnQuREVGQVVMVF9JQ09OX0NPTE9SLFxuICAgICAgZm9udFNpemU6IFBUTWVudUZhbmN5Q29tcG9uZW50LkRFRkFVTFRfSUNPTl9GT05UX1NJWkUsXG4gICAgfTtcbiAgfVxuXG4gIGdldEljb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5pY29uPy5jb2RlIHx8IFBUTWVudUZhbmN5Q29tcG9uZW50LkRFRkFVTFRfSUNPTl9DT0RFO1xuICB9XG5cbiAgZ2V0SWNvblN0eWxlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6XG4gICAgICAgIHRoaXMuY29uZmlnLmNvbG9yIHx8XG4gICAgICAgIHRoaXMuY29uZmlnLmljb24/LmNvbG9yIHx8XG4gICAgICAgIFBUTWVudUZhbmN5Q29tcG9uZW50LkRFRkFVTFRfSUNPTl9DT0xPUixcbiAgICAgIGZvbnRTaXplOlxuICAgICAgICB0aGlzLmNvbmZpZy5mb250U2l6ZSB8fFxuICAgICAgICB0aGlzLmNvbmZpZy5pY29uPy5mb250U2l6ZSB8fFxuICAgICAgICBQVE1lbnVGYW5jeUNvbXBvbmVudC5ERUZBVUxUX0lDT05fRk9OVF9TSVpFLFxuICAgIH07XG4gIH1cblxuICBnZXRUZXh0U3R5bGVzKGl0ZW06IE1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiBpdGVtLmNvbG9yIHx8IFBUTWVudUZhbmN5Q29tcG9uZW50LkRFRkFVTFRfVEVYVF9DT0xPUixcbiAgICAgIGZvbnRTaXplOiBpdGVtLmZvbnRTaXplIHx8IFBUTWVudUZhbmN5Q29tcG9uZW50LkRFRkFVTFRfVEVYVF9GT05UX1NJWkUsXG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXG4gICAgICAnLnB0LW1lbnUtZmFuY3knXG4gICAgKTtcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcbiAgICAgIHRoaXMuY2xvc2VNZW51KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cIntcbiAgICBvcGVuOiBpc09wZW4sXG4gICAgJ21lbnUtbGVmdCc6IGNvbmZpZy5tZW51RGlyZWN0aW9uID09PSAnbGVmdCcsXG4gICAgJ21lbnUtcmlnaHQnOiBjb25maWcubWVudURpcmVjdGlvbiA9PT0gJ3JpZ2h0J1xuICB9XCJcbiAgY2xhc3M9XCJwdC1tZW51LWZhbmN5XCJcbj5cbiAgPGlcbiAgICBjbGFzcz1cIm1lbnUtaWNvblwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiXG4gICAgW25nQ2xhc3NdPVwiZ2V0SWNvbkNsYXNzKClcIlxuICAgIFtuZ1N0eWxlXT1cImdldEljb25TdHlsZXMoKVwiXG4gID48L2k+XG4gIDxkaXYgY2xhc3M9XCJtZW51LWRyb3Bkb3duXCIgKm5nSWY9XCJpc09wZW5cIj5cbiAgICA8cHQtY2FyZCBbY29uZmlnXT1cImNhcmRNZW51Q29uZmlnXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnLm1lbnVJdGVtc1wiXG4gICAgICAgIChjbGljayk9XCJpdGVtLmFjdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICBbbmdDbGFzc109XCJnZXRNZW51SXRlbUljb25DbGFzcyhpdGVtKVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwiZ2V0TWVudUl0ZW1JY29uU3R5bGVzKGl0ZW0pXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwiZ2V0VGV4dFN0eWxlcyhpdGVtKVwiPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcHQtY2FyZD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { PTMenuFancyComponent } from './pt-menu-fancy.component';
|
4
|
+
import { PTCardModule } from '../pt-card/pt-card.module';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class PTMenuFancyModule {
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuFancyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: PTMenuFancyModule, declarations: [PTMenuFancyComponent], imports: [CommonModule, PTCardModule], exports: [PTMenuFancyComponent] }); }
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuFancyModule, imports: [CommonModule, PTCardModule] }); }
|
10
|
+
}
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMenuFancyModule, decorators: [{
|
12
|
+
type: NgModule,
|
13
|
+
args: [{
|
14
|
+
declarations: [PTMenuFancyComponent],
|
15
|
+
imports: [CommonModule, PTCardModule],
|
16
|
+
exports: [PTMenuFancyComponent],
|
17
|
+
}]
|
18
|
+
}] });
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWVudS1mYW5jeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1lbnUtZmFuY3kvcHQtbWVudS1mYW5jeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU96RCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFKYixvQkFBb0IsYUFDekIsWUFBWSxFQUFFLFlBQVksYUFDMUIsb0JBQW9CO2dIQUVuQixpQkFBaUIsWUFIbEIsWUFBWSxFQUFFLFlBQVk7OzRGQUd6QixpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUFRNZW51RmFuY3lDb21wb25lbnQgfSBmcm9tICcuL3B0LW1lbnUtZmFuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFBUQ2FyZE1vZHVsZSB9IGZyb20gJy4uL3B0LWNhcmQvcHQtY2FyZC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQVE1lbnVGYW5jeUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBUQ2FyZE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtQVE1lbnVGYW5jeUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBUTWVudUZhbmN5TW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './pt-menu-fancy.component';
|
2
|
+
export * from './pt-menu-fancy.module';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtbWVudS1mYW5jeS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHQtbWVudS1mYW5jeS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wdC1tZW51LWZhbmN5Lm1vZHVsZSc7XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './public-api';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1ldHJpYy1jYXJkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|