otimus-library 0.2.95 → 0.2.97
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/fesm2022/otimus-library.mjs +336 -279
- package/fesm2022/otimus-library.mjs.map +1 -1
- package/index.d.ts +587 -5
- package/package.json +5 -7
- package/esm2022/lib/components/oc-accordion/oc-accordion.component.mjs +0 -48
- package/esm2022/lib/components/oc-accordion-item/oc-accordion-item.component.mjs +0 -35
- package/esm2022/lib/components/oc-autocomplete/oc-autocomplete.component.mjs +0 -373
- package/esm2022/lib/components/oc-badge/oc-badge.component.mjs +0 -30
- package/esm2022/lib/components/oc-button-menu/oc-button-menu.component.mjs +0 -45
- package/esm2022/lib/components/oc-checkbox/oc-checkbox.component.mjs +0 -140
- package/esm2022/lib/components/oc-chip/oc-chip.component.mjs +0 -48
- package/esm2022/lib/components/oc-date-select/data/months.json +0 -44
- package/esm2022/lib/components/oc-date-select/oc-date-select.component.mjs +0 -128
- package/esm2022/lib/components/oc-filter/oc-filter.component.mjs +0 -39
- package/esm2022/lib/components/oc-input/oc-input.component.mjs +0 -97
- package/esm2022/lib/components/oc-key-value/oc-key-value.component.mjs +0 -31
- package/esm2022/lib/components/oc-log/oc-log.component.mjs +0 -22
- package/esm2022/lib/components/oc-menu/oc-menu.component.mjs +0 -81
- package/esm2022/lib/components/oc-message/oc-message.component.mjs +0 -52
- package/esm2022/lib/components/oc-modal/oc-modal.component.mjs +0 -85
- package/esm2022/lib/components/oc-modal-footer/oc-modal-footer.component.mjs +0 -23
- package/esm2022/lib/components/oc-not-found/oc-not-found.component.mjs +0 -11
- package/esm2022/lib/components/oc-pagination/oc-pagination.component.mjs +0 -49
- package/esm2022/lib/components/oc-profile/oc-profile.component.mjs +0 -38
- package/esm2022/lib/components/oc-progress/oc-progress.component.mjs +0 -35
- package/esm2022/lib/components/oc-step/oc-step.component.mjs +0 -58
- package/esm2022/lib/components/oc-stepper/oc-stepper.component.mjs +0 -94
- package/esm2022/lib/components/oc-tab/oc-tab.component.mjs +0 -20
- package/esm2022/lib/components/oc-tabs/oc-tabs.component.mjs +0 -42
- package/esm2022/lib/components/oc-toast/oc-toast.component.mjs +0 -17
- package/esm2022/lib/components/oc-toggle/oc-toggle.component.mjs +0 -40
- package/esm2022/lib/directives/oc-tooltip/oc-tooltip.directive.mjs +0 -160
- package/esm2022/lib/interfaces/oc-autocomplete.mjs +0 -2
- package/esm2022/lib/interfaces/oc-menu.mjs +0 -2
- package/esm2022/lib/interfaces/oc-style-theme.mjs +0 -2
- package/esm2022/lib/interfaces/oc-toast.mjs +0 -2
- package/esm2022/lib/otimus-library.component.mjs +0 -19
- package/esm2022/lib/otimus-library.service.mjs +0 -14
- package/esm2022/lib/services/internationalization.service.mjs +0 -68
- package/esm2022/lib/services/oc-toast.service.mjs +0 -81
- package/esm2022/lib/services/style-theme.service.mjs +0 -21
- package/esm2022/otimus-library.mjs +0 -5
- package/esm2022/public-api.mjs +0 -34
- package/lib/components/oc-accordion/oc-accordion.component.d.ts +0 -18
- package/lib/components/oc-accordion-item/oc-accordion-item.component.d.ts +0 -12
- package/lib/components/oc-autocomplete/oc-autocomplete.component.d.ts +0 -83
- package/lib/components/oc-badge/oc-badge.component.d.ts +0 -11
- package/lib/components/oc-button-menu/oc-button-menu.component.d.ts +0 -14
- package/lib/components/oc-checkbox/oc-checkbox.component.d.ts +0 -37
- package/lib/components/oc-chip/oc-chip.component.d.ts +0 -15
- package/lib/components/oc-date-select/oc-date-select.component.d.ts +0 -26
- package/lib/components/oc-filter/oc-filter.component.d.ts +0 -17
- package/lib/components/oc-input/oc-input.component.d.ts +0 -31
- package/lib/components/oc-key-value/oc-key-value.component.d.ts +0 -16
- package/lib/components/oc-log/oc-log.component.d.ts +0 -7
- package/lib/components/oc-menu/oc-menu.component.d.ts +0 -20
- package/lib/components/oc-message/oc-message.component.d.ts +0 -17
- package/lib/components/oc-modal/oc-modal.component.d.ts +0 -30
- package/lib/components/oc-modal-footer/oc-modal-footer.component.d.ts +0 -8
- package/lib/components/oc-not-found/oc-not-found.component.d.ts +0 -5
- package/lib/components/oc-pagination/oc-pagination.component.d.ts +0 -14
- package/lib/components/oc-profile/oc-profile.component.d.ts +0 -12
- package/lib/components/oc-progress/oc-progress.component.d.ts +0 -12
- package/lib/components/oc-step/oc-step.component.d.ts +0 -24
- package/lib/components/oc-stepper/oc-stepper.component.d.ts +0 -25
- package/lib/components/oc-tab/oc-tab.component.d.ts +0 -8
- package/lib/components/oc-tabs/oc-tabs.component.d.ts +0 -18
- package/lib/components/oc-toast/oc-toast.component.d.ts +0 -8
- package/lib/components/oc-toggle/oc-toggle.component.d.ts +0 -14
- package/lib/directives/oc-tooltip/oc-tooltip.directive.d.ts +0 -24
- package/lib/interfaces/oc-autocomplete.d.ts +0 -9
- package/lib/interfaces/oc-menu.d.ts +0 -9
- package/lib/interfaces/oc-style-theme.d.ts +0 -2
- package/lib/interfaces/oc-toast.d.ts +0 -8
- package/lib/otimus-library.component.d.ts +0 -5
- package/lib/otimus-library.service.d.ts +0 -6
- package/lib/services/internationalization.service.d.ts +0 -17
- package/lib/services/oc-toast.service.d.ts +0 -14
- package/lib/services/style-theme.service.d.ts +0 -8
- package/public-api.d.ts +0 -30
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class OcBadgeComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.ocSize = 'small';
|
|
8
|
-
this.ocColor = 'notification';
|
|
9
|
-
this.ocWaved = false;
|
|
10
|
-
this.classList = [];
|
|
11
|
-
}
|
|
12
|
-
ngOnInit() {
|
|
13
|
-
this.classList.push(this.ocSize, this.ocColor);
|
|
14
|
-
if (this.ocWaved)
|
|
15
|
-
this.classList.push('waved');
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OcBadgeComponent, isStandalone: true, selector: "oc-badge", inputs: { ocSize: "ocSize", ocColor: "ocColor", ocWaved: "ocWaved" }, ngImport: i0, template: "<div>\n <div class=\"oc-badge\" [ngClass]=\"classList\">\n <ng-content>\n \n </ng-content>\n </div>\n</div>\n", styles: [".oc-badge{border-radius:50%;display:flex;justify-content:center;align-items:center;color:#f8f9ff}.oc-badge>*{color:#f8f9ff;font-weight:600}.notification{background-color:#ed3a3a}.brand-g{background-color:#00dda3}.brand-p{background-color:#5505a2}.success{background-color:#4ab858}.warning{background-color:#ebbc2e}.small{width:15px;height:15px;font-size:.7rem}.medium{width:22px;height:22px;font-size:1rem}.large{width:28px;height:28px;font-size:1.25rem}.waved{position:relative;z-index:2}.waved:before,.waved:after{z-index:-1;content:\"\";position:absolute;top:0;border-radius:50%;width:100%;height:100%;animation:wave infinite 2s}.waved:after{animation-delay:.6s}.waved.notification:before,.waved.notification:after{background-color:#ed3a3a}.waved.brand-g:before,.waved.brand-g:after{background-color:#00dda3}.waved.brand-p:before,.waved.brand-p:after{background-color:#5505a2}.waved.success:before,.waved.success:after{background-color:#4ab858}.waved.warning:before,.waved.warning:after{background-color:#ebbc2e}@keyframes wave{0%{transform:scale(0)}to{opacity:0;transform:scale(2)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
19
|
-
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcBadgeComponent, decorators: [{
|
|
21
|
-
type: Component,
|
|
22
|
-
args: [{ selector: 'oc-badge', standalone: true, imports: [CommonModule], template: "<div>\n <div class=\"oc-badge\" [ngClass]=\"classList\">\n <ng-content>\n \n </ng-content>\n </div>\n</div>\n", styles: [".oc-badge{border-radius:50%;display:flex;justify-content:center;align-items:center;color:#f8f9ff}.oc-badge>*{color:#f8f9ff;font-weight:600}.notification{background-color:#ed3a3a}.brand-g{background-color:#00dda3}.brand-p{background-color:#5505a2}.success{background-color:#4ab858}.warning{background-color:#ebbc2e}.small{width:15px;height:15px;font-size:.7rem}.medium{width:22px;height:22px;font-size:1rem}.large{width:28px;height:28px;font-size:1.25rem}.waved{position:relative;z-index:2}.waved:before,.waved:after{z-index:-1;content:\"\";position:absolute;top:0;border-radius:50%;width:100%;height:100%;animation:wave infinite 2s}.waved:after{animation-delay:.6s}.waved.notification:before,.waved.notification:after{background-color:#ed3a3a}.waved.brand-g:before,.waved.brand-g:after{background-color:#00dda3}.waved.brand-p:before,.waved.brand-p:after{background-color:#5505a2}.waved.success:before,.waved.success:after{background-color:#4ab858}.waved.warning:before,.waved.warning:after{background-color:#ebbc2e}@keyframes wave{0%{transform:scale(0)}to{opacity:0;transform:scale(2)}}\n"] }]
|
|
23
|
-
}], propDecorators: { ocSize: [{
|
|
24
|
-
type: Input
|
|
25
|
-
}], ocColor: [{
|
|
26
|
-
type: Input
|
|
27
|
-
}], ocWaved: [{
|
|
28
|
-
type: Input
|
|
29
|
-
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWJhZGdlL29jLWJhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1iYWRnZS9vYy1iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQVN6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBUDdCO1FBUVcsV0FBTSxHQUFpQyxPQUFPLENBQUE7UUFDOUMsWUFBTyxHQUFtRSxjQUFjLENBQUE7UUFDeEYsWUFBTyxHQUFZLEtBQUssQ0FBQTtRQUVqQyxjQUFTLEdBQWEsRUFBRSxDQUFBO0tBTXpCO0lBSkMsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzlDLElBQUcsSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMvQyxDQUFDOytHQVZVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLDBJQ1Y3Qix3SEFPQSx5bkNERFksWUFBWTs7NEZBSVgsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBS2QsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jLWJhZGdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy1iYWRnZS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgT2NCYWRnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9jU2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdzbWFsbCdcbiAgQElucHV0KCkgb2NDb2xvcjogJ25vdGlmaWNhdGlvbicgfCAnYnJhbmQtZycgfCAnYnJhbmQtcCcgfCAnc3VjY2VzcycgfCAnd2FybmluZycgPSAnbm90aWZpY2F0aW9uJ1xuICBASW5wdXQoKSBvY1dhdmVkOiBib29sZWFuID0gZmFsc2VcblxuICBjbGFzc0xpc3Q6IHN0cmluZ1tdID0gW11cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsYXNzTGlzdC5wdXNoKHRoaXMub2NTaXplLCB0aGlzLm9jQ29sb3IpXG4gICAgaWYodGhpcy5vY1dhdmVkKSB0aGlzLmNsYXNzTGlzdC5wdXNoKCd3YXZlZCcpXG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXYgY2xhc3M9XCJvYy1iYWRnZVwiIFtuZ0NsYXNzXT1cImNsYXNzTGlzdFwiPlxuICAgIDxuZy1jb250ZW50PlxuICBcbiAgICA8L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import { OcMenuComponent } from '../oc-menu/oc-menu.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class OcButtonMenuComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.ocSize = 'medium';
|
|
9
|
-
this.ocColor = 'lightGray';
|
|
10
|
-
this.ocType = 'button';
|
|
11
|
-
this.ocMenu = [];
|
|
12
|
-
this.ocClick = new EventEmitter();
|
|
13
|
-
this.ocChange = new EventEmitter();
|
|
14
|
-
}
|
|
15
|
-
getStyleClass() {
|
|
16
|
-
return {
|
|
17
|
-
tiny: this.ocSize === 'tiny',
|
|
18
|
-
small: this.ocSize === 'small',
|
|
19
|
-
medium: this.ocSize === 'medium',
|
|
20
|
-
large: this.ocSize === 'large',
|
|
21
|
-
'p-1': this.ocColor === 'purple',
|
|
22
|
-
'gray-1': this.ocColor === 'lightGray',
|
|
23
|
-
'g-1': this.ocColor === 'green',
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcButtonMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OcButtonMenuComponent, isStandalone: true, selector: "oc-button-menu", inputs: { ocSize: "ocSize", ocColor: "ocColor", ocType: "ocType", ocMenu: "ocMenu" }, outputs: { ocClick: "ocClick", ocChange: "ocChange" }, ngImport: i0, template: "<div class=\"oc-button-menu\" [ngClass]=\"getStyleClass()\">\n <button class=\"oc button left-btn\" [type]=\"ocType\" (click)=\"ocClick.emit($event)\">\n <ng-content></ng-content>\n </button>\n <button (click)=\"menu.open()\" class=\"oc button menu right-btn\" [ngClass]=\"getStyleClass()\">\n <span class=\"material-symbols-outlined\">\n arrow_drop_down\n </span>\n <oc-menu class=\"oc-menu\" #menu [ocMenu]=\"ocMenu\" (ocChange)=\"ocChange.emit($event)\"></oc-menu>\n </button>\n</div>", styles: [".oc-button-menu{display:flex;gap:0}.oc-button-menu .left-btn{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.oc-button-menu .right-btn{border-top-left-radius:0;border-bottom-left-radius:0;filter:brightness(.97);width:36px;padding-left:.3rem;padding-right:.3rem}.oc-menu{transform:translate(-50px) translateY(10px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: OcMenuComponent, selector: "oc-menu", inputs: ["ocMenu"], outputs: ["ocChange"] }] }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcButtonMenuComponent, decorators: [{
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{ selector: 'oc-button-menu', standalone: true, imports: [CommonModule, OcMenuComponent], template: "<div class=\"oc-button-menu\" [ngClass]=\"getStyleClass()\">\n <button class=\"oc button left-btn\" [type]=\"ocType\" (click)=\"ocClick.emit($event)\">\n <ng-content></ng-content>\n </button>\n <button (click)=\"menu.open()\" class=\"oc button menu right-btn\" [ngClass]=\"getStyleClass()\">\n <span class=\"material-symbols-outlined\">\n arrow_drop_down\n </span>\n <oc-menu class=\"oc-menu\" #menu [ocMenu]=\"ocMenu\" (ocChange)=\"ocChange.emit($event)\"></oc-menu>\n </button>\n</div>", styles: [".oc-button-menu{display:flex;gap:0}.oc-button-menu .left-btn{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.oc-button-menu .right-btn{border-top-left-radius:0;border-bottom-left-radius:0;filter:brightness(.97);width:36px;padding-left:.3rem;padding-right:.3rem}.oc-menu{transform:translate(-50px) translateY(10px)}\n"] }]
|
|
32
|
-
}], propDecorators: { ocSize: [{
|
|
33
|
-
type: Input
|
|
34
|
-
}], ocColor: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], ocType: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}], ocMenu: [{
|
|
39
|
-
type: Input
|
|
40
|
-
}], ocClick: [{
|
|
41
|
-
type: Output
|
|
42
|
-
}], ocChange: [{
|
|
43
|
-
type: Output
|
|
44
|
-
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYnV0dG9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWJ1dHRvbi1tZW51L29jLWJ1dHRvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1idXR0b24tbWVudS9vYy1idXR0b24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUE7OztBQVM5RCxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBUVcsV0FBTSxHQUEwQyxRQUFRLENBQUE7UUFDeEQsWUFBTyxHQUFxQyxXQUFXLENBQUE7UUFDdkQsV0FBTSxHQUF3QixRQUFRLENBQUE7UUFDdEMsV0FBTSxHQUFpQixFQUFFLENBQUE7UUFDeEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7UUFDNUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7S0FheEM7SUFYVyxhQUFhO1FBQ3JCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNO1lBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPO1lBQzlCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVE7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVztZQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPO1NBQ2hDLENBQUE7SUFDSCxDQUFDOytHQWxCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix1TkNabEMsOGZBVU0sNFlERk0sWUFBWSw2SEFBRSxlQUFlOzs0RkFJNUIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7OEJBSy9CLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPY01lbnVUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYy1tZW51J1xuaW1wb3J0IHsgT2NNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vb2MtbWVudS9vYy1tZW51LmNvbXBvbmVudCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtYnV0dG9uLW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPY01lbnVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtYnV0dG9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2MtYnV0dG9uLW1lbnUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPY0J1dHRvbk1lbnVDb21wb25lbnQge1xuICBASW5wdXQoKSBvY1NpemU6ICd0aW55JyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJ1xuICBASW5wdXQoKSBvY0NvbG9yOiAncHVycGxlJyB8ICdncmVlbicgfCAnbGlnaHRHcmF5JyA9ICdsaWdodEdyYXknXG4gIEBJbnB1dCgpIG9jVHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyA9ICdidXR0b24nXG4gIEBJbnB1dCgpIG9jTWVudTogT2NNZW51VHlwZVtdID0gW11cbiAgQE91dHB1dCgpIG9jQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIG9jQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgcHJvdGVjdGVkIGdldFN0eWxlQ2xhc3MoKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGlueTogdGhpcy5vY1NpemUgPT09ICd0aW55JyxcbiAgICAgIHNtYWxsOiB0aGlzLm9jU2l6ZSA9PT0gJ3NtYWxsJyxcbiAgICAgIG1lZGl1bTogdGhpcy5vY1NpemUgPT09ICdtZWRpdW0nLFxuICAgICAgbGFyZ2U6IHRoaXMub2NTaXplID09PSAnbGFyZ2UnLFxuICAgICAgJ3AtMSc6IHRoaXMub2NDb2xvciA9PT0gJ3B1cnBsZScsXG4gICAgICAnZ3JheS0xJzogdGhpcy5vY0NvbG9yID09PSAnbGlnaHRHcmF5JyxcbiAgICAgICdnLTEnOiB0aGlzLm9jQ29sb3IgPT09ICdncmVlbicsXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2MtYnV0dG9uLW1lbnVcIiBbbmdDbGFzc109XCJnZXRTdHlsZUNsYXNzKClcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cIm9jIGJ1dHRvbiBsZWZ0LWJ0blwiIFt0eXBlXT1cIm9jVHlwZVwiIChjbGljayk9XCJvY0NsaWNrLmVtaXQoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cIm1lbnUub3BlbigpXCIgY2xhc3M9XCJvYyBidXR0b24gbWVudSByaWdodC1idG5cIiBbbmdDbGFzc109XCJnZXRTdHlsZUNsYXNzKClcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cbiAgICAgIGFycm93X2Ryb3BfZG93blxuICAgIDwvc3Bhbj5cbiAgICA8b2MtbWVudSBjbGFzcz1cIm9jLW1lbnVcIiAjbWVudSBbb2NNZW51XT1cIm9jTWVudVwiIChvY0NoYW5nZSk9XCJvY0NoYW5nZS5lbWl0KCRldmVudClcIj48L29jLW1lbnU+XG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
|
|
3
|
-
import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services/style-theme.service";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "@angular/forms";
|
|
8
|
-
export class OcCheckboxComponent {
|
|
9
|
-
constructor(styleThemeService, cdr) {
|
|
10
|
-
this.styleThemeService = styleThemeService;
|
|
11
|
-
this.cdr = cdr;
|
|
12
|
-
this.checkBoxId = `oc-${Math.random()}`;
|
|
13
|
-
this.ocChange = new EventEmitter();
|
|
14
|
-
this.ocCheckedChange = new EventEmitter();
|
|
15
|
-
this.ocChecked = false;
|
|
16
|
-
this.ocSize = 'small';
|
|
17
|
-
this.ocLabel = '';
|
|
18
|
-
this.ocName = '';
|
|
19
|
-
this.ocColor = 'green';
|
|
20
|
-
this.ocBorderColor = 'white';
|
|
21
|
-
this.ocStyle = 'otimus';
|
|
22
|
-
this.ocDoubleClick = new EventEmitter();
|
|
23
|
-
this.disableDoubleClickCheck = true;
|
|
24
|
-
this.ocDisabled = false;
|
|
25
|
-
this.onTouched = () => { };
|
|
26
|
-
this.doubleClickCounter = 0;
|
|
27
|
-
this.timeoutId = null;
|
|
28
|
-
}
|
|
29
|
-
ngAfterViewInit() {
|
|
30
|
-
this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
|
|
31
|
-
this.cdr.markForCheck();
|
|
32
|
-
this.cdr.detectChanges();
|
|
33
|
-
}
|
|
34
|
-
writeValue(value) {
|
|
35
|
-
this.ocChecked = value;
|
|
36
|
-
this.cdr.markForCheck();
|
|
37
|
-
this.cdr.detectChanges();
|
|
38
|
-
}
|
|
39
|
-
registerOnChange(fn) {
|
|
40
|
-
this.onChange = fn;
|
|
41
|
-
this.cdr.markForCheck();
|
|
42
|
-
this.cdr.detectChanges();
|
|
43
|
-
}
|
|
44
|
-
registerOnTouched(fn) {
|
|
45
|
-
this.onTouched = fn;
|
|
46
|
-
this.cdr.markForCheck();
|
|
47
|
-
this.cdr.detectChanges();
|
|
48
|
-
}
|
|
49
|
-
onDoubleClick() {
|
|
50
|
-
if (this.disableDoubleClickCheck) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (this.timeoutId) {
|
|
54
|
-
clearTimeout(this.timeoutId);
|
|
55
|
-
this.timeoutId = null;
|
|
56
|
-
}
|
|
57
|
-
if (this.doubleClickCounter === 0) {
|
|
58
|
-
this.doubleClickCounter = 1;
|
|
59
|
-
this.timeoutId = setTimeout(() => {
|
|
60
|
-
this.doubleClickCounter = 0;
|
|
61
|
-
this.cdr.markForCheck();
|
|
62
|
-
setInterval(() => this.cdr.detectChanges(), 100);
|
|
63
|
-
}, 500);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
this.doubleClickCounter = 0;
|
|
67
|
-
if (this.ocDoubleClick && this.ocChecked) {
|
|
68
|
-
this.ocDoubleClick.emit(this.ocChecked);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
this.cdr.markForCheck();
|
|
72
|
-
this.cdr.detectChanges();
|
|
73
|
-
}
|
|
74
|
-
toggleChecked() {
|
|
75
|
-
if (this.doubleClickCounter === 1) {
|
|
76
|
-
this.cdr.markForCheck();
|
|
77
|
-
this.cdr.detectChanges();
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this.ocChecked = !this.ocChecked;
|
|
81
|
-
if (this.onChange) {
|
|
82
|
-
this.onChange(this.ocChecked);
|
|
83
|
-
}
|
|
84
|
-
this.onTouched();
|
|
85
|
-
this.ocChange.emit(this.ocChecked);
|
|
86
|
-
this.ocCheckedChange.emit(this.ocChecked);
|
|
87
|
-
if (this.formControl) {
|
|
88
|
-
this.formControl.setValue(this.ocChecked);
|
|
89
|
-
}
|
|
90
|
-
this.cdr.markForCheck();
|
|
91
|
-
this.cdr.detectChanges();
|
|
92
|
-
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcCheckboxComponent, deps: [{ token: i1.StyleThemeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OcCheckboxComponent, isStandalone: true, selector: "oc-checkbox", inputs: { ocChecked: "ocChecked", ocSize: "ocSize", ocLabel: "ocLabel", ocName: "ocName", ocColor: "ocColor", ocBorderColor: "ocBorderColor", ocStyle: "ocStyle", formControl: "formControl", ocTabIndex: "ocTabIndex", disableDoubleClickCheck: "disableDoubleClickCheck", ocDisabled: "ocDisabled" }, outputs: { ocChange: "ocChange", ocCheckedChange: "ocCheckedChange", ocDoubleClick: "ocDoubleClick" }, providers: [
|
|
95
|
-
{
|
|
96
|
-
provide: NG_VALUE_ACCESSOR,
|
|
97
|
-
useExisting: forwardRef(() => OcCheckboxComponent),
|
|
98
|
-
multi: true,
|
|
99
|
-
},
|
|
100
|
-
], ngImport: i0, template: "<button\n class=\"oc-checkbox-content cbx\"\n type=\"button\"\n (click)=\"toggleChecked(); onDoubleClick()\"\n [ngClass]=\"{\n shui: ocStyle === 'shui',\n }\"\n [tabIndex]=\"ocTabIndex\"\n [disabled]=\"ocDisabled\"\n>\n <div\n class=\"oc-checkbox cbx\"\n [ngClass]=\"{\n checked: ocChecked,\n tiny: ocSize === 'tiny',\n purple: ocColor === 'purple',\n 'gray-border': ocBorderColor === 'gray',\n }\"\n >\n <span class=\"check-icon material-symbols-outlined\">check_small</span>\n </div>\n\n @if (ocLabel) {\n <span class=\"oc-checkbox-label cbx\">\n {{ ocLabel }}\n </span>\n }\n\n <ng-content> </ng-content>\n\n @if (formControl) {\n <input\n [formControl]=\"formControl\"\n [name]=\"ocName\"\n [checked]=\"ocChecked\"\n type=\"checkbox\"\n hidden\n [disabled]=\"ocDisabled\"\n />\n } @else {\n <input\n [name]=\"ocName\"\n [checked]=\"ocChecked\"\n type=\"checkbox\"\n hidden\n [disabled]=\"ocDisabled\"\n />\n }\n</button>\n", styles: [".oc-checkbox-content{display:flex;align-items:center;padding:0;margin:0;border:none;background-color:transparent;gap:.3rem}.oc-checkbox-content .oc-checkbox-label{background-color:transparent;border:none;color:#8f9596;font-weight:500;text-align:left}.oc-checkbox{min-width:1rem;width:1.2rem;height:1.2rem;border-radius:.3rem;background-color:#f7f7f7;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;transition:.15s ease;cursor:pointer;overflow:hidden}.oc-checkbox:hover{filter:brightness(.95)}.oc-checkbox .check-icon{font-weight:700;color:#f8f9ff;opacity:0;pointer-events:none;margin:0;font-size:1.15rem;transition:.2s ease;transform:translateY(15px) scale(.5)}.oc-checkbox.gray-border{border:2px solid #d1d5db}.oc-checkbox.tiny{width:1rem;height:1rem;border:1px solid #ffffff}.oc-checkbox.tiny.gray{border:1px solid #d1d5db}.checked{background-color:#00dda3;box-shadow:0 2px 10px #00dda32b;border:none!important}.checked .check-icon{transform:translateY(0) scale(1);opacity:1;color:#f8f9ff}.checked.purple{background-color:#5505a2;box-shadow:0 2px 10px #5505a233}.label{width:18.4px!important;height:18.4px!important}.oc-checkbox-content.shui .oc-checkbox,.oc-checkbox-content.shui .purple{border-radius:.15rem;background-color:#f5f5f5}.oc-checkbox-content.shui .oc-checkbox.gray-border,.oc-checkbox-content.shui .purple.gray-border{border:2px solid #009999;background-color:transparent}.oc-checkbox-content.shui .oc-checkbox.checked,.oc-checkbox-content.shui .purple.checked{background-color:#099}.oc-checkbox-content.shui span.cbx{color:#000000bf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
101
|
-
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcCheckboxComponent, decorators: [{
|
|
103
|
-
type: Component,
|
|
104
|
-
args: [{ selector: 'oc-checkbox', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule], providers: [
|
|
105
|
-
{
|
|
106
|
-
provide: NG_VALUE_ACCESSOR,
|
|
107
|
-
useExisting: forwardRef(() => OcCheckboxComponent),
|
|
108
|
-
multi: true,
|
|
109
|
-
},
|
|
110
|
-
], changeDetection: ChangeDetectionStrategy.Default, template: "<button\n class=\"oc-checkbox-content cbx\"\n type=\"button\"\n (click)=\"toggleChecked(); onDoubleClick()\"\n [ngClass]=\"{\n shui: ocStyle === 'shui',\n }\"\n [tabIndex]=\"ocTabIndex\"\n [disabled]=\"ocDisabled\"\n>\n <div\n class=\"oc-checkbox cbx\"\n [ngClass]=\"{\n checked: ocChecked,\n tiny: ocSize === 'tiny',\n purple: ocColor === 'purple',\n 'gray-border': ocBorderColor === 'gray',\n }\"\n >\n <span class=\"check-icon material-symbols-outlined\">check_small</span>\n </div>\n\n @if (ocLabel) {\n <span class=\"oc-checkbox-label cbx\">\n {{ ocLabel }}\n </span>\n }\n\n <ng-content> </ng-content>\n\n @if (formControl) {\n <input\n [formControl]=\"formControl\"\n [name]=\"ocName\"\n [checked]=\"ocChecked\"\n type=\"checkbox\"\n hidden\n [disabled]=\"ocDisabled\"\n />\n } @else {\n <input\n [name]=\"ocName\"\n [checked]=\"ocChecked\"\n type=\"checkbox\"\n hidden\n [disabled]=\"ocDisabled\"\n />\n }\n</button>\n", styles: [".oc-checkbox-content{display:flex;align-items:center;padding:0;margin:0;border:none;background-color:transparent;gap:.3rem}.oc-checkbox-content .oc-checkbox-label{background-color:transparent;border:none;color:#8f9596;font-weight:500;text-align:left}.oc-checkbox{min-width:1rem;width:1.2rem;height:1.2rem;border-radius:.3rem;background-color:#f7f7f7;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;transition:.15s ease;cursor:pointer;overflow:hidden}.oc-checkbox:hover{filter:brightness(.95)}.oc-checkbox .check-icon{font-weight:700;color:#f8f9ff;opacity:0;pointer-events:none;margin:0;font-size:1.15rem;transition:.2s ease;transform:translateY(15px) scale(.5)}.oc-checkbox.gray-border{border:2px solid #d1d5db}.oc-checkbox.tiny{width:1rem;height:1rem;border:1px solid #ffffff}.oc-checkbox.tiny.gray{border:1px solid #d1d5db}.checked{background-color:#00dda3;box-shadow:0 2px 10px #00dda32b;border:none!important}.checked .check-icon{transform:translateY(0) scale(1);opacity:1;color:#f8f9ff}.checked.purple{background-color:#5505a2;box-shadow:0 2px 10px #5505a233}.label{width:18.4px!important;height:18.4px!important}.oc-checkbox-content.shui .oc-checkbox,.oc-checkbox-content.shui .purple{border-radius:.15rem;background-color:#f5f5f5}.oc-checkbox-content.shui .oc-checkbox.gray-border,.oc-checkbox-content.shui .purple.gray-border{border:2px solid #009999;background-color:transparent}.oc-checkbox-content.shui .oc-checkbox.checked,.oc-checkbox-content.shui .purple.checked{background-color:#099}.oc-checkbox-content.shui span.cbx{color:#000000bf}\n"] }]
|
|
111
|
-
}], ctorParameters: () => [{ type: i1.StyleThemeService }, { type: i0.ChangeDetectorRef }], propDecorators: { ocChange: [{
|
|
112
|
-
type: Output
|
|
113
|
-
}], ocCheckedChange: [{
|
|
114
|
-
type: Output
|
|
115
|
-
}], ocChecked: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], ocSize: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], ocLabel: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], ocName: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], ocColor: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], ocBorderColor: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], ocStyle: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], ocDoubleClick: [{
|
|
130
|
-
type: Output
|
|
131
|
-
}], formControl: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], ocTabIndex: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], disableDoubleClickCheck: [{
|
|
136
|
-
type: Input
|
|
137
|
-
}], ocDisabled: [{
|
|
138
|
-
type: Input
|
|
139
|
-
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWNoZWNrYm94L29jLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1jaGVja2JveC9vYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFHTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFBOzs7OztBQW1CdkIsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLGlCQUFvQyxFQUNwQyxHQUFzQjtRQUR0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSmhDLGVBQVUsR0FBVyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFBO1FBT2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO1FBQ3RDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUvQyxjQUFTLEdBQVksS0FBSyxDQUFBO1FBQzFCLFdBQU0sR0FBcUIsT0FBTyxDQUFBO1FBQ2xDLFlBQU8sR0FBWSxFQUFFLENBQUE7UUFDckIsV0FBTSxHQUFZLEVBQUUsQ0FBQTtRQUNwQixZQUFPLEdBQXVCLE9BQU8sQ0FBQTtRQUNyQyxrQkFBYSxHQUFxQixPQUFP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QkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE9BQU87c0hBVXRDLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFRSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBTdHlsZVRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0eWxlLXRoZW1lLnNlcnZpY2UnXG5pbXBvcnQgeyBPY1N0eWxlVGhlbWVUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYy1zdHlsZS10aGVtZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtY2hlY2tib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy1jaGVja2JveC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT2NDaGVja2JveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG59KVxuZXhwb3J0IGNsYXNzIE9jQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNoZWNrQm94SWQ6IHN0cmluZyA9IGBvYy0ke01hdGgucmFuZG9tKCl9YFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3R5bGVUaGVtZVNlcnZpY2U6IFN0eWxlVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgQE91dHB1dCgpIG9jQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIEBPdXRwdXQoKSBvY0NoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQElucHV0KCkgb2NDaGVja2VkOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgb2NTaXplOiAndGlueScgfCAnc21hbGwnID0gJ3NtYWxsJ1xuICBASW5wdXQoKSBvY0xhYmVsPzogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NOYW1lPzogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NDb2xvcjogJ3B1cnBsZScgfCAnZ3JlZW4nID0gJ2dyZWVuJ1xuICBASW5wdXQoKSBvY0JvcmRlckNvbG9yOiAnd2hpdGUnIHwgJ2dyYXknID0gJ3doaXRlJ1xuICBASW5wdXQoKSBvY1N0eWxlOiBPY1N0eWxlVGhlbWVUeXBlID0gJ290aW11cydcbiAgQE91dHB1dCgpIG9jRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQElucHV0KCkgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbFxuICBASW5wdXQoKSBvY1RhYkluZGV4PzogbnVtYmVyXG4gIEBJbnB1dCgpIGRpc2FibGVEb3VibGVDbGlja0NoZWNrID0gdHJ1ZVxuICBASW5wdXQoKSBvY0Rpc2FibGVkID0gZmFsc2VcblxuICBwcml2YXRlIG9uQ2hhbmdlPzogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vY1N0eWxlID0gdGhpcy5zdHlsZVRoZW1lU2VydmljZS5nZXRTdHlsZVRoZW1lKCkgfHwgdGhpcy5vY1N0eWxlXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm9jQ2hlY2tlZCA9IHZhbHVlXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcHJpdmF0ZSBkb3VibGVDbGlja0NvdW50ZXIgPSAwXG4gIHByaXZhdGUgdGltZW91dElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsXG4gIHByb3RlY3RlZCBvbkRvdWJsZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVEb3VibGVDbGlja0NoZWNrKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKHRoaXMudGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SWQpXG4gICAgICB0aGlzLnRpbWVvdXRJZCA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kb3VibGVDbGlja0NvdW50ZXIgPT09IDApIHtcbiAgICAgIHRoaXMuZG91YmxlQ2xpY2tDb3VudGVyID0gMVxuICAgICAgdGhpcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5kb3VibGVDbGlja0NvdW50ZXIgPSAwXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gICAgICAgIHNldEludGVydmFsKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSwgMTAwKVxuICAgICAgfSwgNTAwKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvdWJsZUNsaWNrQ291bnRlciA9IDBcbiAgICAgIGlmICh0aGlzLm9jRG91YmxlQ2xpY2sgJiYgdGhpcy5vY0NoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5vY0RvdWJsZUNsaWNrLmVtaXQodGhpcy5vY0NoZWNrZWQpXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgdG9nZ2xlQ2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kb3VibGVDbGlja0NvdW50ZXIgPT09IDEpIHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLm9jQ2hlY2tlZCA9ICF0aGlzLm9jQ2hlY2tlZFxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMub2NDaGVja2VkKVxuICAgIH1cbiAgICB0aGlzLm9uVG91Y2hlZCgpXG4gICAgdGhpcy5vY0NoYW5nZS5lbWl0KHRoaXMub2NDaGVja2VkKVxuICAgIHRoaXMub2NDaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5vY0NoZWNrZWQpXG5cbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9jQ2hlY2tlZClcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxufVxuIiwiPGJ1dHRvblxuICBjbGFzcz1cIm9jLWNoZWNrYm94LWNvbnRlbnQgY2J4XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIChjbGljayk9XCJ0b2dnbGVDaGVja2VkKCk7IG9uRG91YmxlQ2xpY2soKVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICBzaHVpOiBvY1N0eWxlID09PSAnc2h1aScsXG4gIH1cIlxuICBbdGFiSW5kZXhdPVwib2NUYWJJbmRleFwiXG4gIFtkaXNhYmxlZF09XCJvY0Rpc2FibGVkXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwib2MtY2hlY2tib3ggY2J4XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICBjaGVja2VkOiBvY0NoZWNrZWQsXG4gICAgICB0aW55OiBvY1NpemUgPT09ICd0aW55JyxcbiAgICAgIHB1cnBsZTogb2NDb2xvciA9PT0gJ3B1cnBsZScsXG4gICAgICAnZ3JheS1ib3JkZXInOiBvY0JvcmRlckNvbG9yID09PSAnZ3JheScsXG4gICAgfVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cImNoZWNrLWljb24gbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmNoZWNrX3NtYWxsPC9zcGFuPlxuICA8L2Rpdj5cblxuICBAaWYgKG9jTGFiZWwpIHtcbiAgICA8c3BhbiBjbGFzcz1cIm9jLWNoZWNrYm94LWxhYmVsIGNieFwiPlxuICAgICAge3sgb2NMYWJlbCB9fVxuICAgIDwvc3Bhbj5cbiAgfVxuXG4gIDxuZy1jb250ZW50PiA8L25nLWNvbnRlbnQ+XG5cbiAgQGlmIChmb3JtQ29udHJvbCkge1xuICAgIDxpbnB1dFxuICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgIFtuYW1lXT1cIm9jTmFtZVwiXG4gICAgICBbY2hlY2tlZF09XCJvY0NoZWNrZWRcIlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIGhpZGRlblxuICAgICAgW2Rpc2FibGVkXT1cIm9jRGlzYWJsZWRcIlxuICAgIC8+XG4gIH0gQGVsc2Uge1xuICAgIDxpbnB1dFxuICAgICAgW25hbWVdPVwib2NOYW1lXCJcbiAgICAgIFtjaGVja2VkXT1cIm9jQ2hlY2tlZFwiXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgaGlkZGVuXG4gICAgICBbZGlzYWJsZWRdPVwib2NEaXNhYmxlZFwiXG4gICAgLz5cbiAgfVxuPC9idXR0b24+XG4iXX0=
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class OcChipComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.ocSelected = false;
|
|
8
|
-
this.ocType = 'select';
|
|
9
|
-
this.ocBg = 'green';
|
|
10
|
-
this.ocText = '';
|
|
11
|
-
this.ocFontSize = '16px';
|
|
12
|
-
this.ocClick = new EventEmitter();
|
|
13
|
-
this.ocRemove = new EventEmitter();
|
|
14
|
-
}
|
|
15
|
-
ocEvent(event) {
|
|
16
|
-
event.stopPropagation();
|
|
17
|
-
this.ocClick.emit();
|
|
18
|
-
}
|
|
19
|
-
ocRemoveEvent(event) {
|
|
20
|
-
event.stopPropagation();
|
|
21
|
-
if (!this.ocRemove.observed) {
|
|
22
|
-
this.ocClick.emit();
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
this.ocRemove.emit();
|
|
26
|
-
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OcChipComponent, isStandalone: true, selector: "oc-chip", inputs: { ocSelected: "ocSelected", ocType: "ocType", ocBg: "ocBg", ocText: "ocText", ocFontSize: "ocFontSize" }, outputs: { ocClick: "ocClick", ocRemove: "ocRemove" }, ngImport: i0, template: "<button\n [ngClass]=\"{\n 'oc-chip': true,\n selected: ocSelected,\n 'not-selectable': ocType !== 'select' && ocType !== 'select_remove',\n tag: ocType === 'tag',\n remove: ocType === 'remove' || ocType === 'select_remove',\n 'green-bg': ocBg === 'green',\n 'red-bg': ocBg === 'red',\n 'yellow-bg': ocBg === 'yellow',\n }\"\n type=\"button\"\n [ngStyle]=\"{\n 'font-size': ocFontSize,\n }\"\n [title]=\"ocText\"\n (click)=\"ocType.includes('select') ? ocEvent($event) : null\"\n>\n <ng-content></ng-content>\n @if (ocType.includes('remove')) {\n <span\n class=\"material-symbols-outlined\"\n (click)=\"ocRemoveEvent($event)\"\n >close</span\n >\n }\n</button>\n", styles: [".oc-chip{background-color:#f7f7f7;color:#8f9596;border:2px solid #d1d5db;border-radius:16px;font-size:1rem;font-weight:500;padding:3px 18px;transition:.3s ease!important;cursor:pointer}.oc-chip:hover{filter:brightness(.95)}.oc-chip:active{filter:brightness(.85)}.selected{background-color:#ccfbe6dc;border:2px solid #00dda3;color:#00dda3}.selected.red-bg{color:#ed3a3a;border-color:#ed3a3a;background-color:#ffcaca}.selected.green-bg{color:#00dda3;border-color:#00dda3;background-color:#ccfbe6dc}.selected.yellow-bg{color:#ebbc2e;border-color:#ebbc2e;background-color:#fffaea}.not-selectable{border:none;background-color:#f7f7f7;color:#8f9596;cursor:default}.not-selectable:active{cursor:not-allowed}.material-symbols-outlined{font-size:.9rem;width:10px;height:10px}.remove{display:flex;align-items:center;gap:.5rem;padding-right:.5rem}.remove:hover{filter:brightness(1)}.remove span{display:flex;align-items:center;justify-content:center;padding:5px;cursor:pointer;border-radius:50%;transition:.1s ease}.remove span:hover{background-color:#d1d5db}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcChipComponent, decorators: [{
|
|
31
|
-
type: Component,
|
|
32
|
-
args: [{ selector: 'oc-chip', standalone: true, imports: [CommonModule], template: "<button\n [ngClass]=\"{\n 'oc-chip': true,\n selected: ocSelected,\n 'not-selectable': ocType !== 'select' && ocType !== 'select_remove',\n tag: ocType === 'tag',\n remove: ocType === 'remove' || ocType === 'select_remove',\n 'green-bg': ocBg === 'green',\n 'red-bg': ocBg === 'red',\n 'yellow-bg': ocBg === 'yellow',\n }\"\n type=\"button\"\n [ngStyle]=\"{\n 'font-size': ocFontSize,\n }\"\n [title]=\"ocText\"\n (click)=\"ocType.includes('select') ? ocEvent($event) : null\"\n>\n <ng-content></ng-content>\n @if (ocType.includes('remove')) {\n <span\n class=\"material-symbols-outlined\"\n (click)=\"ocRemoveEvent($event)\"\n >close</span\n >\n }\n</button>\n", styles: [".oc-chip{background-color:#f7f7f7;color:#8f9596;border:2px solid #d1d5db;border-radius:16px;font-size:1rem;font-weight:500;padding:3px 18px;transition:.3s ease!important;cursor:pointer}.oc-chip:hover{filter:brightness(.95)}.oc-chip:active{filter:brightness(.85)}.selected{background-color:#ccfbe6dc;border:2px solid #00dda3;color:#00dda3}.selected.red-bg{color:#ed3a3a;border-color:#ed3a3a;background-color:#ffcaca}.selected.green-bg{color:#00dda3;border-color:#00dda3;background-color:#ccfbe6dc}.selected.yellow-bg{color:#ebbc2e;border-color:#ebbc2e;background-color:#fffaea}.not-selectable{border:none;background-color:#f7f7f7;color:#8f9596;cursor:default}.not-selectable:active{cursor:not-allowed}.material-symbols-outlined{font-size:.9rem;width:10px;height:10px}.remove{display:flex;align-items:center;gap:.5rem;padding-right:.5rem}.remove:hover{filter:brightness(1)}.remove span{display:flex;align-items:center;justify-content:center;padding:5px;cursor:pointer;border-radius:50%;transition:.1s ease}.remove span:hover{background-color:#d1d5db}\n"] }]
|
|
33
|
-
}], propDecorators: { ocSelected: [{
|
|
34
|
-
type: Input
|
|
35
|
-
}], ocType: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], ocBg: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], ocText: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], ocFontSize: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], ocClick: [{
|
|
44
|
-
type: Output
|
|
45
|
-
}], ocRemove: [{
|
|
46
|
-
type: Output
|
|
47
|
-
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb2MtY2hpcC9vYy1jaGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1jaGlwL29jLWNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFnQixLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFTcEYsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRVyxlQUFVLEdBQVksS0FBSyxDQUFBO1FBQzNCLFdBQU0sR0FBa0QsUUFBUSxDQUFBO1FBQ2hFLFNBQUksR0FBMkMsT0FBTyxDQUFBO1FBQ3RELFdBQU0sR0FBVyxFQUFFLENBQUE7UUFDbkIsZUFBVSxHQUFXLE1BQU0sQ0FBQTtRQUMxQixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUE7UUFDcEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFBO0tBZWhFO0lBYkMsT0FBTyxDQUFDLEtBQVU7UUFDaEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ25CLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN0QixDQUFDOytHQXJCVSxlQUFlO21HQUFmLGVBQWUsNE9DVjVCLGl0QkEyQkEsbWxDRHJCWSxZQUFZOzs0RkFJWCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBS2QsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy1jaGlwJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29jLWNoaXAuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPY0NoaXBDb21wb25lbnQge1xuICBASW5wdXQoKSBvY1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgb2NUeXBlOiAnc2VsZWN0JyB8ICdyZW1vdmUnIHwgJ3RhZycgfCAnc2VsZWN0X3JlbW92ZScgPSAnc2VsZWN0J1xuICBASW5wdXQoKSBvY0JnOiAnZ3JlZW4nIHwgJ3JlZCcgfCAneWVsbG93JyB8ICdkZWZhdWx0JyA9ICdncmVlbidcbiAgQElucHV0KCkgb2NUZXh0OiBzdHJpbmcgPSAnJ1xuICBASW5wdXQoKSBvY0ZvbnRTaXplOiBzdHJpbmcgPSAnMTZweCdcbiAgQE91dHB1dCgpIG9jQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIG9jUmVtb3ZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgb2NFdmVudChldmVudDogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB0aGlzLm9jQ2xpY2suZW1pdCgpXG4gIH1cblxuICBvY1JlbW92ZUV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICghdGhpcy5vY1JlbW92ZS5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5vY0NsaWNrLmVtaXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMub2NSZW1vdmUuZW1pdCgpXG4gIH1cbn1cbiIsIjxidXR0b25cbiAgW25nQ2xhc3NdPVwie1xuICAgICdvYy1jaGlwJzogdHJ1ZSxcbiAgICBzZWxlY3RlZDogb2NTZWxlY3RlZCxcbiAgICAnbm90LXNlbGVjdGFibGUnOiBvY1R5cGUgIT09ICdzZWxlY3QnICYmIG9jVHlwZSAhPT0gJ3NlbGVjdF9yZW1vdmUnLFxuICAgIHRhZzogb2NUeXBlID09PSAndGFnJyxcbiAgICByZW1vdmU6IG9jVHlwZSA9PT0gJ3JlbW92ZScgfHwgb2NUeXBlID09PSAnc2VsZWN0X3JlbW92ZScsXG4gICAgJ2dyZWVuLWJnJzogb2NCZyA9PT0gJ2dyZWVuJyxcbiAgICAncmVkLWJnJzogb2NCZyA9PT0gJ3JlZCcsXG4gICAgJ3llbGxvdy1iZyc6IG9jQmcgPT09ICd5ZWxsb3cnLFxuICB9XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIFtuZ1N0eWxlXT1cIntcbiAgICAnZm9udC1zaXplJzogb2NGb250U2l6ZSxcbiAgfVwiXG4gIFt0aXRsZV09XCJvY1RleHRcIlxuICAoY2xpY2spPVwib2NUeXBlLmluY2x1ZGVzKCdzZWxlY3QnKSA/IG9jRXZlbnQoJGV2ZW50KSA6IG51bGxcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIEBpZiAob2NUeXBlLmluY2x1ZGVzKCdyZW1vdmUnKSkge1xuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIlxuICAgICAgKGNsaWNrKT1cIm9jUmVtb3ZlRXZlbnQoJGV2ZW50KVwiXG4gICAgICA+Y2xvc2U8L3NwYW5cbiAgICA+XG4gIH1cbjwvYnV0dG9uPlxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ptbr": {
|
|
3
|
-
"01": "Janeiro",
|
|
4
|
-
"02": "Fevereiro",
|
|
5
|
-
"03": "Março",
|
|
6
|
-
"04": "Abril",
|
|
7
|
-
"05": "Maio",
|
|
8
|
-
"06": "Junho",
|
|
9
|
-
"07": "Julho",
|
|
10
|
-
"08": "Agosto",
|
|
11
|
-
"09": "Setembro",
|
|
12
|
-
"10": "Outubro",
|
|
13
|
-
"11": "Novembro",
|
|
14
|
-
"12": "Dezembro"
|
|
15
|
-
},
|
|
16
|
-
"enus": {
|
|
17
|
-
"01": "January",
|
|
18
|
-
"02": "February",
|
|
19
|
-
"03": "March",
|
|
20
|
-
"04": "April",
|
|
21
|
-
"05": "May",
|
|
22
|
-
"06": "June",
|
|
23
|
-
"07": "July",
|
|
24
|
-
"08": "August",
|
|
25
|
-
"09": "September",
|
|
26
|
-
"10": "October",
|
|
27
|
-
"11": "November",
|
|
28
|
-
"12": "December"
|
|
29
|
-
},
|
|
30
|
-
"esch": {
|
|
31
|
-
"01": "Enero",
|
|
32
|
-
"02": "Febrero",
|
|
33
|
-
"03": "Marzo",
|
|
34
|
-
"04": "Abril",
|
|
35
|
-
"05": "Mayo",
|
|
36
|
-
"06": "Junio",
|
|
37
|
-
"07": "Julio",
|
|
38
|
-
"08": "Agosto",
|
|
39
|
-
"09": "Septiembre",
|
|
40
|
-
"10": "Octubre",
|
|
41
|
-
"11": "Noviembre",
|
|
42
|
-
"12": "Diciembre"
|
|
43
|
-
}
|
|
44
|
-
}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, Output, EventEmitter, } from '@angular/core';
|
|
2
|
-
import monthsData from './data/months.json';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
const months = monthsData;
|
|
5
|
-
export class OcDateSelectComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.ocValue = this.getCurrentDate();
|
|
8
|
-
this.ocType = 'day';
|
|
9
|
-
this.ocSkipType = 'day';
|
|
10
|
-
this.ocValueChange = new EventEmitter();
|
|
11
|
-
this.ocChange = new EventEmitter();
|
|
12
|
-
this.ocLanguage = 'ptbr';
|
|
13
|
-
this.ocMaxDate = null;
|
|
14
|
-
this.ocMinDate = null;
|
|
15
|
-
this.intervalId = null;
|
|
16
|
-
}
|
|
17
|
-
ngAfterViewInit() {
|
|
18
|
-
if (this.ocSkipType !== this.ocType) {
|
|
19
|
-
this.ocSkipType = this.ocType;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
getCurrentDate() {
|
|
23
|
-
const today = new Date();
|
|
24
|
-
const dd = String(today.getDate()).padStart(2, '0');
|
|
25
|
-
const mm = String(today.getMonth() + 1).padStart(2, '0');
|
|
26
|
-
const yyyy = today.getFullYear();
|
|
27
|
-
return `${yyyy}-${mm}-${dd}`;
|
|
28
|
-
}
|
|
29
|
-
getViewDate() {
|
|
30
|
-
const [year, month, day] = this.ocValue.split('-');
|
|
31
|
-
const monthName = months[this.ocLanguage][month];
|
|
32
|
-
let intersection = ' de ';
|
|
33
|
-
if (this.ocLanguage === 'enus') {
|
|
34
|
-
intersection = ' ';
|
|
35
|
-
}
|
|
36
|
-
if (this.ocType === 'year') {
|
|
37
|
-
return year;
|
|
38
|
-
}
|
|
39
|
-
if (this.ocType === 'month') {
|
|
40
|
-
return `${monthName.toLowerCase()}${intersection}${year}`;
|
|
41
|
-
}
|
|
42
|
-
return `${day}${intersection}${monthName.toLowerCase()}${intersection}${year}`;
|
|
43
|
-
}
|
|
44
|
-
updateValue(newValue) {
|
|
45
|
-
this.ocValue = newValue;
|
|
46
|
-
this.ocValueChange.emit(this.ocValue); // two-way binding
|
|
47
|
-
this.ocChange.emit(this.ocValue); // evento custom
|
|
48
|
-
}
|
|
49
|
-
increaseDate() {
|
|
50
|
-
const date = new Date(this.ocValue);
|
|
51
|
-
date.setDate(date.getDate() + 1);
|
|
52
|
-
// sum 1 month
|
|
53
|
-
if (this.ocSkipType === 'month') {
|
|
54
|
-
date.setMonth(date.getMonth() + 1);
|
|
55
|
-
}
|
|
56
|
-
if (this.ocSkipType === 'week') {
|
|
57
|
-
date.setDate(date.getDate() + 7);
|
|
58
|
-
}
|
|
59
|
-
this.updateValue(date.toISOString().split('T')[0]);
|
|
60
|
-
}
|
|
61
|
-
decreaseDate() {
|
|
62
|
-
const date = new Date(this.ocValue);
|
|
63
|
-
date.setDate(date.getDate() - 1);
|
|
64
|
-
// sub 1 month
|
|
65
|
-
if (this.ocSkipType === 'month') {
|
|
66
|
-
date.setMonth(date.getMonth() - 1);
|
|
67
|
-
}
|
|
68
|
-
if (this.ocSkipType === 'week') {
|
|
69
|
-
date.setDate(date.getDate() - 7);
|
|
70
|
-
}
|
|
71
|
-
this.updateValue(date.toISOString().split('T')[0]);
|
|
72
|
-
}
|
|
73
|
-
startHold(direction) {
|
|
74
|
-
this.stopHold();
|
|
75
|
-
if (direction === 'increase') {
|
|
76
|
-
this.increaseDate();
|
|
77
|
-
this.intervalId = setInterval(() => this.increaseDate(), 150);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this.decreaseDate();
|
|
81
|
-
this.intervalId = setInterval(() => this.decreaseDate(), 150);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
stopHold() {
|
|
85
|
-
if (this.intervalId) {
|
|
86
|
-
clearInterval(this.intervalId);
|
|
87
|
-
this.intervalId = null;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
openDatePicker() {
|
|
91
|
-
if (this.dateInput.nativeElement.showPicker) {
|
|
92
|
-
this.dateInput.nativeElement.showPicker();
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
this.dateInput.nativeElement.click();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
onDateChange(event) {
|
|
99
|
-
const input = event.target;
|
|
100
|
-
this.updateValue(input.value);
|
|
101
|
-
}
|
|
102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcDateSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
103
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OcDateSelectComponent, isStandalone: true, selector: "oc-date-select", inputs: { ocValue: "ocValue", ocType: "ocType", ocSkipType: "ocSkipType", ocLanguage: "ocLanguage", ocMaxDate: "ocMaxDate", ocMinDate: "ocMinDate" }, outputs: { ocValueChange: "ocValueChange", ocChange: "ocChange" }, viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], ngImport: i0, template: "<div class=\"date-select\">\n <button\n class=\"left-btn\"\n (mousedown)=\"startHold('decrease')\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (touchstart)=\"startHold('decrease')\"\n (touchend)=\"stopHold()\"\n >\n <span class=\"material-symbols-outlined\">arrow_back_ios</span>\n </button>\n\n <div class=\"date-text-wrapper\">\n <p\n class=\"date-text\"\n (click)=\"openDatePicker()\"\n >\n {{ getViewDate() }}\n </p>\n @let type = ocType === 'day' ? 'date' : ocType;\n <input\n #dateInput\n [type]=\"type\"\n [max]=\"ocMaxDate\"\n [min]=\"ocMinDate\"\n (change)=\"onDateChange($event)\"\n />\n </div>\n\n <button\n class=\"right-btn\"\n (mousedown)=\"startHold('increase')\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (touchstart)=\"startHold('increase')\"\n (touchend)=\"stopHold()\"\n >\n <span class=\"material-symbols-outlined\">arrow_forward_ios</span>\n </button>\n</div>\n", styles: [".date-select{display:flex;align-items:center;gap:10px;position:relative}button{cursor:pointer;background-color:transparent;border:none;padding:0}button span{transition:.2s ease;color:#7e8485;font-size:1rem}.date-text{width:200px;margin:0;text-align:center;color:#7e8485;cursor:pointer;transition:.2s ease}.date-text:hover{color:#353535}.left-btn:hover span{color:#9969c7;transform:translate(-2px)}.right-btn:hover span{color:#9969c7;transform:translate(2px)}.shui .right-btn:hover span{color:#0169b2;transform:translate(2px)}.shui .left-btn:hover span{color:#0169b2;transform:translate(-2px)}.date-text-wrapper{display:flex;flex-direction:column}.date-text-wrapper input{opacity:0;position:absolute;bottom:0}\n"] }); }
|
|
104
|
-
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcDateSelectComponent, decorators: [{
|
|
106
|
-
type: Component,
|
|
107
|
-
args: [{ selector: 'oc-date-select', standalone: true, template: "<div class=\"date-select\">\n <button\n class=\"left-btn\"\n (mousedown)=\"startHold('decrease')\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (touchstart)=\"startHold('decrease')\"\n (touchend)=\"stopHold()\"\n >\n <span class=\"material-symbols-outlined\">arrow_back_ios</span>\n </button>\n\n <div class=\"date-text-wrapper\">\n <p\n class=\"date-text\"\n (click)=\"openDatePicker()\"\n >\n {{ getViewDate() }}\n </p>\n @let type = ocType === 'day' ? 'date' : ocType;\n <input\n #dateInput\n [type]=\"type\"\n [max]=\"ocMaxDate\"\n [min]=\"ocMinDate\"\n (change)=\"onDateChange($event)\"\n />\n </div>\n\n <button\n class=\"right-btn\"\n (mousedown)=\"startHold('increase')\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (touchstart)=\"startHold('increase')\"\n (touchend)=\"stopHold()\"\n >\n <span class=\"material-symbols-outlined\">arrow_forward_ios</span>\n </button>\n</div>\n", styles: [".date-select{display:flex;align-items:center;gap:10px;position:relative}button{cursor:pointer;background-color:transparent;border:none;padding:0}button span{transition:.2s ease;color:#7e8485;font-size:1rem}.date-text{width:200px;margin:0;text-align:center;color:#7e8485;cursor:pointer;transition:.2s ease}.date-text:hover{color:#353535}.left-btn:hover span{color:#9969c7;transform:translate(-2px)}.right-btn:hover span{color:#9969c7;transform:translate(2px)}.shui .right-btn:hover span{color:#0169b2;transform:translate(2px)}.shui .left-btn:hover span{color:#0169b2;transform:translate(-2px)}.date-text-wrapper{display:flex;flex-direction:column}.date-text-wrapper input{opacity:0;position:absolute;bottom:0}\n"] }]
|
|
108
|
-
}], propDecorators: { ocValue: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], ocType: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], ocSkipType: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], ocValueChange: [{
|
|
115
|
-
type: Output
|
|
116
|
-
}], ocChange: [{
|
|
117
|
-
type: Output
|
|
118
|
-
}], ocLanguage: [{
|
|
119
|
-
type: Input
|
|
120
|
-
}], ocMaxDate: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}], ocMinDate: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], dateInput: [{
|
|
125
|
-
type: ViewChild,
|
|
126
|
-
args: ['dateInput']
|
|
127
|
-
}] } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtZGF0ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWRhdGUtc2VsZWN0L29jLWRhdGUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1kYXRlLXNlbGVjdC9vYy1kYXRlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsTUFBTSxFQUNOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLFVBQVUsTUFBTSxvQkFBb0IsQ0FBQTs7QUFNM0MsTUFBTSxNQUFNLEdBQWUsVUFBbUMsQ0FBQTtBQVE5RCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBT1csWUFBTyxHQUFXLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUN2QyxXQUFNLEdBQTZCLEtBQUssQ0FBQTtRQUN4QyxlQUFVLEdBQXNDLEtBQUssQ0FBQTtRQUNwRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7UUFFMUMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7UUFFdEMsZUFBVSxHQUE2QixNQUFNLENBQUE7UUFDN0MsY0FBUyxHQUFrQixJQUFJLENBQUE7UUFDL0IsY0FBUyxHQUFrQixJQUFJLENBQUE7UUFHaEMsZUFBVSxHQUEwQyxJQUFJLENBQUE7S0E4RmpFO0lBNUZDLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUMvQixDQUFDO0lBQ0gs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QUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFUyxZQUFZLENBQUMsS0FBWTtRQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQTtRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMvQixDQUFDOytHQTFHVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwyWUN2QmxDLGdnQ0F3Q0E7OzRGRGpCYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSTs4QkFLUCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IG1vbnRoc0RhdGEgZnJvbSAnLi9kYXRhL21vbnRocy5qc29uJ1xuXG5pbnRlcmZhY2UgTW9udGhzRGF0YSB7XG4gIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbn1cblxuY29uc3QgbW9udGhzOiBNb250aHNEYXRhID0gbW9udGhzRGF0YSBhcyB1bmtub3duIGFzIE1vbnRoc0RhdGFcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtZGF0ZS1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtZGF0ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2MtZGF0ZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPY0RhdGVTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgb2NWYWx1ZTogc3RyaW5nID0gdGhpcy5nZXRDdXJyZW50RGF0ZSgpXG4gIEBJbnB1dCgpIG9jVHlwZTogJ2RheScgfCAnbW9udGgnIHwgJ3llYXInID0gJ2RheSdcbiAgQElucHV0KCkgb2NTa2lwVHlwZTogJ2RheScgfCAnd2VlaycgfCAnbW9udGgnIHwgJ3llYXInID0gJ2RheSdcbiAgQE91dHB1dCgpIG9jVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuXG4gIEBPdXRwdXQoKSBvY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgQElucHV0KCkgb2NMYW5ndWFnZTogJ3B0YnInIHwgJ2VudXMnIHwgJ2VzY2gnID0gJ3B0YnInXG4gIEBJbnB1dCgpIG9jTWF4RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgQElucHV0KCkgb2NNaW5EYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIEBWaWV3Q2hpbGQoJ2RhdGVJbnB1dCcpIGRhdGVJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD5cbiAgcHJpdmF0ZSBpbnRlcnZhbElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCBudWxsID0gbnVsbFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vY1NraXBUeXBlICE9PSB0aGlzLm9jVHlwZSkge1xuICAgICAgdGhpcy5vY1NraXBUeXBlID0gdGhpcy5vY1R5cGVcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnREYXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpXG4gICAgY29uc3QgZGQgPSBTdHJpbmcodG9kYXkuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gICAgY29uc3QgbW0gPSBTdHJpbmcodG9kYXkuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgICBjb25zdCB5eXl5ID0gdG9kYXkuZ2V0RnVsbFllYXIoKVxuICAgIHJldHVybiBgJHt5eXl5fS0ke21tfS0ke2RkfWBcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRWaWV3RGF0ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IHRoaXMub2NWYWx1ZS5zcGxpdCgnLScpXG4gICAgY29uc3QgbW9udGhOYW1lID0gbW9udGhzW3RoaXMub2NMYW5ndWFnZV1bbW9udGhdXG4gICAgbGV0IGludGVyc2VjdGlvbiA9ICcgZGUgJ1xuICAgIGlmICh0aGlzLm9jTGFuZ3VhZ2UgPT09ICdlbnVzJykge1xuICAgICAgaW50ZXJzZWN0aW9uID0gJyAnXG4gICAgfVxuICAgIGlmICh0aGlzLm9jVHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICByZXR1cm4geWVhclxuICAgIH1cbiAgICBpZiAodGhpcy5vY1R5cGUgPT09ICdtb250aCcpIHtcbiAgICAgIHJldHVybiBgJHttb250aE5hbWUudG9Mb3dlckNhc2UoKX0ke2ludGVyc2VjdGlvbn0ke3llYXJ9YFxuICAgIH1cbiAgICByZXR1cm4gYCR7ZGF5fSR7aW50ZXJzZWN0aW9ufSR7bW9udGhOYW1lLnRvTG93ZXJDYXNlKCl9JHtpbnRlcnNlY3Rpb259JHt5ZWFyfWBcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUobmV3VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub2NWYWx1ZSA9IG5ld1ZhbHVlXG4gICAgdGhpcy5vY1ZhbHVlQ2hhbmdlLmVtaXQodGhpcy5vY1ZhbHVlKSAvLyB0d28td2F5IGJpbmRpbmdcbiAgICB0aGlzLm9jQ2hhbmdlLmVtaXQodGhpcy5vY1ZhbHVlKSAvLyBldmVudG8gY3VzdG9tXG4gIH1cblxuICBwcm90ZWN0ZWQgaW5jcmVhc2VEYXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLm9jVmFsdWUpXG4gICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMSlcbiAgICAvLyBzdW0gMSBtb250aFxuICAgIGlmICh0aGlzLm9jU2tpcFR5cGUgPT09ICdtb250aCcpIHtcbiAgICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgMSlcbiAgICB9XG4gICAgaWYgKHRoaXMub2NTa2lwVHlwZSA9PT0gJ3dlZWsnKSB7XG4gICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyA3KVxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdKVxuICB9XG5cbiAgcHJvdGVjdGVkIGRlY3JlYXNlRGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5vY1ZhbHVlKVxuICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIDEpXG4gICAgLy8gc3ViIDEgbW9udGhcbiAgICBpZiAodGhpcy5vY1NraXBUeXBlID09PSAnbW9udGgnKSB7XG4gICAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSAtIDEpXG4gICAgfVxuICAgIGlmICh0aGlzLm9jU2tpcFR5cGUgPT09ICd3ZWVrJykge1xuICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpIC0gNylcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWx1ZShkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSlcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydEhvbGQoZGlyZWN0aW9uOiAnaW5jcmVhc2UnIHwgJ2RlY3JlYXNlJyk6IHZvaWQge1xuICAgIHRoaXMuc3RvcEhvbGQoKVxuICAgIGlmIChkaXJlY3Rpb24gPT09ICdpbmNyZWFzZScpIHtcbiAgICAgIHRoaXMuaW5jcmVhc2VEYXRlKClcbiAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHRoaXMuaW5jcmVhc2VEYXRlKCksIDE1MClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWNyZWFzZURhdGUoKVxuICAgICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5kZWNyZWFzZURhdGUoKSwgMTUwKVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzdG9wSG9sZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZClcbiAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IG51bGxcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbkRhdGVQaWNrZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZUlucHV0Lm5hdGl2ZUVsZW1lbnQuc2hvd1BpY2tlcikge1xuICAgICAgdGhpcy5kYXRlSW5wdXQubmF0aXZlRWxlbWVudC5zaG93UGlja2VyKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpXG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGF0ZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50XG4gICAgdGhpcy51cGRhdGVWYWx1ZShpbnB1dC52YWx1ZSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0XCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImxlZnQtYnRuXCJcbiAgICAobW91c2Vkb3duKT1cInN0YXJ0SG9sZCgnZGVjcmVhc2UnKVwiXG4gICAgKG1vdXNldXApPVwic3RvcEhvbGQoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcEhvbGQoKVwiXG4gICAgKHRvdWNoc3RhcnQpPVwic3RhcnRIb2xkKCdkZWNyZWFzZScpXCJcbiAgICAodG91Y2hlbmQpPVwic3RvcEhvbGQoKVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5hcnJvd19iYWNrX2lvczwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cImRhdGUtdGV4dC13cmFwcGVyXCI+XG4gICAgPHBcbiAgICAgIGNsYXNzPVwiZGF0ZS10ZXh0XCJcbiAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCJcbiAgICA+XG4gICAgICB7eyBnZXRWaWV3RGF0ZSgpIH19XG4gICAgPC9wPlxuICAgIEBsZXQgdHlwZSA9IG9jVHlwZSA9PT0gJ2RheScgPyAnZGF0ZScgOiBvY1R5cGU7XG4gICAgPGlucHV0XG4gICAgICAjZGF0ZUlucHV0XG4gICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgIFttYXhdPVwib2NNYXhEYXRlXCJcbiAgICAgIFttaW5dPVwib2NNaW5EYXRlXCJcbiAgICAgIChjaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gIDwvZGl2PlxuXG4gIDxidXR0b25cbiAgICBjbGFzcz1cInJpZ2h0LWJ0blwiXG4gICAgKG1vdXNlZG93bik9XCJzdGFydEhvbGQoJ2luY3JlYXNlJylcIlxuICAgIChtb3VzZXVwKT1cInN0b3BIb2xkKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3BIb2xkKClcIlxuICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0SG9sZCgnaW5jcmVhc2UnKVwiXG4gICAgKHRvdWNoZW5kKT1cInN0b3BIb2xkKClcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+YXJyb3dfZm9yd2FyZF9pb3M8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { OcBadgeComponent } from '../oc-badge/oc-badge.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services/style-theme.service";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class OcFilterComponent {
|
|
8
|
-
constructor(styleThemeService) {
|
|
9
|
-
this.styleThemeService = styleThemeService;
|
|
10
|
-
this.isOpen = false;
|
|
11
|
-
this.ocText = 'Filtros';
|
|
12
|
-
this.ocActive = 0;
|
|
13
|
-
this.ocSide = 'left';
|
|
14
|
-
this.ocStyle = 'otimus';
|
|
15
|
-
}
|
|
16
|
-
ngAfterViewInit() {
|
|
17
|
-
this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
|
|
18
|
-
}
|
|
19
|
-
toggleOpen() {
|
|
20
|
-
this.isOpen = !this.isOpen;
|
|
21
|
-
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcFilterComponent, deps: [{ token: i1.StyleThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OcFilterComponent, isStandalone: true, selector: "oc-filter", inputs: { isOpen: "isOpen", ocText: "ocText", ocActive: "ocActive", ocSide: "ocSide", ocStyle: "ocStyle" }, ngImport: i0, template: "<div class=\"oc-filter-row\" [ngClass]=\"{\n reverse: ocSide === 'right'\n}\">\n <button class=\"oc-filter-btn\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n }\" (click)=\"toggleOpen()\">\n <span class=\"material-symbols-outlined\">filter_list</span>\n {{ocText}}\n <div class=\"badge\">\n <oc-badge *ngIf=\"ocActive > 0\" ocSize=\"small\" ocColor=\"success\" [ocWaved]=\"true\">{{ocActive}}</oc-badge>\n </div>\n </button>\n\n <div class=\"filter-row-content\">\n <ng-content select=\"[row]\"></ng-content>\n </div>\n\n</div>\n<div *ngIf=\"isOpen\" class=\"oc-filter-content\">\n <ng-content select=\"[body]\">\n </ng-content>\n</div>", styles: [".oc-filter-row{display:flex;align-items:center;gap:1rem}.oc-filter-row .filter-row-content{width:100%}.reverse{flex-direction:row-reverse}.oc-filter-btn{background-color:#5505a2;color:#f8f9ff;border:none;border-radius:.5rem;padding:.4rem .8rem;font-weight:600;display:flex;align-items:center;gap:.2rem;transition:.2s ease;position:relative;cursor:pointer}.oc-filter-btn:hover{filter:brightness(.9)}.oc-filter-btn .material-symbols-outlined{font-size:1rem;color:#f7f7f7}.oc-filter-btn img{width:15px;filter:brightness(0) invert(1)}.oc-filter-btn .badge{position:absolute;top:-8px;right:-12px}.oc-filter-btn.shui{background-color:#099!important;border-radius:50px!important}.oc-filter-content{width:100%;animation:showing-up .15s ease;margin-top:1rem}@keyframes showing-up{0%{height:0px;opacity:0}to{height:100%;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OcBadgeComponent, selector: "oc-badge", inputs: ["ocSize", "ocColor", "ocWaved"] }] }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcFilterComponent, decorators: [{
|
|
26
|
-
type: Component,
|
|
27
|
-
args: [{ selector: 'oc-filter', standalone: true, imports: [CommonModule, OcBadgeComponent], template: "<div class=\"oc-filter-row\" [ngClass]=\"{\n reverse: ocSide === 'right'\n}\">\n <button class=\"oc-filter-btn\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n }\" (click)=\"toggleOpen()\">\n <span class=\"material-symbols-outlined\">filter_list</span>\n {{ocText}}\n <div class=\"badge\">\n <oc-badge *ngIf=\"ocActive > 0\" ocSize=\"small\" ocColor=\"success\" [ocWaved]=\"true\">{{ocActive}}</oc-badge>\n </div>\n </button>\n\n <div class=\"filter-row-content\">\n <ng-content select=\"[row]\"></ng-content>\n </div>\n\n</div>\n<div *ngIf=\"isOpen\" class=\"oc-filter-content\">\n <ng-content select=\"[body]\">\n </ng-content>\n</div>", styles: [".oc-filter-row{display:flex;align-items:center;gap:1rem}.oc-filter-row .filter-row-content{width:100%}.reverse{flex-direction:row-reverse}.oc-filter-btn{background-color:#5505a2;color:#f8f9ff;border:none;border-radius:.5rem;padding:.4rem .8rem;font-weight:600;display:flex;align-items:center;gap:.2rem;transition:.2s ease;position:relative;cursor:pointer}.oc-filter-btn:hover{filter:brightness(.9)}.oc-filter-btn .material-symbols-outlined{font-size:1rem;color:#f7f7f7}.oc-filter-btn img{width:15px;filter:brightness(0) invert(1)}.oc-filter-btn .badge{position:absolute;top:-8px;right:-12px}.oc-filter-btn.shui{background-color:#099!important;border-radius:50px!important}.oc-filter-content{width:100%;animation:showing-up .15s ease;margin-top:1rem}@keyframes showing-up{0%{height:0px;opacity:0}to{height:100%;opacity:1}}\n"] }]
|
|
28
|
-
}], ctorParameters: () => [{ type: i1.StyleThemeService }], propDecorators: { isOpen: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}], ocText: [{
|
|
31
|
-
type: Input
|
|
32
|
-
}], ocActive: [{
|
|
33
|
-
type: Input
|
|
34
|
-
}], ocSide: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], ocStyle: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1maWx0ZXIvb2MtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1maWx0ZXIvb2MtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7Ozs7QUFXakUsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQU4vQyxXQUFNLEdBQVksS0FBSyxDQUFBO1FBQ3ZCLFdBQU0sR0FBVyxTQUFTLENBQUE7UUFDMUIsYUFBUSxHQUFXLENBQUMsQ0FBQTtRQUNwQixXQUFNLEdBQXFCLE1BQU0sQ0FBQTtRQUNqQyxZQUFPLEdBQXFCLFFBQVEsQ0FBQTtJQUVjLENBQUM7SUFFNUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDdkUsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUM1QixDQUFDOytHQWZVLGlCQUFpQjttR0FBakIsaUJBQWlCLGlMQ2I5QiwwcEJBcUJNLGczQkRaTSxZQUFZLGlPQUFFLGdCQUFnQjs7NEZBSTdCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO3NGQUtoQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2NCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4uL29jLWJhZGdlL29jLWJhZGdlLmNvbXBvbmVudCdcbmltcG9ydCB7IE9jU3R5bGVUaGVtZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLXN0eWxlLXRoZW1lJ1xuaW1wb3J0IHsgU3R5bGVUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdHlsZS10aGVtZS5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy1maWx0ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPY0JhZGdlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL29jLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy1maWx0ZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPY0ZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBpc09wZW46IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBvY1RleHQ6IHN0cmluZyA9ICdGaWx0cm9zJ1xuICBASW5wdXQoKSBvY0FjdGl2ZTogbnVtYmVyID0gMFxuICBASW5wdXQoKSBvY1NpZGU6ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCdcbiAgQElucHV0KCkgb2NTdHlsZTogT2NTdHlsZVRoZW1lVHlwZSA9ICdvdGltdXMnXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdHlsZVRoZW1lU2VydmljZTogU3R5bGVUaGVtZVNlcnZpY2UpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub2NTdHlsZSA9IHRoaXMuc3R5bGVUaGVtZVNlcnZpY2UuZ2V0U3R5bGVUaGVtZSgpIHx8IHRoaXMub2NTdHlsZVxuICB9XG5cbiAgdG9nZ2xlT3BlbigpIHtcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlblxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2MtZmlsdGVyLXJvd1wiIFtuZ0NsYXNzXT1cIntcbiAgcmV2ZXJzZTogb2NTaWRlID09PSAncmlnaHQnXG59XCI+XG4gIDxidXR0b24gY2xhc3M9XCJvYy1maWx0ZXItYnRuXCIgW25nQ2xhc3NdPVwie1xuICAgIHNodWk6IG9jU3R5bGUgPT09ICdzaHVpJ1xuICB9XCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmZpbHRlcl9saXN0PC9zcGFuPlxuICAgIHt7b2NUZXh0fX1cbiAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj5cbiAgICAgIDxvYy1iYWRnZSAqbmdJZj1cIm9jQWN0aXZlID4gMFwiIG9jU2l6ZT1cInNtYWxsXCIgb2NDb2xvcj1cInN1Y2Nlc3NcIiBbb2NXYXZlZF09XCJ0cnVlXCI+e3tvY0FjdGl2ZX19PC9vYy1iYWRnZT5cbiAgICA8L2Rpdj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cImZpbHRlci1yb3ctY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyb3ddXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJvYy1maWx0ZXItY29udGVudFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbYm9keV1cIj5cbiAgPC9uZy1jb250ZW50PlxuPC9kaXY+Il19
|