@sebgroup/green-angular 3.6.3 → 3.7.0
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/esm2020/lib/context-menu/context-menu.component.mjs +4 -4
- package/esm2020/lib/context-menu/context-menu.module.mjs +2 -2
- package/esm2020/lib/datepicker/datepicker.component.mjs +4 -4
- package/esm2020/lib/datepicker/datepicker.module.mjs +5 -6
- package/esm2020/lib/dropdown/dropdown.component.mjs +4 -4
- package/esm2020/lib/dropdown/dropdown.module.mjs +2 -2
- package/esm2020/lib/shared/index.mjs +2 -1
- package/esm2020/src/lib/accordion/accordion-list-item.component.mjs +47 -0
- package/esm2020/src/lib/accordion/accordion.component.mjs +72 -0
- package/esm2020/src/lib/accordion/accordion.module.mjs +19 -0
- package/esm2020/src/lib/accordion/index.mjs +4 -0
- package/esm2020/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +5 -0
- package/esm2020/src/lib/badge/badge.component.mjs +80 -0
- package/esm2020/src/lib/badge/badge.module.mjs +18 -0
- package/esm2020/src/lib/badge/index.mjs +3 -0
- package/esm2020/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +5 -0
- package/esm2020/src/lib/button/button.component.mjs +28 -0
- package/esm2020/src/lib/button/button.module.mjs +18 -0
- package/esm2020/src/lib/button/index.mjs +3 -0
- package/esm2020/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +5 -0
- package/esm2020/src/lib/cell-table/cell-table-item.component.mjs +91 -0
- package/esm2020/src/lib/cell-table/cell-table.component.mjs +97 -0
- package/esm2020/src/lib/cell-table/cell-table.module.mjs +26 -0
- package/esm2020/src/lib/cell-table/cell-table.types.mjs +7 -0
- package/esm2020/src/lib/cell-table/cell-underline.directive.mjs +55 -0
- package/esm2020/src/lib/cell-table/index.mjs +4 -0
- package/esm2020/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +5 -0
- package/esm2020/src/lib/context-menu/context-menu.component.mjs +80 -0
- package/esm2020/src/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2020/src/lib/context-menu/index.mjs +3 -0
- package/esm2020/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +5 -0
- package/esm2020/src/lib/datepicker/datepicker.component.mjs +138 -0
- package/esm2020/src/lib/datepicker/datepicker.module.mjs +20 -0
- package/esm2020/src/lib/datepicker/index.mjs +3 -0
- package/esm2020/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +5 -0
- package/esm2020/src/lib/dropdown/dropdown-button.directive.mjs +16 -0
- package/esm2020/src/lib/dropdown/dropdown-option.directive.mjs +16 -0
- package/esm2020/src/lib/dropdown/dropdown.component.mjs +212 -0
- package/esm2020/src/lib/dropdown/dropdown.module.mjs +34 -0
- package/esm2020/src/lib/dropdown/index.mjs +5 -0
- package/esm2020/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +5 -0
- package/esm2020/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +50 -0
- package/esm2020/src/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
- package/esm2020/src/lib/in-page-wizard/index.mjs +3 -0
- package/esm2020/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +5 -0
- package/esm2020/src/lib/modal/index.mjs +5 -0
- package/esm2020/src/lib/modal/modal-footer.directive.mjs +16 -0
- package/esm2020/src/lib/modal/modal-header.directive.mjs +16 -0
- package/esm2020/src/lib/modal/modal.component.mjs +251 -0
- package/esm2020/src/lib/modal/modal.module.mjs +41 -0
- package/esm2020/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +5 -0
- package/esm2020/src/lib/pagination/index.mjs +3 -0
- package/esm2020/src/lib/pagination/pagination.component.mjs +175 -0
- package/esm2020/src/lib/pagination/pagination.module.mjs +18 -0
- package/esm2020/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +5 -0
- package/esm2020/src/lib/progress-circle/index.mjs +3 -0
- package/esm2020/src/lib/progress-circle/progress-circle.component.mjs +41 -0
- package/esm2020/src/lib/progress-circle/progress-circle.module.mjs +18 -0
- package/esm2020/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +5 -0
- package/esm2020/src/lib/segmented-control/index.mjs +3 -0
- package/esm2020/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +5 -0
- package/esm2020/src/lib/segmented-control/segmented-control.component.mjs +35 -0
- package/esm2020/src/lib/segmented-control/segmented-control.module.mjs +19 -0
- package/esm2020/src/lib/shared/core-element/core-element.directive.mjs +33 -0
- package/esm2020/src/lib/shared/core-element/core-element.module.mjs +18 -0
- package/esm2020/src/lib/shared/core-element/index.mjs +3 -0
- package/esm2020/src/lib/shared/index.mjs +4 -0
- package/esm2020/src/lib/shared/on-scroll.directive.mjs +47 -0
- package/esm2020/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +5 -0
- package/esm2020/src/lib/shared/shared.module.mjs +18 -0
- package/esm2020/src/lib/slider/index.mjs +3 -0
- package/esm2020/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +5 -0
- package/esm2020/src/lib/slider/slider.component.mjs +113 -0
- package/esm2020/src/lib/slider/slider.module.mjs +19 -0
- package/esm2020/src/lib/sortable-list/index.mjs +3 -0
- package/esm2020/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +5 -0
- package/esm2020/src/lib/sortable-list/sortable-list.component.mjs +181 -0
- package/esm2020/src/lib/sortable-list/sortable-list.module.mjs +20 -0
- package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs +140 -0
- package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs +102 -0
- package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-button.mjs +50 -0
- package/fesm2015/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs +272 -0
- package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
- package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs +166 -0
- package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs +266 -0
- package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
- package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs +321 -0
- package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
- package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
- package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
- package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs +114 -0
- package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs +136 -0
- package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
- package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular.mjs +81 -77
- package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
- package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs +138 -0
- package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs +102 -0
- package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-button.mjs +50 -0
- package/fesm2020/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs +270 -0
- package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
- package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs +162 -0
- package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs +274 -0
- package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
- package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs +319 -0
- package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
- package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
- package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
- package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs +113 -0
- package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs +135 -0
- package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
- package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular.mjs +81 -77
- package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
- package/lib/context-menu/context-menu.component.d.ts +1 -1
- package/lib/context-menu/context-menu.module.d.ts +1 -1
- package/lib/datepicker/datepicker.module.d.ts +2 -3
- package/lib/dropdown/dropdown.module.d.ts +1 -1
- package/lib/shared/index.d.ts +1 -0
- package/package.json +122 -2
- package/src/lib/accordion/accordion-list-item.component.d.ts +15 -0
- package/src/lib/accordion/accordion.component.d.ts +16 -0
- package/src/lib/accordion/accordion.module.d.ts +9 -0
- package/src/lib/accordion/index.d.ts +3 -0
- package/src/lib/badge/badge.component.d.ts +25 -0
- package/src/lib/badge/badge.module.d.ts +8 -0
- package/src/lib/badge/index.d.ts +2 -0
- package/src/lib/button/button.component.d.ts +9 -0
- package/src/lib/button/button.module.d.ts +8 -0
- package/src/lib/button/index.d.ts +2 -0
- package/src/lib/cell-table/cell-table-item.component.d.ts +14 -0
- package/src/lib/cell-table/cell-table.component.d.ts +44 -0
- package/src/lib/cell-table/cell-table.module.d.ts +10 -0
- package/src/lib/cell-table/cell-table.types.d.ts +34 -0
- package/src/lib/cell-table/cell-underline.directive.d.ts +14 -0
- package/src/lib/cell-table/index.d.ts +3 -0
- package/src/lib/context-menu/context-menu.component.d.ts +49 -0
- package/src/lib/context-menu/context-menu.module.d.ts +9 -0
- package/src/lib/context-menu/index.d.ts +2 -0
- package/src/lib/datepicker/datepicker.component.d.ts +66 -0
- package/src/lib/datepicker/datepicker.module.d.ts +9 -0
- package/src/lib/datepicker/index.d.ts +2 -0
- package/src/lib/dropdown/dropdown-button.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown-option.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown.component.d.ts +79 -0
- package/src/lib/dropdown/dropdown.module.d.ts +11 -0
- package/src/lib/dropdown/index.d.ts +4 -0
- package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +17 -0
- package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
- package/src/lib/in-page-wizard/index.d.ts +2 -0
- package/src/lib/modal/index.d.ts +4 -0
- package/src/lib/modal/modal-footer.directive.d.ts +8 -0
- package/src/lib/modal/modal-header.directive.d.ts +8 -0
- package/src/lib/modal/modal.component.d.ts +65 -0
- package/src/lib/modal/modal.module.d.ts +11 -0
- package/src/lib/pagination/index.d.ts +2 -0
- package/src/lib/pagination/pagination.component.d.ts +42 -0
- package/src/lib/pagination/pagination.module.d.ts +8 -0
- package/src/lib/progress-circle/index.d.ts +2 -0
- package/src/lib/progress-circle/progress-circle.component.d.ts +14 -0
- package/src/lib/progress-circle/progress-circle.module.d.ts +8 -0
- package/src/lib/segmented-control/index.d.ts +2 -0
- package/src/lib/segmented-control/segmented-control.component.d.ts +11 -0
- package/src/lib/segmented-control/segmented-control.module.d.ts +9 -0
- package/src/lib/shared/core-element/core-element.directive.d.ts +13 -0
- package/src/lib/shared/core-element/core-element.module.d.ts +8 -0
- package/src/lib/shared/core-element/index.d.ts +2 -0
- package/src/lib/shared/index.d.ts +3 -0
- package/src/lib/shared/on-scroll.directive.d.ts +14 -0
- package/src/lib/shared/shared.module.d.ts +8 -0
- package/src/lib/slider/index.d.ts +2 -0
- package/src/lib/slider/slider.component.d.ts +38 -0
- package/src/lib/slider/slider.module.d.ts +9 -0
- package/src/lib/sortable-list/index.d.ts +2 -0
- package/src/lib/sortable-list/sortable-list.component.d.ts +91 -0
- package/src/lib/sortable-list/sortable-list.module.d.ts +10 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, HostBinding, Input, NgModule } from '@angular/core';
|
|
3
|
+
import { randomId, calculateDegrees } from '@sebgroup/extract';
|
|
4
|
+
import * as i1 from '@angular/common';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
|
|
7
|
+
class NggProgressCircleComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._startValue = '0deg';
|
|
10
|
+
this._endValue = '0deg';
|
|
11
|
+
/** id of the progress circle */
|
|
12
|
+
this.id = `${randomId()}-progress-circle`;
|
|
13
|
+
/** theme of the progress circle */
|
|
14
|
+
this.theme = 'warning';
|
|
15
|
+
}
|
|
16
|
+
/** progress circle value in percentage */
|
|
17
|
+
set value(val) {
|
|
18
|
+
const degrees = `${calculateDegrees(val)}deg`;
|
|
19
|
+
this._endValue = degrees;
|
|
20
|
+
if (this.theme === 'disabled') {
|
|
21
|
+
this._startValue = degrees;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
NggProgressCircleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggProgressCircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
NggProgressCircleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggProgressCircleComponent, selector: "ngg-progress-circle", inputs: { id: "id", theme: "theme", value: "value" }, host: { properties: { "style.--start-value": "this._startValue", "style.--end-value": "this._endValue" } }, ngImport: i0, template: "<div\n class=\"gds-progress-circle\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"id\"\n>\n <div class=\"ring full-ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"inner-circle\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggProgressCircleComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'ngg-progress-circle', template: "<div\n class=\"gds-progress-circle\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"id\"\n>\n <div class=\"ring full-ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"inner-circle\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
30
|
+
}], propDecorators: { _startValue: [{
|
|
31
|
+
type: HostBinding,
|
|
32
|
+
args: ['style.--start-value']
|
|
33
|
+
}], _endValue: [{
|
|
34
|
+
type: HostBinding,
|
|
35
|
+
args: ['style.--end-value']
|
|
36
|
+
}], id: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], theme: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], value: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
|
|
44
|
+
class NggProgressCircleModule {
|
|
45
|
+
}
|
|
46
|
+
NggProgressCircleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggProgressCircleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
47
|
+
NggProgressCircleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggProgressCircleModule, declarations: [NggProgressCircleComponent], imports: [CommonModule], exports: [NggProgressCircleComponent] });
|
|
48
|
+
NggProgressCircleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggProgressCircleModule, imports: [CommonModule] });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggProgressCircleModule, decorators: [{
|
|
50
|
+
type: NgModule,
|
|
51
|
+
args: [{
|
|
52
|
+
declarations: [NggProgressCircleComponent],
|
|
53
|
+
imports: [CommonModule],
|
|
54
|
+
exports: [NggProgressCircleComponent],
|
|
55
|
+
}]
|
|
56
|
+
}] });
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Generated bundle index. Do not edit.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
export { NggProgressCircleComponent, NggProgressCircleModule };
|
|
63
|
+
//# sourceMappingURL=sebgroup-green-angular-src-lib-progress-circle.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-lib-progress-circle.mjs","sources":["../../../../libs/angular/src/lib/progress-circle/progress-circle.component.ts","../../../../libs/angular/src/lib/progress-circle/progress-circle.component.html","../../../../libs/angular/src/lib/progress-circle/progress-circle.module.ts","../../../../libs/angular/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core'\nimport {\n calculateDegrees,\n ProgressCircleThemes,\n randomId,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-progress-circle',\n templateUrl: './progress-circle.component.html',\n})\nexport class NggProgressCircleComponent {\n @HostBinding('style.--start-value') private _startValue = '0deg'\n @HostBinding('style.--end-value') private _endValue = '0deg'\n\n /** id of the progress circle */\n @Input() id?: string = `${randomId()}-progress-circle`\n /** theme of the progress circle */\n @Input() theme: ProgressCircleThemes = 'warning'\n /** progress circle value in percentage */\n @Input() set value(val: number) {\n const degrees = `${calculateDegrees(val)}deg`\n this._endValue = degrees\n if (this.theme === 'disabled') {\n this._startValue = degrees\n }\n }\n}\n","<div\n class=\"gds-progress-circle\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"id\"\n>\n <div class=\"ring full-ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"inner-circle\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggProgressCircleComponent } from './progress-circle.component'\n\n@NgModule({\n declarations: [NggProgressCircleComponent],\n imports: [CommonModule],\n exports: [NggProgressCircleComponent],\n})\nexport class NggProgressCircleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAWa,0BAA0B,CAAA;AAJvC,IAAA,WAAA,GAAA;QAK8C,IAAW,CAAA,WAAA,GAAG,MAAM,CAAA;QACtB,IAAS,CAAA,SAAA,GAAG,MAAM,CAAA;;AAGnD,QAAA,IAAA,CAAA,EAAE,GAAY,CAAA,EAAG,QAAQ,EAAE,kBAAkB,CAAA;;QAE7C,IAAK,CAAA,KAAA,GAAyB,SAAS,CAAA;AASjD,KAAA;;IAPC,IAAa,KAAK,CAAC,GAAW,EAAA;QAC5B,MAAM,OAAO,GAAG,CAAG,EAAA,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAA;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAA;AAC3B,SAAA;KACF;;uHAfU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,6NCXvC,ydAkBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDPa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,ydAAA,EAAA,CAAA;8BAIa,WAAW,EAAA,CAAA;sBAAtD,WAAW;uBAAC,qBAAqB,CAAA;gBACQ,SAAS,EAAA,CAAA;sBAAlD,WAAW;uBAAC,mBAAmB,CAAA;gBAGvB,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEO,KAAK,EAAA,CAAA;sBAAjB,KAAK;;;MEVK,uBAAuB,CAAA;;oHAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAJnB,YAAA,EAAA,CAAA,0BAA0B,CAC/B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAEzB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAHxB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/router';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import * as i2 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
|
|
8
|
+
class NggSegmentedControlComponent {
|
|
9
|
+
}
|
|
10
|
+
NggSegmentedControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
+
NggSegmentedControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggSegmentedControlComponent, selector: "ngg-segmented-control", inputs: { $controls: "$controls" }, ngImport: i0, template: `
|
|
12
|
+
<div class="group">
|
|
13
|
+
<a
|
|
14
|
+
*ngFor="let control of $controls | async"
|
|
15
|
+
[routerLink]="control.url"
|
|
16
|
+
routerLinkActive="active"
|
|
17
|
+
class="button"
|
|
18
|
+
>{{ control.text }}</a
|
|
19
|
+
>
|
|
20
|
+
</div>
|
|
21
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSegmentedControlComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'ngg-segmented-control', template: `
|
|
25
|
+
<div class="group">
|
|
26
|
+
<a
|
|
27
|
+
*ngFor="let control of $controls | async"
|
|
28
|
+
[routerLink]="control.url"
|
|
29
|
+
routerLinkActive="active"
|
|
30
|
+
class="button"
|
|
31
|
+
>{{ control.text }}</a
|
|
32
|
+
>
|
|
33
|
+
</div>
|
|
34
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
35
|
+
}], propDecorators: { $controls: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}] } });
|
|
38
|
+
|
|
39
|
+
class NggSegmentedControlModule {
|
|
40
|
+
}
|
|
41
|
+
NggSegmentedControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSegmentedControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
42
|
+
NggSegmentedControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggSegmentedControlModule, declarations: [NggSegmentedControlComponent], imports: [RouterModule, CommonModule], exports: [NggSegmentedControlComponent] });
|
|
43
|
+
NggSegmentedControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSegmentedControlModule, imports: [RouterModule, CommonModule] });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSegmentedControlModule, decorators: [{
|
|
45
|
+
type: NgModule,
|
|
46
|
+
args: [{
|
|
47
|
+
declarations: [NggSegmentedControlComponent],
|
|
48
|
+
imports: [RouterModule, CommonModule],
|
|
49
|
+
exports: [NggSegmentedControlComponent],
|
|
50
|
+
}]
|
|
51
|
+
}] });
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Generated bundle index. Do not edit.
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
export { NggSegmentedControlComponent, NggSegmentedControlModule };
|
|
58
|
+
//# sourceMappingURL=sebgroup-green-angular-src-lib-segmented-control.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-lib-segmented-control.mjs","sources":["../../../../libs/angular/src/lib/segmented-control/segmented-control.component.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.module.ts","../../../../libs/angular/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nexport interface SegmentedControl {\n url: string\n text: Observable<string> | string\n}\n@Component({\n selector: 'ngg-segmented-control',\n template: `\n <div class=\"group\">\n <a\n *ngFor=\"let control of $controls | async\"\n [routerLink]=\"control.url\"\n routerLinkActive=\"active\"\n class=\"button\"\n >{{ control.text }}</a\n >\n </div>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSegmentedControlComponent {\n @Input() $controls: Observable<Array<SegmentedControl>> | undefined\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlComponent } from './segmented-control.component'\nimport { RouterModule } from '@angular/router'\n\n@NgModule({\n declarations: [NggSegmentedControlComponent],\n imports: [RouterModule, CommonModule],\n exports: [NggSegmentedControlComponent],\n})\nexport class NggSegmentedControlModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAsBa,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAd7B,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAIU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhBxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACvB,QAAA,EAAA,CAAA;;;;;;;;;;GAUT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,CAAA;8BAGtC,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;MCbK,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,iBAJrB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CACjC,YAAY,EAAE,YAAY,aAC1B,4BAA4B,CAAA,EAAA,CAAA,CAAA;uHAE3B,yBAAyB,EAAA,OAAA,EAAA,CAH1B,YAAY,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;oBACrC,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, Directive, NgModule, inject, Renderer2, ViewContainerRef, ChangeDetectorRef, TemplateRef } from '@angular/core';
|
|
4
|
+
import { Subject, fromEvent, interval } from 'rxjs';
|
|
5
|
+
import { takeUntil, throttle } from 'rxjs/operators';
|
|
6
|
+
import { getScopedTagName } from '@sebgroup/green-core/scoping';
|
|
7
|
+
|
|
8
|
+
const ON_SCROLL_TOKEN = new InjectionToken('ON_SCROLL_TOKEN');
|
|
9
|
+
class NggOnScrollDirective {
|
|
10
|
+
constructor(elementRef) {
|
|
11
|
+
this.elementRef = elementRef;
|
|
12
|
+
this.onScroll$ = new Subject();
|
|
13
|
+
this.destroy$ = new Subject();
|
|
14
|
+
}
|
|
15
|
+
ngAfterViewInit() {
|
|
16
|
+
if (this.elementRef) {
|
|
17
|
+
fromEvent(this.elementRef?.nativeElement, 'scroll')
|
|
18
|
+
.pipe(takeUntil(this.destroy$), throttle(() => interval(30)))
|
|
19
|
+
.subscribe(() => {
|
|
20
|
+
this.onScroll$.next();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
ngOnDestroy() {
|
|
25
|
+
this.destroy$.next(null);
|
|
26
|
+
this.destroy$.complete();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
NggOnScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggOnScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
+
NggOnScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NggOnScrollDirective, selector: "[nggOnScroll]", providers: [
|
|
31
|
+
{
|
|
32
|
+
provide: ON_SCROLL_TOKEN,
|
|
33
|
+
useFactory: (component) => component?.onScroll$,
|
|
34
|
+
deps: [NggOnScrollDirective],
|
|
35
|
+
},
|
|
36
|
+
], ngImport: i0 });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggOnScrollDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: '[nggOnScroll]',
|
|
41
|
+
providers: [
|
|
42
|
+
{
|
|
43
|
+
provide: ON_SCROLL_TOKEN,
|
|
44
|
+
useFactory: (component) => component?.onScroll$,
|
|
45
|
+
deps: [NggOnScrollDirective],
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
}]
|
|
49
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
50
|
+
|
|
51
|
+
class NggSharedModule {
|
|
52
|
+
}
|
|
53
|
+
NggSharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
54
|
+
NggSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggSharedModule, declarations: [NggOnScrollDirective], imports: [CommonModule], exports: [NggOnScrollDirective] });
|
|
55
|
+
NggSharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSharedModule, imports: [CommonModule] });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSharedModule, decorators: [{
|
|
57
|
+
type: NgModule,
|
|
58
|
+
args: [{
|
|
59
|
+
declarations: [NggOnScrollDirective],
|
|
60
|
+
imports: [CommonModule],
|
|
61
|
+
exports: [NggOnScrollDirective],
|
|
62
|
+
}]
|
|
63
|
+
}] });
|
|
64
|
+
|
|
65
|
+
class NggCoreElementDirective {
|
|
66
|
+
constructor() {
|
|
67
|
+
this.viewRef = null;
|
|
68
|
+
this.document = inject(DOCUMENT);
|
|
69
|
+
this.renderer = inject(Renderer2);
|
|
70
|
+
this.vcr = inject(ViewContainerRef);
|
|
71
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
72
|
+
this.template = inject((TemplateRef));
|
|
73
|
+
}
|
|
74
|
+
ngOnInit() {
|
|
75
|
+
this.vcr.clear();
|
|
76
|
+
const originalCreateElement = this.renderer.createElement;
|
|
77
|
+
this.renderer.createElement = (name, _namespace) => {
|
|
78
|
+
return this.document.createElement(getScopedTagName(name));
|
|
79
|
+
};
|
|
80
|
+
this.viewRef = this.vcr.createEmbeddedView(this.template);
|
|
81
|
+
this.renderer.createElement = originalCreateElement;
|
|
82
|
+
this.cdr.markForCheck();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
NggCoreElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
86
|
+
NggCoreElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NggCoreElementDirective, selector: "[nggCoreElement]", ngImport: i0 });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreElementDirective, decorators: [{
|
|
88
|
+
type: Directive,
|
|
89
|
+
args: [{
|
|
90
|
+
selector: '[nggCoreElement]',
|
|
91
|
+
}]
|
|
92
|
+
}] });
|
|
93
|
+
|
|
94
|
+
class NggCoreWrapperModule {
|
|
95
|
+
}
|
|
96
|
+
NggCoreWrapperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
97
|
+
NggCoreWrapperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, declarations: [NggCoreElementDirective], imports: [CommonModule], exports: [NggCoreElementDirective] });
|
|
98
|
+
NggCoreWrapperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, imports: [CommonModule] });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, decorators: [{
|
|
100
|
+
type: NgModule,
|
|
101
|
+
args: [{
|
|
102
|
+
declarations: [NggCoreElementDirective],
|
|
103
|
+
imports: [CommonModule],
|
|
104
|
+
exports: [NggCoreElementDirective],
|
|
105
|
+
}]
|
|
106
|
+
}] });
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Generated bundle index. Do not edit.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
export { NggCoreElementDirective, NggCoreWrapperModule, NggOnScrollDirective, NggSharedModule, ON_SCROLL_TOKEN };
|
|
113
|
+
//# sourceMappingURL=sebgroup-green-angular-src-lib-shared.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-lib-shared.mjs","sources":["../../../../libs/angular/src/lib/shared/on-scroll.directive.ts","../../../../libs/angular/src/lib/shared/shared.module.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.directive.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.module.ts","../../../../libs/angular/src/lib/shared/sebgroup-green-angular-src-lib-shared.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n InjectionToken,\n OnDestroy,\n} from '@angular/core'\nimport { Subject, fromEvent, interval } from 'rxjs'\nimport { takeUntil, throttle } from 'rxjs/operators'\n\nexport const ON_SCROLL_TOKEN = new InjectionToken<string>('ON_SCROLL_TOKEN')\n\n@Directive({\n selector: '[nggOnScroll]',\n providers: [\n {\n provide: ON_SCROLL_TOKEN,\n useFactory: (component: NggOnScrollDirective): Subject<unknown> =>\n component?.onScroll$,\n deps: [NggOnScrollDirective],\n },\n ],\n})\nexport class NggOnScrollDirective implements AfterViewInit, OnDestroy {\n onScroll$ = new Subject()\n destroy$ = new Subject()\n\n constructor(private elementRef: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (this.elementRef) {\n fromEvent(this.elementRef?.nativeElement, 'scroll')\n .pipe(\n takeUntil(this.destroy$),\n throttle(() => interval(30)),\n )\n .subscribe(() => {\n this.onScroll$.next()\n })\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(null)\n this.destroy$.complete()\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggOnScrollDirective } from './on-scroll.directive'\n\n@NgModule({\n declarations: [NggOnScrollDirective],\n imports: [CommonModule],\n exports: [NggOnScrollDirective],\n})\nexport class NggSharedModule {}\n","import { DOCUMENT } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Directive,\n EmbeddedViewRef,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core'\n\nimport { getScopedTagName } from '@sebgroup/green-core/scoping'\n\n@Directive({\n selector: '[nggCoreElement]',\n})\nexport class NggCoreElementDirective implements OnInit {\n private viewRef: EmbeddedViewRef<any> | null = null\n private readonly document = inject(DOCUMENT)\n private readonly renderer = inject(Renderer2)\n private readonly vcr = inject(ViewContainerRef)\n private readonly cdr = inject(ChangeDetectorRef)\n private readonly template = inject(TemplateRef<any>)\n\n ngOnInit() {\n this.vcr.clear()\n const originalCreateElement = this.renderer.createElement\n\n this.renderer.createElement = (name: string, _namespace: string) => {\n return this.document.createElement(getScopedTagName(name))\n }\n\n this.viewRef = this.vcr.createEmbeddedView(this.template)\n this.renderer.createElement = originalCreateElement\n this.cdr.markForCheck()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggCoreElementDirective } from './core-element.directive'\n\n@NgModule({\n declarations: [NggCoreElementDirective],\n imports: [CommonModule],\n exports: [NggCoreElementDirective],\n})\nexport class NggCoreWrapperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/forms';
|
|
4
|
+
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
5
|
+
import { randomId, sliderColors, getSliderTrackBackground } from '@sebgroup/extract';
|
|
6
|
+
import * as i1 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
|
|
9
|
+
class NggSliderComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.name = `${randomId()}-slider`;
|
|
12
|
+
this.min = 0;
|
|
13
|
+
this.max = 100;
|
|
14
|
+
this.step = 1;
|
|
15
|
+
this.label = '';
|
|
16
|
+
this.instruction = '';
|
|
17
|
+
this.placeholder = '';
|
|
18
|
+
this.errorMessage = '';
|
|
19
|
+
this.hasTextbox = false;
|
|
20
|
+
this.unitLabel = 'kr';
|
|
21
|
+
this.disabled = false;
|
|
22
|
+
this.value = 0;
|
|
23
|
+
this.sliderChange = new EventEmitter();
|
|
24
|
+
this.sliderTouch = new EventEmitter();
|
|
25
|
+
this.style = {};
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.setTrackBackground();
|
|
29
|
+
}
|
|
30
|
+
ngOnChanges(changes) {
|
|
31
|
+
if (['min', 'max', 'value'].some((x) => Object.prototype.hasOwnProperty.call(changes, x))) {
|
|
32
|
+
this.setTrackBackground();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
onBlur() {
|
|
36
|
+
this.sliderTouch.emit(true);
|
|
37
|
+
this.onTouchedFn && this.onTouchedFn();
|
|
38
|
+
}
|
|
39
|
+
handleChange() {
|
|
40
|
+
this.value = this.value ?? 0;
|
|
41
|
+
this.setTrackBackground();
|
|
42
|
+
this.sliderChange.emit(this.value);
|
|
43
|
+
this.onChangeFn && this.onChangeFn(this.value);
|
|
44
|
+
}
|
|
45
|
+
setTrackBackground() {
|
|
46
|
+
if (this.disabled) {
|
|
47
|
+
this.style.background = sliderColors.disabled;
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const percent = ((this.value - this.min) / (this.max - this.min)) * 100;
|
|
51
|
+
this.style.background = getSliderTrackBackground(percent);
|
|
52
|
+
}
|
|
53
|
+
/** control value accessor functions */
|
|
54
|
+
writeValue(val) {
|
|
55
|
+
if (this.value !== val) {
|
|
56
|
+
this.value = val ?? 0;
|
|
57
|
+
this.handleChange();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
registerOnChange(fn) {
|
|
61
|
+
this.onChangeFn = fn;
|
|
62
|
+
}
|
|
63
|
+
registerOnTouched(fn) {
|
|
64
|
+
this.onTouchedFn = fn;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
NggSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
NggSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggSliderComponent, selector: "ngg-slider", inputs: { name: "name", min: "min", max: "max", step: "step", label: "label", instruction: "instruction", placeholder: "placeholder", errorMessage: "errorMessage", hasTextbox: "hasTextbox", unitLabel: "unitLabel", disabled: "disabled", value: "value", enterkeyhint: "enterkeyhint" }, outputs: { sliderChange: "sliderChange", sliderTouch: "sliderTouch" }, providers: [
|
|
69
|
+
{
|
|
70
|
+
provide: NG_VALUE_ACCESSOR,
|
|
71
|
+
useExisting: NggSliderComponent,
|
|
72
|
+
multi: true,
|
|
73
|
+
},
|
|
74
|
+
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'ngg-slider', providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: NG_VALUE_ACCESSOR,
|
|
80
|
+
useExisting: NggSliderComponent,
|
|
81
|
+
multi: true,
|
|
82
|
+
},
|
|
83
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n" }]
|
|
84
|
+
}], propDecorators: { name: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], min: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], max: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], step: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], label: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], instruction: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], placeholder: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], errorMessage: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], hasTextbox: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], unitLabel: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], disabled: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], value: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], enterkeyhint: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], sliderChange: [{
|
|
111
|
+
type: Output
|
|
112
|
+
}], sliderTouch: [{
|
|
113
|
+
type: Output
|
|
114
|
+
}] } });
|
|
115
|
+
|
|
116
|
+
class NggSliderModule {
|
|
117
|
+
}
|
|
118
|
+
NggSliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
119
|
+
NggSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggSliderModule, declarations: [NggSliderComponent], imports: [CommonModule, FormsModule], exports: [NggSliderComponent] });
|
|
120
|
+
NggSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderModule, imports: [CommonModule, FormsModule] });
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderModule, decorators: [{
|
|
122
|
+
type: NgModule,
|
|
123
|
+
args: [{
|
|
124
|
+
imports: [CommonModule, FormsModule],
|
|
125
|
+
exports: [NggSliderComponent],
|
|
126
|
+
declarations: [NggSliderComponent],
|
|
127
|
+
}]
|
|
128
|
+
}] });
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Generated bundle index. Do not edit.
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
export { NggSliderComponent, NggSliderModule };
|
|
135
|
+
//# sourceMappingURL=sebgroup-green-angular-src-lib-slider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-lib-slider.mjs","sources":["../../../../libs/angular/src/lib/slider/slider.component.ts","../../../../libs/angular/src/lib/slider/slider.component.html","../../../../libs/angular/src/lib/slider/slider.module.ts","../../../../libs/angular/src/lib/slider/sebgroup-green-angular-src-lib-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport {\n getSliderTrackBackground,\n randomId,\n sliderColors,\n} from '@sebgroup/extract'\n\ninterface SliderStyle {\n background?: string\n}\n\n@Component({\n selector: 'ngg-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggSliderComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSliderComponent\n implements ControlValueAccessor, OnInit, OnChanges\n{\n @Input() name = `${randomId()}-slider`\n @Input() min = 0\n @Input() max = 100\n @Input() step = 1\n @Input() label = ''\n @Input() instruction = ''\n @Input() placeholder = ''\n @Input() errorMessage = ''\n @Input() hasTextbox = false\n @Input() unitLabel = 'kr'\n @Input() disabled = false\n @Input() value = 0\n @Input() enterkeyhint?:\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send'\n\n @Output() sliderChange = new EventEmitter<number>()\n @Output() sliderTouch = new EventEmitter<boolean>()\n\n onChangeFn?: (val: number) => void\n onTouchedFn?: VoidFunction\n style: SliderStyle = {}\n\n ngOnInit(): void {\n this.setTrackBackground()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n ['min', 'max', 'value'].some((x: string) =>\n Object.prototype.hasOwnProperty.call(changes, x),\n )\n ) {\n this.setTrackBackground()\n }\n }\n\n onBlur(): void {\n this.sliderTouch.emit(true)\n this.onTouchedFn && this.onTouchedFn()\n }\n\n handleChange(): void {\n this.value = this.value ?? 0\n this.setTrackBackground()\n this.sliderChange.emit(this.value)\n this.onChangeFn && this.onChangeFn(this.value)\n }\n\n setTrackBackground(): void {\n if (this.disabled) {\n this.style.background = sliderColors.disabled\n return\n }\n\n const percent = ((this.value - this.min) / (this.max - this.min)) * 100\n this.style.background = getSliderTrackBackground(percent)\n }\n\n /** control value accessor functions */\n writeValue(val: number): void {\n if (this.value !== val) {\n this.value = val ?? 0\n this.handleChange()\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n}\n","<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\n\nimport { NggSliderComponent } from './slider.component'\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n exports: [NggSliderComponent],\n declarations: [NggSliderComponent],\n})\nexport class NggSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAiCa,kBAAkB,CAAA;AAZ/B,IAAA,WAAA,GAAA;AAeW,QAAA,IAAA,CAAA,IAAI,GAAG,CAAA,EAAG,QAAQ,EAAE,SAAS,CAAA;QAC7B,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;QACP,IAAG,CAAA,GAAA,GAAG,GAAG,CAAA;QACT,IAAI,CAAA,IAAA,GAAG,CAAC,CAAA;QACR,IAAK,CAAA,KAAA,GAAG,EAAE,CAAA;QACV,IAAW,CAAA,WAAA,GAAG,EAAE,CAAA;QAChB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAA;QAChB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAA;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;QAChB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;QAChB,IAAK,CAAA,KAAA,GAAG,CAAC,CAAA;AAUR,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAA;AACzC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAW,CAAA;QAInD,IAAK,CAAA,KAAA,GAAgB,EAAE,CAAA;AAqDxB,KAAA;IAnDC,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAA;KAC1B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IACE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAS,KACrC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CACjD,EACD;YACA,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAC1B,SAAA;KACF;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;KACvC;IAED,YAAY,GAAA;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC/C;IAED,kBAAkB,GAAA;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAA;YAC7C,OAAM;AACP,SAAA;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;QACvE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;KAC1D;;AAGD,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,CAAA;YACrB,IAAI,CAAC,YAAY,EAAE,CAAA;AACpB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;KACrB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;KACtB;;+GAjFU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EATlB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BH,o/CAqDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDpBa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAEX,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAoB,kBAAA;AAC/B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,o/CAAA,EAAA,CAAA;8BAKtC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBASI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;ME/CI,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAFX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAFvB,YAAY,EAAE,WAAW,aACzB,kBAAkB,CAAA,EAAA,CAAA,CAAA;6GAGjB,eAAe,EAAA,OAAA,EAAA,CAJhB,YAAY,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA;2FAIxB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;oBACpC,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC;AACnC,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
|