matcha-components 20.5.0 → 20.12.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/fesm2022/matcha-components.mjs +826 -196
- package/fesm2022/matcha-components.mjs.map +1 -1
- package/index.d.ts +230 -75
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Output, Input, Component, ContentChildren, ElementRef, Renderer2,
|
|
2
|
+
import { EventEmitter, Output, HostBinding, Input, Component, ContentChildren, ElementRef, Renderer2, Inject, ViewChild, ContentChild, HostListener, Directive, forwardRef, ChangeDetectionStrategy, TemplateRef, Injectable, Optional, ViewEncapsulation, NgModule, createComponent } from '@angular/core';
|
|
3
3
|
import { animation, style, animate, trigger, transition, useAnimation, state, query, stagger, animateChild, sequence, group } from '@angular/animations';
|
|
4
4
|
import { Subscription, Subject, BehaviorSubject, fromEvent } from 'rxjs';
|
|
5
5
|
import { debounceTime, filter } from 'rxjs/operators';
|
|
@@ -7,6 +7,12 @@ import * as i1 from '@angular/common';
|
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
8
|
import { FormControlName, NG_VALUE_ACCESSOR, NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Token de injeção para MatchaOptionParent
|
|
12
|
+
* Usado para injetar o componente pai no matcha-option
|
|
13
|
+
*/
|
|
14
|
+
const MATCHA_OPTION_PARENT = Symbol('MatchaOptionParent');
|
|
15
|
+
|
|
10
16
|
const customAnimation = animation([
|
|
11
17
|
style({
|
|
12
18
|
opacity: '{{opacity}}',
|
|
@@ -362,7 +368,9 @@ class MatchaAccordionItemComponent {
|
|
|
362
368
|
constructor() {
|
|
363
369
|
this._stretch = false;
|
|
364
370
|
this._isOpen = false;
|
|
371
|
+
this._clickableHeader = true;
|
|
365
372
|
this.opened = new EventEmitter();
|
|
373
|
+
this.toggleRequested = new EventEmitter();
|
|
366
374
|
}
|
|
367
375
|
set stretch(value) {
|
|
368
376
|
this._stretch = value != null && `${value}` !== 'false';
|
|
@@ -370,37 +378,65 @@ class MatchaAccordionItemComponent {
|
|
|
370
378
|
get stretch() {
|
|
371
379
|
return this._stretch;
|
|
372
380
|
}
|
|
381
|
+
get stretchClass() {
|
|
382
|
+
return this._stretch;
|
|
383
|
+
}
|
|
384
|
+
set clickableHeader(value) {
|
|
385
|
+
this._clickableHeader = value != null && `${value}` !== 'false';
|
|
386
|
+
}
|
|
387
|
+
get clickableHeader() {
|
|
388
|
+
return this._clickableHeader;
|
|
389
|
+
}
|
|
373
390
|
set isOpen(value) {
|
|
374
391
|
this._isOpen = value != null && `${value}` !== 'false';
|
|
375
392
|
}
|
|
376
393
|
get isOpen() {
|
|
377
394
|
return this._isOpen;
|
|
378
395
|
}
|
|
396
|
+
get isOpenClass() {
|
|
397
|
+
return this._isOpen;
|
|
398
|
+
}
|
|
379
399
|
ngOnInit() {
|
|
380
400
|
this.opened.emit(this.isOpen);
|
|
381
401
|
}
|
|
402
|
+
ngOnChanges(changes) {
|
|
403
|
+
if (changes['isOpen']) {
|
|
404
|
+
this.opened.emit(this.isOpen);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
382
407
|
toggleAccordion() {
|
|
383
|
-
|
|
384
|
-
this.
|
|
408
|
+
// Emite evento para o accordion pai controlar o estado
|
|
409
|
+
this.toggleRequested.emit();
|
|
385
410
|
}
|
|
386
411
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
387
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaAccordionItemComponent, isStandalone: false, selector: "matcha-accordion-item", inputs: { stretch: "stretch", isOpen: "isOpen" }, outputs: { opened: "opened" }, ngImport: i0, template: "<div class=\"accordion-item flex-column overflow-hidden\">\n <div class=\"accordion-header d-flex\">\n <div class=\"d-flex accordion-header-wrapper\"
|
|
412
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaAccordionItemComponent, isStandalone: false, selector: "matcha-accordion-item", inputs: { stretch: "stretch", clickableHeader: "clickableHeader", isOpen: "isOpen" }, outputs: { opened: "opened", toggleRequested: "toggleRequested" }, host: { properties: { "class.stretch": "this.stretchClass", "class.is-open": "this.isOpenClass" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"accordion-item flex-column overflow-hidden\">\n <div class=\"accordion-header d-flex\">\n <div class=\"d-flex accordion-header-wrapper\"\n [class.cursor-pointer]=\"clickableHeader\"\n (click)=\"clickableHeader ? toggleAccordion() : null\">\n <ng-content select=\"matcha-accordion-header\"></ng-content>\n </div>\n </div>\n <div class=\"accordion-content overflow-hidden\" [@expandCollapse]=\"isOpen ? '*' : 'void'\">\n <ng-content select=\"matcha-accordion-content\"></ng-content>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], animations: [...createAnimations] }); }
|
|
388
413
|
}
|
|
389
414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAccordionItemComponent, decorators: [{
|
|
390
415
|
type: Component,
|
|
391
|
-
args: [{ selector: 'matcha-accordion-item', standalone: false, animations: [...createAnimations], template: "<div class=\"accordion-item flex-column overflow-hidden\">\n <div class=\"accordion-header d-flex\">\n <div class=\"d-flex accordion-header-wrapper\"
|
|
416
|
+
args: [{ selector: 'matcha-accordion-item', standalone: false, animations: [...createAnimations], template: "<div class=\"accordion-item flex-column overflow-hidden\">\n <div class=\"accordion-header d-flex\">\n <div class=\"d-flex accordion-header-wrapper\"\n [class.cursor-pointer]=\"clickableHeader\"\n (click)=\"clickableHeader ? toggleAccordion() : null\">\n <ng-content select=\"matcha-accordion-header\"></ng-content>\n </div>\n </div>\n <div class=\"accordion-content overflow-hidden\" [@expandCollapse]=\"isOpen ? '*' : 'void'\">\n <ng-content select=\"matcha-accordion-content\"></ng-content>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
392
417
|
}], propDecorators: { stretch: [{
|
|
393
418
|
type: Input
|
|
419
|
+
}], stretchClass: [{
|
|
420
|
+
type: HostBinding,
|
|
421
|
+
args: ['class.stretch']
|
|
422
|
+
}], clickableHeader: [{
|
|
423
|
+
type: Input
|
|
394
424
|
}], isOpen: [{
|
|
395
425
|
type: Input
|
|
426
|
+
}], isOpenClass: [{
|
|
427
|
+
type: HostBinding,
|
|
428
|
+
args: ['class.is-open']
|
|
396
429
|
}], opened: [{
|
|
397
430
|
type: Output
|
|
431
|
+
}], toggleRequested: [{
|
|
432
|
+
type: Output
|
|
398
433
|
}] } });
|
|
399
434
|
|
|
400
435
|
class MatchaAccordionComponent {
|
|
401
436
|
constructor() {
|
|
402
437
|
this._multiple = false;
|
|
403
438
|
this.openedChange = new EventEmitter();
|
|
439
|
+
this.subscriptions = [];
|
|
404
440
|
}
|
|
405
441
|
set multiple(value) {
|
|
406
442
|
// Converte 'false' (string) ou false (boolean) para false, e qualquer outro valor para true.
|
|
@@ -410,15 +446,34 @@ class MatchaAccordionComponent {
|
|
|
410
446
|
return this._multiple;
|
|
411
447
|
}
|
|
412
448
|
ngAfterContentInit() {
|
|
449
|
+
this.setupItems();
|
|
450
|
+
// Escuta mudanças na lista de itens (para casos dinâmicos)
|
|
451
|
+
this.items.changes.subscribe(() => {
|
|
452
|
+
this.setupItems();
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
ngOnDestroy() {
|
|
456
|
+
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
457
|
+
}
|
|
458
|
+
setupItems() {
|
|
459
|
+
// Limpa subscriptions anteriores
|
|
460
|
+
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
461
|
+
this.subscriptions = [];
|
|
413
462
|
this.items.forEach(item => {
|
|
414
|
-
item.
|
|
463
|
+
const toggleSub = item.toggleRequested.subscribe(() => {
|
|
415
464
|
this.toggleItem(item);
|
|
465
|
+
});
|
|
466
|
+
this.subscriptions.push(toggleSub);
|
|
467
|
+
const openedSub = item.opened.subscribe((isOpen) => {
|
|
416
468
|
this.openedChange.emit(isOpen);
|
|
417
469
|
});
|
|
470
|
+
this.subscriptions.push(openedSub);
|
|
418
471
|
});
|
|
419
472
|
}
|
|
420
473
|
toggleItem(selectedItem) {
|
|
421
|
-
//
|
|
474
|
+
// Toggle o item selecionado
|
|
475
|
+
selectedItem.isOpen = !selectedItem.isOpen;
|
|
476
|
+
// Se não permite múltiplos itens abertos e o item foi aberto, fecha os demais
|
|
422
477
|
if (!this.multiple && selectedItem.isOpen) {
|
|
423
478
|
this.items.forEach(item => {
|
|
424
479
|
if (item !== selectedItem) {
|
|
@@ -1043,8 +1098,14 @@ class MatchaCardComponent {
|
|
|
1043
1098
|
}
|
|
1044
1099
|
get alpha() { return this._alpha; }
|
|
1045
1100
|
set alpha(v) { this._alpha = v === 'false' ? false : !!v; }
|
|
1101
|
+
get alphaAttr() {
|
|
1102
|
+
return this.alpha ? 'true' : 'false';
|
|
1103
|
+
}
|
|
1046
1104
|
get tint() { return this._tint; }
|
|
1047
1105
|
set tint(v) { this._tint = v === 'false' ? false : !!v; }
|
|
1106
|
+
get tintAttr() {
|
|
1107
|
+
return this.tint ? 'true' : 'false';
|
|
1108
|
+
}
|
|
1048
1109
|
get loading() { return this._loading; }
|
|
1049
1110
|
set loading(v) { this._loading = v === 'false' ? false : !!v; }
|
|
1050
1111
|
get classes() {
|
|
@@ -1078,7 +1139,7 @@ class MatchaCardComponent {
|
|
|
1078
1139
|
return this.blockquote === 'left' || this.blockquote === 'right';
|
|
1079
1140
|
}
|
|
1080
1141
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1081
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaCardComponent, isStandalone: false, selector: "matcha-card", inputs: { color: "color", blockquote: "blockquote", blockquoteColor: "blockquoteColor", class: "class", alpha: "alpha", tint: "tint", loading: "loading" }, host: { properties: { "attr.color": "this.colorAttr", "class": "this.classes" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
|
|
1142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaCardComponent, isStandalone: false, selector: "matcha-card", inputs: { color: "color", blockquote: "blockquote", blockquoteColor: "blockquoteColor", class: "class", alpha: "alpha", tint: "tint", loading: "loading" }, host: { properties: { "attr.color": "this.colorAttr", "attr.alpha": "this.alphaAttr", "attr.tint": "this.tintAttr", "class": "this.classes" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
|
|
1082
1143
|
}
|
|
1083
1144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaCardComponent, decorators: [{
|
|
1084
1145
|
type: Component,
|
|
@@ -1096,8 +1157,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1096
1157
|
type: Input
|
|
1097
1158
|
}], alpha: [{
|
|
1098
1159
|
type: Input
|
|
1160
|
+
}], alphaAttr: [{
|
|
1161
|
+
type: HostBinding,
|
|
1162
|
+
args: ['attr.alpha']
|
|
1099
1163
|
}], tint: [{
|
|
1100
1164
|
type: Input
|
|
1165
|
+
}], tintAttr: [{
|
|
1166
|
+
type: HostBinding,
|
|
1167
|
+
args: ['attr.tint']
|
|
1101
1168
|
}], loading: [{
|
|
1102
1169
|
type: Input
|
|
1103
1170
|
}], classes: [{
|
|
@@ -1238,70 +1305,159 @@ class MatchaDrawerComponent {
|
|
|
1238
1305
|
return `matcha-drawer matcha-drawer-${this.mode} matcha-drawer-${this.position} ${this.isOpen ? 'matcha-drawer-open' : 'matcha-drawer-closed'}`;
|
|
1239
1306
|
}
|
|
1240
1307
|
get drawerWidth() {
|
|
1241
|
-
|
|
1308
|
+
if (this.mode === 'overlay') {
|
|
1309
|
+
// Modo overlay: sempre 0px para não empurrar o conteúdo
|
|
1310
|
+
return '0px';
|
|
1311
|
+
}
|
|
1312
|
+
// Modo push: ocupa espaço apenas quando aberto
|
|
1313
|
+
return this.isOpen ? this.width : '0px';
|
|
1314
|
+
}
|
|
1315
|
+
get drawerHeight() {
|
|
1316
|
+
return '100vh';
|
|
1242
1317
|
}
|
|
1243
|
-
constructor(elementRef, renderer) {
|
|
1318
|
+
constructor(elementRef, renderer, cdr) {
|
|
1244
1319
|
this.elementRef = elementRef;
|
|
1245
1320
|
this.renderer = renderer;
|
|
1321
|
+
this.cdr = cdr;
|
|
1246
1322
|
this.isOpen = false;
|
|
1247
|
-
this.mode = 'push';
|
|
1323
|
+
this.mode = 'push';
|
|
1248
1324
|
this.position = 'left';
|
|
1249
|
-
this.width = '
|
|
1325
|
+
this.width = '300px';
|
|
1326
|
+
this.hasBackdrop = true;
|
|
1327
|
+
this.disableClose = false;
|
|
1328
|
+
this.autoCloseOnMobile = true;
|
|
1329
|
+
this.breakpoint = 1024;
|
|
1330
|
+
this.elevation = 8;
|
|
1331
|
+
this.hasFooter = false;
|
|
1250
1332
|
this.isOpenChange = new EventEmitter();
|
|
1251
|
-
this.
|
|
1333
|
+
this.drawerToggle = new EventEmitter();
|
|
1334
|
+
this.drawerOpened = new EventEmitter();
|
|
1335
|
+
this.drawerClosed = new EventEmitter();
|
|
1336
|
+
this.isMobile = false;
|
|
1337
|
+
this.bodyScrollLocked = false;
|
|
1338
|
+
this.setupResizeObserver();
|
|
1252
1339
|
}
|
|
1253
1340
|
ngOnInit() {
|
|
1254
|
-
this.
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
this.
|
|
1260
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'height', '100vh');
|
|
1341
|
+
this.checkScreenSize();
|
|
1342
|
+
this.setupBodyScrollLock();
|
|
1343
|
+
}
|
|
1344
|
+
ngOnDestroy() {
|
|
1345
|
+
if (this.resizeObserver) {
|
|
1346
|
+
this.resizeObserver.disconnect();
|
|
1261
1347
|
}
|
|
1262
|
-
|
|
1263
|
-
|
|
1348
|
+
this.unlockBodyScroll();
|
|
1349
|
+
}
|
|
1350
|
+
setupResizeObserver() {
|
|
1351
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
1352
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
1353
|
+
this.checkScreenSize();
|
|
1354
|
+
});
|
|
1355
|
+
if (this.elementRef.nativeElement.parentElement) {
|
|
1356
|
+
this.resizeObserver.observe(this.elementRef.nativeElement.parentElement);
|
|
1357
|
+
}
|
|
1264
1358
|
}
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1359
|
+
}
|
|
1360
|
+
checkScreenSize() {
|
|
1361
|
+
const wasMobile = this.isMobile;
|
|
1362
|
+
this.isMobile = window.innerWidth < this.breakpoint;
|
|
1363
|
+
if (wasMobile !== this.isMobile) {
|
|
1364
|
+
this.cdr.detectChanges();
|
|
1365
|
+
if (!this.isMobile && this.autoCloseOnMobile && this.isOpen) {
|
|
1366
|
+
this.close();
|
|
1367
|
+
}
|
|
1268
1368
|
}
|
|
1269
|
-
|
|
1270
|
-
|
|
1369
|
+
}
|
|
1370
|
+
setupBodyScrollLock() {
|
|
1371
|
+
if (this.mode === 'overlay' && this.isOpen) {
|
|
1372
|
+
this.lockBodyScroll();
|
|
1271
1373
|
}
|
|
1272
1374
|
}
|
|
1273
|
-
|
|
1274
|
-
|
|
1375
|
+
lockBodyScroll() {
|
|
1376
|
+
if (!this.bodyScrollLocked) {
|
|
1377
|
+
document.body.style.overflow = 'hidden';
|
|
1378
|
+
this.bodyScrollLocked = true;
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
unlockBodyScroll() {
|
|
1382
|
+
if (this.bodyScrollLocked) {
|
|
1383
|
+
document.body.style.overflow = '';
|
|
1384
|
+
this.bodyScrollLocked = false;
|
|
1385
|
+
}
|
|
1275
1386
|
}
|
|
1276
1387
|
toggle() {
|
|
1388
|
+
if (this.disableClose && this.isOpen) {
|
|
1389
|
+
return;
|
|
1390
|
+
}
|
|
1277
1391
|
this.isOpen = !this.isOpen;
|
|
1278
1392
|
this.isOpenChange.emit(this.isOpen);
|
|
1279
|
-
this.
|
|
1393
|
+
this.drawerToggle.emit();
|
|
1394
|
+
if (this.isOpen) {
|
|
1395
|
+
this.drawerOpened.emit();
|
|
1396
|
+
if (this.mode === 'overlay') {
|
|
1397
|
+
this.lockBodyScroll();
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
else {
|
|
1401
|
+
this.drawerClosed.emit();
|
|
1402
|
+
this.unlockBodyScroll();
|
|
1403
|
+
}
|
|
1404
|
+
if (this.isMobile && this.autoCloseOnMobile && this.isOpen) {
|
|
1405
|
+
setTimeout(() => this.close(), 300);
|
|
1406
|
+
}
|
|
1280
1407
|
}
|
|
1281
1408
|
open() {
|
|
1282
|
-
if (!this.isOpen) {
|
|
1409
|
+
if (!this.isOpen && !this.disableClose) {
|
|
1283
1410
|
this.isOpen = true;
|
|
1284
1411
|
this.isOpenChange.emit(this.isOpen);
|
|
1285
|
-
this.
|
|
1412
|
+
this.drawerToggle.emit();
|
|
1413
|
+
this.drawerOpened.emit();
|
|
1414
|
+
if (this.mode === 'overlay') {
|
|
1415
|
+
this.lockBodyScroll();
|
|
1416
|
+
}
|
|
1286
1417
|
}
|
|
1287
1418
|
}
|
|
1288
1419
|
close() {
|
|
1289
|
-
if (this.isOpen) {
|
|
1420
|
+
if (this.isOpen && !this.disableClose) {
|
|
1290
1421
|
this.isOpen = false;
|
|
1291
1422
|
this.isOpenChange.emit(this.isOpen);
|
|
1292
|
-
this.
|
|
1423
|
+
this.drawerToggle.emit();
|
|
1424
|
+
this.drawerClosed.emit();
|
|
1425
|
+
this.unlockBodyScroll();
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
onBackdropClick() {
|
|
1429
|
+
if (this.hasBackdrop && this.mode === 'overlay' && !this.disableClose) {
|
|
1430
|
+
this.close();
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
onKeyDown(event) {
|
|
1434
|
+
if (event.key === 'Escape' && this.isOpen && !this.disableClose) {
|
|
1435
|
+
this.close();
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
getDrawerTransform() {
|
|
1439
|
+
// Centralização em telas grandes
|
|
1440
|
+
if (window.innerWidth >= 1920) {
|
|
1441
|
+
return `translateX(calc(50vw - 960px))`;
|
|
1293
1442
|
}
|
|
1443
|
+
return 'none';
|
|
1294
1444
|
}
|
|
1295
1445
|
get animationState() {
|
|
1296
|
-
return this.isOpen ?
|
|
1446
|
+
return this.isOpen ? 'open' : 'closed';
|
|
1447
|
+
}
|
|
1448
|
+
get isOverlayMode() {
|
|
1449
|
+
return this.mode === 'overlay';
|
|
1450
|
+
}
|
|
1451
|
+
get isPushMode() {
|
|
1452
|
+
return this.mode === 'push';
|
|
1297
1453
|
}
|
|
1298
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1299
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaDrawerComponent, isStandalone: false, selector: "matcha-drawer", inputs: { isOpen: "isOpen", mode: "mode", position: "position", width: "width" }, outputs: { isOpenChange: "isOpenChange",
|
|
1454
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1455
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaDrawerComponent, isStandalone: false, selector: "matcha-drawer", inputs: { isOpen: "isOpen", mode: "mode", position: "position", width: "width", hasBackdrop: "hasBackdrop", disableClose: "disableClose", autoCloseOnMobile: "autoCloseOnMobile", breakpoint: "breakpoint", elevation: "elevation", hasFooter: "hasFooter" }, outputs: { isOpenChange: "isOpenChange", drawerToggle: "drawerToggle", drawerOpened: "drawerOpened", drawerClosed: "drawerClosed" }, host: { properties: { "class": "this.drawerClasses", "style.width": "this.drawerWidth", "style.height": "this.drawerHeight" } }, viewQueries: [{ propertyName: "drawerContent", first: true, predicate: ["drawerContent"], descendants: true }], ngImport: i0, template: "<!-- Backdrop para modo overlay -->\n<div *ngIf=\"isOverlayMode && isOpen && hasBackdrop\"\n class=\"matcha-backdrop\"\n [@fadeInOut]=\"isOpen ? '1' : '0'\"\n (click)=\"onBackdropClick()\">\n</div>\n\n<!-- Drawer Container Principal -->\n<div *ngIf=\"(isOpen && mode === 'overlay') || mode === 'push'\"\n class=\"matcha-drawer-container\"\n [class.matcha-drawer-overlay-mode]=\"isOverlayMode\"\n [class.matcha-drawer-push-mode]=\"isPushMode\"\n [class.matcha-drawer-left]=\"position === 'left'\"\n [class.matcha-drawer-right]=\"position === 'right'\"\n [@slideInLeft]=\"animationState\"\n [style.transform]=\"getDrawerTransform()\"\n [style.width]=\"drawerWidth\"\n [style.overflow]=\"isOpen ? 'visible' : 'hidden'\"\n (keydown)=\"onKeyDown($event)\"\n tabindex=\"0\">\n\n <!-- Drawer Content -->\n <div class=\"matcha-drawer-content\"\n [style.min-width]=\"width\">\n\n <!-- Header do drawer -->\n <div class=\"matcha-drawer-header\">\n <ng-content select=\"[drawer-header]\"></ng-content>\n\n </div>\n\n <!-- Conte\u00FAdo principal do drawer -->\n <div class=\"matcha-drawer-main-content\">\n <ng-content select=\"[drawer-content]\"></ng-content>\n <ng-content></ng-content>\n </div>\n\n <!-- Footer do drawer -->\n <div *ngIf=\"hasFooter\" class=\"matcha-drawer-footer\">\n <ng-content select=\"[drawer-footer]\"></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: createAnimations }); }
|
|
1300
1456
|
}
|
|
1301
1457
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerComponent, decorators: [{
|
|
1302
1458
|
type: Component,
|
|
1303
|
-
args: [{ selector: 'matcha-drawer', animations: createAnimations, standalone: false, template: "<!-- Backdrop para modo overlay
|
|
1304
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { isOpen: [{
|
|
1459
|
+
args: [{ selector: 'matcha-drawer', animations: createAnimations, standalone: false, template: "<!-- Backdrop para modo overlay -->\n<div *ngIf=\"isOverlayMode && isOpen && hasBackdrop\"\n class=\"matcha-backdrop\"\n [@fadeInOut]=\"isOpen ? '1' : '0'\"\n (click)=\"onBackdropClick()\">\n</div>\n\n<!-- Drawer Container Principal -->\n<div *ngIf=\"(isOpen && mode === 'overlay') || mode === 'push'\"\n class=\"matcha-drawer-container\"\n [class.matcha-drawer-overlay-mode]=\"isOverlayMode\"\n [class.matcha-drawer-push-mode]=\"isPushMode\"\n [class.matcha-drawer-left]=\"position === 'left'\"\n [class.matcha-drawer-right]=\"position === 'right'\"\n [@slideInLeft]=\"animationState\"\n [style.transform]=\"getDrawerTransform()\"\n [style.width]=\"drawerWidth\"\n [style.overflow]=\"isOpen ? 'visible' : 'hidden'\"\n (keydown)=\"onKeyDown($event)\"\n tabindex=\"0\">\n\n <!-- Drawer Content -->\n <div class=\"matcha-drawer-content\"\n [style.min-width]=\"width\">\n\n <!-- Header do drawer -->\n <div class=\"matcha-drawer-header\">\n <ng-content select=\"[drawer-header]\"></ng-content>\n\n </div>\n\n <!-- Conte\u00FAdo principal do drawer -->\n <div class=\"matcha-drawer-main-content\">\n <ng-content select=\"[drawer-content]\"></ng-content>\n <ng-content></ng-content>\n </div>\n\n <!-- Footer do drawer -->\n <div *ngIf=\"hasFooter\" class=\"matcha-drawer-footer\">\n <ng-content select=\"[drawer-footer]\"></ng-content>\n </div>\n </div>\n</div>\n" }]
|
|
1460
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { isOpen: [{
|
|
1305
1461
|
type: Input
|
|
1306
1462
|
}], mode: [{
|
|
1307
1463
|
type: Input
|
|
@@ -1309,16 +1465,121 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1309
1465
|
type: Input
|
|
1310
1466
|
}], width: [{
|
|
1311
1467
|
type: Input
|
|
1468
|
+
}], hasBackdrop: [{
|
|
1469
|
+
type: Input
|
|
1470
|
+
}], disableClose: [{
|
|
1471
|
+
type: Input
|
|
1472
|
+
}], autoCloseOnMobile: [{
|
|
1473
|
+
type: Input
|
|
1474
|
+
}], breakpoint: [{
|
|
1475
|
+
type: Input
|
|
1476
|
+
}], elevation: [{
|
|
1477
|
+
type: Input
|
|
1478
|
+
}], hasFooter: [{
|
|
1479
|
+
type: Input
|
|
1312
1480
|
}], isOpenChange: [{
|
|
1313
1481
|
type: Output
|
|
1314
|
-
}],
|
|
1482
|
+
}], drawerToggle: [{
|
|
1483
|
+
type: Output
|
|
1484
|
+
}], drawerOpened: [{
|
|
1485
|
+
type: Output
|
|
1486
|
+
}], drawerClosed: [{
|
|
1315
1487
|
type: Output
|
|
1488
|
+
}], drawerContent: [{
|
|
1489
|
+
type: ViewChild,
|
|
1490
|
+
args: ['drawerContent', { static: false }]
|
|
1316
1491
|
}], drawerClasses: [{
|
|
1317
1492
|
type: HostBinding,
|
|
1318
1493
|
args: ['class']
|
|
1319
1494
|
}], drawerWidth: [{
|
|
1320
1495
|
type: HostBinding,
|
|
1321
1496
|
args: ['style.width']
|
|
1497
|
+
}], drawerHeight: [{
|
|
1498
|
+
type: HostBinding,
|
|
1499
|
+
args: ['style.height']
|
|
1500
|
+
}] } });
|
|
1501
|
+
|
|
1502
|
+
class MatchaDrawerContainerComponent {
|
|
1503
|
+
constructor() {
|
|
1504
|
+
this.hasBackdrop = true;
|
|
1505
|
+
this.autoFocus = true;
|
|
1506
|
+
}
|
|
1507
|
+
ngOnInit() {
|
|
1508
|
+
if (this.drawer) {
|
|
1509
|
+
this.setupDrawerEvents();
|
|
1510
|
+
}
|
|
1511
|
+
}
|
|
1512
|
+
ngOnDestroy() {
|
|
1513
|
+
// Cleanup se necessário
|
|
1514
|
+
}
|
|
1515
|
+
setupDrawerEvents() {
|
|
1516
|
+
if (this.drawer) {
|
|
1517
|
+
this.drawer.drawerOpened.subscribe(() => {
|
|
1518
|
+
if (this.autoFocus) {
|
|
1519
|
+
setTimeout(() => {
|
|
1520
|
+
// Focus será gerenciado pelo próprio drawer component
|
|
1521
|
+
}, 100);
|
|
1522
|
+
}
|
|
1523
|
+
});
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1527
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaDrawerContainerComponent, isStandalone: false, selector: "matcha-drawer-container", inputs: { hasBackdrop: "hasBackdrop", autoFocus: "autoFocus" }, queries: [{ propertyName: "drawer", first: true, predicate: MatchaDrawerComponent, descendants: true }], ngImport: i0, template: "<div class=\"matcha-drawer-container-wrapper\">\n <ng-content></ng-content>\n</div>\n" }); }
|
|
1528
|
+
}
|
|
1529
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerContainerComponent, decorators: [{
|
|
1530
|
+
type: Component,
|
|
1531
|
+
args: [{ selector: 'matcha-drawer-container', standalone: false, template: "<div class=\"matcha-drawer-container-wrapper\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
1532
|
+
}], propDecorators: { hasBackdrop: [{
|
|
1533
|
+
type: Input
|
|
1534
|
+
}], autoFocus: [{
|
|
1535
|
+
type: Input
|
|
1536
|
+
}], drawer: [{
|
|
1537
|
+
type: ContentChild,
|
|
1538
|
+
args: [MatchaDrawerComponent]
|
|
1539
|
+
}] } });
|
|
1540
|
+
|
|
1541
|
+
class MatchaDrawerContentComponent {
|
|
1542
|
+
constructor() {
|
|
1543
|
+
this.padding = '24px';
|
|
1544
|
+
this.scrollable = true;
|
|
1545
|
+
this.maxHeight = 'auto';
|
|
1546
|
+
}
|
|
1547
|
+
get contentClasses() {
|
|
1548
|
+
return `matcha-drawer-content ${this.scrollable ? 'scrollable' : 'no-scroll'}`;
|
|
1549
|
+
}
|
|
1550
|
+
get maxHeightStyle() {
|
|
1551
|
+
return this.maxHeight;
|
|
1552
|
+
}
|
|
1553
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1554
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaDrawerContentComponent, isStandalone: false, selector: "matcha-drawer-content", inputs: { padding: "padding", scrollable: "scrollable", maxHeight: "maxHeight" }, host: { properties: { "class": "this.contentClasses", "style.max-height": "this.maxHeightStyle" } }, ngImport: i0, template: `
|
|
1555
|
+
<div class="matcha-drawer-content-wrapper">
|
|
1556
|
+
<ng-content></ng-content>
|
|
1557
|
+
</div>
|
|
1558
|
+
`, isInline: true }); }
|
|
1559
|
+
}
|
|
1560
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerContentComponent, decorators: [{
|
|
1561
|
+
type: Component,
|
|
1562
|
+
args: [{
|
|
1563
|
+
selector: 'matcha-drawer-content',
|
|
1564
|
+
template: `
|
|
1565
|
+
<div class="matcha-drawer-content-wrapper">
|
|
1566
|
+
<ng-content></ng-content>
|
|
1567
|
+
</div>
|
|
1568
|
+
`,
|
|
1569
|
+
standalone: false
|
|
1570
|
+
}]
|
|
1571
|
+
}], propDecorators: { padding: [{
|
|
1572
|
+
type: Input
|
|
1573
|
+
}], scrollable: [{
|
|
1574
|
+
type: Input
|
|
1575
|
+
}], maxHeight: [{
|
|
1576
|
+
type: Input
|
|
1577
|
+
}], contentClasses: [{
|
|
1578
|
+
type: HostBinding,
|
|
1579
|
+
args: ['class']
|
|
1580
|
+
}], maxHeightStyle: [{
|
|
1581
|
+
type: HostBinding,
|
|
1582
|
+
args: ['style.max-height']
|
|
1322
1583
|
}] } });
|
|
1323
1584
|
|
|
1324
1585
|
class MatchaIconComponent {
|
|
@@ -1737,9 +1998,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
1737
1998
|
|
|
1738
1999
|
class MatchaToolbarComponent {
|
|
1739
2000
|
constructor() {
|
|
2001
|
+
this.elevation = 1;
|
|
1740
2002
|
this.isMobileScreen = false;
|
|
1741
2003
|
this.mobileBreakpoint = 1024;
|
|
1742
2004
|
}
|
|
2005
|
+
get elevationClass() {
|
|
2006
|
+
return `elevation-z-${this.elevation}`;
|
|
2007
|
+
}
|
|
1743
2008
|
ngOnInit() {
|
|
1744
2009
|
this.checkScreenWidth();
|
|
1745
2010
|
}
|
|
@@ -1756,12 +2021,14 @@ class MatchaToolbarComponent {
|
|
|
1756
2021
|
clearTimeout(this.resizeTimeout);
|
|
1757
2022
|
}
|
|
1758
2023
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1759
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaToolbarComponent, isStandalone: false, selector: "matcha-toolbar", host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<!-- HOW TO USE:\n<matcha-toolbar>\n <matcha-title type=\"icon\" icon=\"settings-out\" (iconClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-NO-ICONE-AQUI\">\n {{'FINANCIAL.CATEGORY.TITLE' | translate}}\n </matcha-title>\n <search-form toolbar-form-field (searchText)=\"searchText($event)\"></search-form>\n <matcha-toolbar-button icon=\"home-out\" (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-button>\n <matcha-toolbar-content>\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-content>\n <matcha-toolbar-main-button (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-main-button>\n QUALQUER OUTRA FUNCIONALIDADE AQUI\n</matcha-toolbar>\n-->\n<ng-template #toolbarMainButton>\n <ng-content select=\"matcha-toolbar-main-button\"></ng-content>\n</ng-template>\n\n<ng-template #toolbarCustomButton>\n <ng-content select=\"matcha-toolbar-custom-button\"></ng-content>\n</ng-template>\n<!-- CONTENT HEADER -->\n<div class=\"flex-column background-surface radius-8
|
|
2024
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaToolbarComponent, isStandalone: false, selector: "matcha-toolbar", inputs: { elevation: "elevation" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<!-- HOW TO USE:\n<matcha-toolbar>\n <matcha-title type=\"icon\" icon=\"settings-out\" (iconClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-NO-ICONE-AQUI\">\n {{'FINANCIAL.CATEGORY.TITLE' | translate}}\n </matcha-title>\n <search-form toolbar-form-field (searchText)=\"searchText($event)\"></search-form>\n <matcha-toolbar-button icon=\"home-out\" (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-button>\n <matcha-toolbar-content>\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-content>\n <matcha-toolbar-main-button (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-main-button>\n QUALQUER OUTRA FUNCIONALIDADE AQUI\n</matcha-toolbar>\n-->\n<ng-template #toolbarMainButton>\n <ng-content select=\"matcha-toolbar-main-button\"></ng-content>\n</ng-template>\n\n<ng-template #toolbarCustomButton>\n <ng-content select=\"matcha-toolbar-custom-button\"></ng-content>\n</ng-template>\n<!-- CONTENT HEADER -->\n<div class=\"flex-column background-surface radius-8\" [ngClass]=\"elevationClass\">\n <div class=\"flex-column flex-md-row flex-wrap p-16 flex-align-center flex-space-between h-auto min-h-40 flex-wrap\">\n <div class=\"w-100-p--force w-md-auto--force flex-space-between flex-wrap\">\n <div class=\"min-h-32 flex-center-center\">\n <ng-content select=\"matcha-title\"></ng-content>\n </div>\n <ng-container *ngIf=\"isMobileScreen\">\n <ng-container *ngTemplateOutlet=\"toolbarMainButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarCustomButton\"></ng-container>\n </ng-container>\n </div>\n <div class=\"w-100-p--force w-md-auto--force flex-row flex-end gap-8\">\n <!-- ISSO DEVE SER SUBSTITUIDO PELO matcha-input-search FOR IMPLEMENTADO -->\n <ng-content select=\"search-form\"></ng-content>\n <!-- /ISSO DEVE SER SUBSTITUIDO PELO matcha-input-search FOR IMPLEMENTADO -->\n <div class=\"flex-row gap-8\">\n <ng-content select=\"matcha-toolbar-button\"></ng-content>\n <ng-content select=\"matcha-toolbar-content\"></ng-content>\n <ng-content></ng-content>\n <ng-container *ngIf=\"!isMobileScreen\">\n <ng-container *ngTemplateOutlet=\"toolbarMainButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarCustomButton\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n<!-- / CONTENT HEADER -->\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
1760
2025
|
}
|
|
1761
2026
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaToolbarComponent, decorators: [{
|
|
1762
2027
|
type: Component,
|
|
1763
|
-
args: [{ selector: 'matcha-toolbar', standalone: false, template: "<!-- HOW TO USE:\n<matcha-toolbar>\n <matcha-title type=\"icon\" icon=\"settings-out\" (iconClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-NO-ICONE-AQUI\">\n {{'FINANCIAL.CATEGORY.TITLE' | translate}}\n </matcha-title>\n <search-form toolbar-form-field (searchText)=\"searchText($event)\"></search-form>\n <matcha-toolbar-button icon=\"home-out\" (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-button>\n <matcha-toolbar-content>\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-content>\n <matcha-toolbar-main-button (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-main-button>\n QUALQUER OUTRA FUNCIONALIDADE AQUI\n</matcha-toolbar>\n-->\n<ng-template #toolbarMainButton>\n <ng-content select=\"matcha-toolbar-main-button\"></ng-content>\n</ng-template>\n\n<ng-template #toolbarCustomButton>\n <ng-content select=\"matcha-toolbar-custom-button\"></ng-content>\n</ng-template>\n<!-- CONTENT HEADER -->\n<div class=\"flex-column background-surface radius-8
|
|
1764
|
-
}], propDecorators: {
|
|
2028
|
+
args: [{ selector: 'matcha-toolbar', standalone: false, template: "<!-- HOW TO USE:\n<matcha-toolbar>\n <matcha-title type=\"icon\" icon=\"settings-out\" (iconClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-NO-ICONE-AQUI\">\n {{'FINANCIAL.CATEGORY.TITLE' | translate}}\n </matcha-title>\n <search-form toolbar-form-field (searchText)=\"searchText($event)\"></search-form>\n <matcha-toolbar-button icon=\"home-out\" (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-button>\n <matcha-toolbar-content>\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-content>\n <matcha-toolbar-main-button (buttonClick)=\"FUN\u00C7\u00C3O-AO-CLICAR-AQUI\">\n TEXTO DO BOT\u00C3O AQUI\n </matcha-toolbar-main-button>\n QUALQUER OUTRA FUNCIONALIDADE AQUI\n</matcha-toolbar>\n-->\n<ng-template #toolbarMainButton>\n <ng-content select=\"matcha-toolbar-main-button\"></ng-content>\n</ng-template>\n\n<ng-template #toolbarCustomButton>\n <ng-content select=\"matcha-toolbar-custom-button\"></ng-content>\n</ng-template>\n<!-- CONTENT HEADER -->\n<div class=\"flex-column background-surface radius-8\" [ngClass]=\"elevationClass\">\n <div class=\"flex-column flex-md-row flex-wrap p-16 flex-align-center flex-space-between h-auto min-h-40 flex-wrap\">\n <div class=\"w-100-p--force w-md-auto--force flex-space-between flex-wrap\">\n <div class=\"min-h-32 flex-center-center\">\n <ng-content select=\"matcha-title\"></ng-content>\n </div>\n <ng-container *ngIf=\"isMobileScreen\">\n <ng-container *ngTemplateOutlet=\"toolbarMainButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarCustomButton\"></ng-container>\n </ng-container>\n </div>\n <div class=\"w-100-p--force w-md-auto--force flex-row flex-end gap-8\">\n <!-- ISSO DEVE SER SUBSTITUIDO PELO matcha-input-search FOR IMPLEMENTADO -->\n <ng-content select=\"search-form\"></ng-content>\n <!-- /ISSO DEVE SER SUBSTITUIDO PELO matcha-input-search FOR IMPLEMENTADO -->\n <div class=\"flex-row gap-8\">\n <ng-content select=\"matcha-toolbar-button\"></ng-content>\n <ng-content select=\"matcha-toolbar-content\"></ng-content>\n <ng-content></ng-content>\n <ng-container *ngIf=\"!isMobileScreen\">\n <ng-container *ngTemplateOutlet=\"toolbarMainButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarCustomButton\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n<!-- / CONTENT HEADER -->\n" }]
|
|
2029
|
+
}], propDecorators: { elevation: [{
|
|
2030
|
+
type: Input
|
|
2031
|
+
}], onResize: [{
|
|
1765
2032
|
type: HostListener,
|
|
1766
2033
|
args: ['window:resize', []]
|
|
1767
2034
|
}] } });
|
|
@@ -1843,11 +2110,11 @@ class MatchaFormFieldComponent {
|
|
|
1843
2110
|
return !!this.control?.invalid && (this.control?.touched || this.control?.dirty);
|
|
1844
2111
|
}
|
|
1845
2112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1846
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaFormFieldComponent, isStandalone: false, selector: "matcha-form-field", inputs: { color: "color", size: "size", sizeXs: ["size-xs", "sizeXs"], sizeSm: ["size-sm", "sizeSm"], sizeMd: ["size-md", "sizeMd"], sizeLg: ["size-lg", "sizeLg"], sizeXl: ["size-xl", "sizeXl"] }, queries: [{ propertyName: "controlDir", first: true, predicate: FormControlName, descendants: true }], ngImport: i0, template: "<div class=\"flex-column gap-4\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
2113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaFormFieldComponent, isStandalone: false, selector: "matcha-form-field", inputs: { color: "color", size: "size", sizeXs: ["size-xs", "sizeXs"], sizeSm: ["size-sm", "sizeSm"], sizeMd: ["size-md", "sizeMd"], sizeLg: ["size-lg", "sizeLg"], sizeXl: ["size-xl", "sizeXl"] }, queries: [{ propertyName: "controlDir", first: true, predicate: FormControlName, descendants: true }], ngImport: i0, template: "<div class=\"flex-column gap-4\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n<ng-content select=\"matcha-hint-text\"></ng-content>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
1847
2114
|
}
|
|
1848
2115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaFormFieldComponent, decorators: [{
|
|
1849
2116
|
type: Component,
|
|
1850
|
-
args: [{ selector: 'matcha-form-field', standalone: false, template: "<div class=\"flex-column gap-4\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n" }]
|
|
2117
|
+
args: [{ selector: 'matcha-form-field', standalone: false, template: "<div class=\"flex-column gap-4\">\n <div class=\"matcha-form-field position-relative w-100-p min-h-40 flex-align-center\" #inputSelector>\n <div class=\"flex-row position-absolute w-100-p min-h-40 h-100-p\">\n <div class=\"bl-2 bt-2 bb-2 radius-left-8 min-w-8 border-color-{{color}}\"></div>\n <div class=\"bb-2 w-auto border-color-{{color}}\">\n <ng-content select=\"matcha-label\"></ng-content>\n </div>\n <div class=\"br-2 bt-2 bb-2 radius-right-8 w-100-p border-color-{{color}}\"></div>\n </div>\n <div class=\"flex-row position-relative py-8 px-12 gap-8 w-100-p\">\n <ng-content></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"showError\">\n <ng-content select=\"matcha-error\"></ng-content>\n </ng-container>\n <ng-content select=\"matcha-autocomplete\"></ng-content>\n</div>\n<ng-content select=\"matcha-hint-text\"></ng-content>\n" }]
|
|
1851
2118
|
}], propDecorators: { color: [{
|
|
1852
2119
|
type: Input
|
|
1853
2120
|
}], size: [{
|
|
@@ -1977,19 +2244,21 @@ class MatchaCheckboxComponent {
|
|
|
1977
2244
|
this.onChange = () => { };
|
|
1978
2245
|
this.onTouched = () => { };
|
|
1979
2246
|
}
|
|
2247
|
+
get disabled() {
|
|
2248
|
+
return this._disabled;
|
|
2249
|
+
}
|
|
1980
2250
|
set disabled(value) {
|
|
1981
2251
|
// Converte 'false' (string) ou false (boolean) para false, e qualquer outro valor para true.
|
|
1982
2252
|
this._disabled = value != null && `${value}` !== 'false';
|
|
1983
2253
|
}
|
|
1984
|
-
get disabled() {
|
|
1985
|
-
return this._disabled;
|
|
1986
|
-
}
|
|
1987
2254
|
get checked() {
|
|
1988
2255
|
return this._checked;
|
|
1989
2256
|
}
|
|
1990
2257
|
set checked(value) {
|
|
1991
|
-
|
|
1992
|
-
|
|
2258
|
+
// Converte string para boolean: 'false' (string) ou false (boolean) para false, qualquer outro valor para true
|
|
2259
|
+
const booleanValue = value != null && `${value}` !== 'false';
|
|
2260
|
+
if (booleanValue !== this._checked) {
|
|
2261
|
+
this._checked = booleanValue;
|
|
1993
2262
|
this.onChange(this._checked);
|
|
1994
2263
|
}
|
|
1995
2264
|
}
|
|
@@ -2332,11 +2601,11 @@ class MatchaHintTextComponent {
|
|
|
2332
2601
|
}
|
|
2333
2602
|
}
|
|
2334
2603
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaHintTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2335
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaHintTextComponent, isStandalone: false, selector: "matcha-hint-text", inputs: { type: "type", size: "size" }, ngImport: i0, template: "<div class=\"d-flex gap-4\">\n <matcha-icon color=\"{{ iconColor }}\" name=\"{{ iconName }}\"> </matcha-icon>\n <span class=\"text\"><ng-content></ng-content></span>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatchaIconComponent, selector: "matcha-icon", inputs: ["name", "size", "color", "class", "loading"] }] }); }
|
|
2604
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaHintTextComponent, isStandalone: false, selector: "matcha-hint-text", inputs: { type: "type", size: "size" }, ngImport: i0, template: "<div class=\"d-flex flex-align-center gap-4\">\n <matcha-icon color=\"{{ iconColor }}\" name=\"{{ iconName }}\"> </matcha-icon>\n <span class=\"text\"><ng-content></ng-content></span>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatchaIconComponent, selector: "matcha-icon", inputs: ["name", "size", "color", "class", "loading"] }] }); }
|
|
2336
2605
|
}
|
|
2337
2606
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaHintTextComponent, decorators: [{
|
|
2338
2607
|
type: Component,
|
|
2339
|
-
args: [{ selector: 'matcha-hint-text', standalone: false, template: "<div class=\"d-flex gap-4\">\n <matcha-icon color=\"{{ iconColor }}\" name=\"{{ iconName }}\"> </matcha-icon>\n <span class=\"text\"><ng-content></ng-content></span>\n</div>\n" }]
|
|
2608
|
+
args: [{ selector: 'matcha-hint-text', standalone: false, template: "<div class=\"d-flex flex-align-center gap-4\">\n <matcha-icon color=\"{{ iconColor }}\" name=\"{{ iconName }}\"> </matcha-icon>\n <span class=\"text\"><ng-content></ng-content></span>\n</div>\n" }]
|
|
2340
2609
|
}], propDecorators: { type: [{
|
|
2341
2610
|
type: Input,
|
|
2342
2611
|
args: ['type']
|
|
@@ -2630,11 +2899,11 @@ class MatchaTabsComponent {
|
|
|
2630
2899
|
}
|
|
2631
2900
|
}
|
|
2632
2901
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2633
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaTabsComponent, isStandalone: false, selector: "matcha-tabs", inputs: { activeTabIndex: "activeTabIndex" }, outputs: { tabSelected: "tabSelected" }, host: { listeners: { "keydown": "handleKeyboardEvent($event)" } }, queries: [{ propertyName: "tabs", predicate: MatchaTabItemComponent }], ngImport: i0, template: "<div class=\"flex-column gap-24 w-100-p\">\n <nav class=\"button-group overflow-auto w-100-p flex-row gap-8 list-style-none pl-0 pb-4\" role=\"tablist\">\n <button *ngFor=\"let tab of tabs; let i = index\" (click)=\"selectTabByIndex(i)\"
|
|
2902
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaTabsComponent, isStandalone: false, selector: "matcha-tabs", inputs: { activeTabIndex: "activeTabIndex" }, outputs: { tabSelected: "tabSelected" }, host: { listeners: { "keydown": "handleKeyboardEvent($event)" } }, queries: [{ propertyName: "tabs", predicate: MatchaTabItemComponent }], ngImport: i0, template: "<div class=\"flex-column gap-24 w-100-p\">\n <nav class=\"button-group overflow-auto w-100-p flex-row gap-8 list-style-none pl-0 pb-4\" role=\"tablist\">\n <button *ngFor=\"let tab of tabs; let i = index\" (click)=\"selectTabByIndex(i)\"\n [attr.aria-selected]=\"tab.active\"\n [attr.aria-controls]=\"'tab-content-' + i\"\n [ngClass]=\"{'active': tab.active}\"\n class=\"\n border-color-{{tab.active?'accent':'surface'}} background-surface\n cursor-pointer w-100-p min-w-88 b-2 radius-8 p-8 flex-column flex-align-center gap-4 flex-space-between\"\n role=\"tab\"\n tabindex=\"{{tab.active ? 0 : -1}}\">\n <matcha-icon [name]=\"tab.icon\" color=\"accent\" size=\"md\"></matcha-icon>\n <span class=\"color-fg fw-900 fs-14 lh-16 line-clamp-2\">\n {{ tab.title }}\n </span>\n </button>\n </nav>\n\n <div>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatchaIconComponent, selector: "matcha-icon", inputs: ["name", "size", "color", "class", "loading"] }], animations: [...createAnimations] }); }
|
|
2634
2903
|
}
|
|
2635
2904
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaTabsComponent, decorators: [{
|
|
2636
2905
|
type: Component,
|
|
2637
|
-
args: [{ selector: 'matcha-tabs', animations: [...createAnimations], standalone: false, template: "<div class=\"flex-column gap-24 w-100-p\">\n <nav class=\"button-group overflow-auto w-100-p flex-row gap-8 list-style-none pl-0 pb-4\" role=\"tablist\">\n <button *ngFor=\"let tab of tabs; let i = index\" (click)=\"selectTabByIndex(i)\"
|
|
2906
|
+
args: [{ selector: 'matcha-tabs', animations: [...createAnimations], standalone: false, template: "<div class=\"flex-column gap-24 w-100-p\">\n <nav class=\"button-group overflow-auto w-100-p flex-row gap-8 list-style-none pl-0 pb-4\" role=\"tablist\">\n <button *ngFor=\"let tab of tabs; let i = index\" (click)=\"selectTabByIndex(i)\"\n [attr.aria-selected]=\"tab.active\"\n [attr.aria-controls]=\"'tab-content-' + i\"\n [ngClass]=\"{'active': tab.active}\"\n class=\"\n border-color-{{tab.active?'accent':'surface'}} background-surface\n cursor-pointer w-100-p min-w-88 b-2 radius-8 p-8 flex-column flex-align-center gap-4 flex-space-between\"\n role=\"tab\"\n tabindex=\"{{tab.active ? 0 : -1}}\">\n <matcha-icon [name]=\"tab.icon\" color=\"accent\" size=\"md\"></matcha-icon>\n <span class=\"color-fg fw-900 fs-14 lh-16 line-clamp-2\">\n {{ tab.title }}\n </span>\n </button>\n </nav>\n\n <div>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
2638
2907
|
}], propDecorators: { tabs: [{
|
|
2639
2908
|
type: ContentChildren,
|
|
2640
2909
|
args: [MatchaTabItemComponent]
|
|
@@ -3657,11 +3926,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
3657
3926
|
args: [{ selector: 'matcha-page-layout', standalone: false, template: "<div class=\"page-layout carded fullwidth\">\n <!-- TOP BACKGROUND -->\n <div class=\"top-bg\"></div>\n <!--/ TOP BACKGROUND -->\n\n <!-- CENTER -->\n <div class=\"center pt-24 gap-16\">\n <!-- CONTENT CARD -->\n <div class=\"content-card flatten flex-column h-100-p\">\n <!-- CONTENT -->\n <div class=\"content flex-column h-100-p\">\n <div class=\"content-card card-flat flex-column h-100-p background-bg border-radius-0 pb-16\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [":host{display:flex;flex-direction:column;width:100%}\n"] }]
|
|
3658
3927
|
}] });
|
|
3659
3928
|
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3929
|
+
class MatchaAvatarComponent {
|
|
3930
|
+
constructor() {
|
|
3931
|
+
this.src = '';
|
|
3932
|
+
this.name = '';
|
|
3933
|
+
this.size = 'medium';
|
|
3934
|
+
this.color = 'blue';
|
|
3935
|
+
this._disabled = false;
|
|
3936
|
+
}
|
|
3937
|
+
set disabled(value) {
|
|
3938
|
+
this._disabled = value != null && `${value}` !== 'false';
|
|
3939
|
+
}
|
|
3940
|
+
get disabled() {
|
|
3941
|
+
return this._disabled;
|
|
3942
|
+
}
|
|
3943
|
+
get initials() {
|
|
3944
|
+
if (!this.name.trim()) {
|
|
3945
|
+
return '';
|
|
3946
|
+
}
|
|
3947
|
+
const words = this.name.trim().split(/\s+/);
|
|
3948
|
+
if (this.size === 'tiny') {
|
|
3949
|
+
return words[0].charAt(0).toUpperCase();
|
|
3950
|
+
}
|
|
3951
|
+
if (words.length >= 2) {
|
|
3952
|
+
return (words[0].charAt(0) + words[1].charAt(0)).toUpperCase();
|
|
3953
|
+
}
|
|
3954
|
+
else if (words.length === 1 && words[0].length >= 2) {
|
|
3955
|
+
return words[0].substring(0, 2).toUpperCase();
|
|
3956
|
+
}
|
|
3957
|
+
else {
|
|
3958
|
+
return words[0].charAt(0).toUpperCase();
|
|
3959
|
+
}
|
|
3960
|
+
}
|
|
3961
|
+
get hasImage() {
|
|
3962
|
+
return !!(this.src && this.src.trim() !== '');
|
|
3963
|
+
}
|
|
3964
|
+
get hasName() {
|
|
3965
|
+
return !!(this.name && this.name.trim() !== '');
|
|
3966
|
+
}
|
|
3967
|
+
get showDefaultIcon() {
|
|
3968
|
+
return !this.hasImage && !this.hasName;
|
|
3969
|
+
}
|
|
3970
|
+
get sizeClass() {
|
|
3971
|
+
return `matcha-avatar-${this.size}`;
|
|
3972
|
+
}
|
|
3973
|
+
get avatarClasses() {
|
|
3974
|
+
let classes = `matcha-avatar radius-full ${this.sizeClass}`;
|
|
3975
|
+
if (!this.showDefaultIcon) {
|
|
3976
|
+
classes += ' ' + this.color;
|
|
3977
|
+
}
|
|
3978
|
+
if (this.disabled) {
|
|
3979
|
+
classes += ' color-disabled';
|
|
3980
|
+
}
|
|
3981
|
+
return classes;
|
|
3982
|
+
}
|
|
3983
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3984
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaAvatarComponent, isStandalone: false, selector: "matcha-avatar", inputs: { src: "src", name: "name", size: "size", color: "color", disabled: "disabled" }, ngImport: i0, template: "<span [class]=\"avatarClasses\">\n <!-- Imagem do usu\u00E1rio -->\n <img \n *ngIf=\"hasImage\" \n [src]=\"src\" \n [alt]=\"name || 'Avatar'\"\n class=\"matcha-avatar-image\">\n \n <!-- Iniciais do nome -->\n <span \n *ngIf=\"!hasImage && hasName\" \n class=\"matcha-avatar-initials\">\n {{ initials }}\n </span>\n \n\n <svg \n *ngIf=\"showDefaultIcon\"\n class=\"matcha-avatar-icon\"\n viewBox=\"0 0 56 56\" \n fill=\"none\" \n xmlns=\"http://www.w3.org/2000/svg\">\n <path \n fill-rule=\"evenodd\" \n clip-rule=\"evenodd\" \n d=\"M28 0C12.544 0 0 12.544 0 28C0 43.456 12.544 56 28 56C43.456 56 56 43.456 56 28C56 12.544 43.456 0 28 0ZM28.0022 8.4C32.6502 8.4 36.4022 12.152 36.4022 16.8C36.4022 21.448 32.6502 25.2 28.0022 25.2C23.3542 25.2 19.6022 21.448 19.6022 16.8C19.6022 12.152 23.3542 8.4 28.0022 8.4ZM28.0022 48.1601C21.0022 48.1601 14.8142 44.5761 11.2022 39.1441C11.2862 33.5721 22.4022 30.5201 28.0022 30.5201C33.5742 30.5201 44.7182 33.5721 44.8022 39.1441C41.1902 44.5761 35.0022 48.1601 28.0022 48.1601Z\" \n fill=\"currentColor\"/>\n </svg>\n </span>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
3985
|
+
}
|
|
3986
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAvatarComponent, decorators: [{
|
|
3987
|
+
type: Component,
|
|
3988
|
+
args: [{ selector: 'matcha-avatar', standalone: false, template: "<span [class]=\"avatarClasses\">\n <!-- Imagem do usu\u00E1rio -->\n <img \n *ngIf=\"hasImage\" \n [src]=\"src\" \n [alt]=\"name || 'Avatar'\"\n class=\"matcha-avatar-image\">\n \n <!-- Iniciais do nome -->\n <span \n *ngIf=\"!hasImage && hasName\" \n class=\"matcha-avatar-initials\">\n {{ initials }}\n </span>\n \n\n <svg \n *ngIf=\"showDefaultIcon\"\n class=\"matcha-avatar-icon\"\n viewBox=\"0 0 56 56\" \n fill=\"none\" \n xmlns=\"http://www.w3.org/2000/svg\">\n <path \n fill-rule=\"evenodd\" \n clip-rule=\"evenodd\" \n d=\"M28 0C12.544 0 0 12.544 0 28C0 43.456 12.544 56 28 56C43.456 56 56 43.456 56 28C56 12.544 43.456 0 28 0ZM28.0022 8.4C32.6502 8.4 36.4022 12.152 36.4022 16.8C36.4022 21.448 32.6502 25.2 28.0022 25.2C23.3542 25.2 19.6022 21.448 19.6022 16.8C19.6022 12.152 23.3542 8.4 28.0022 8.4ZM28.0022 48.1601C21.0022 48.1601 14.8142 44.5761 11.2022 39.1441C11.2862 33.5721 22.4022 30.5201 28.0022 30.5201C33.5742 30.5201 44.7182 33.5721 44.8022 39.1441C41.1902 44.5761 35.0022 48.1601 28.0022 48.1601Z\" \n fill=\"currentColor\"/>\n </svg>\n </span>" }]
|
|
3989
|
+
}], propDecorators: { src: [{
|
|
3990
|
+
type: Input
|
|
3991
|
+
}], name: [{
|
|
3992
|
+
type: Input
|
|
3993
|
+
}], size: [{
|
|
3994
|
+
type: Input
|
|
3995
|
+
}], color: [{
|
|
3996
|
+
type: Input
|
|
3997
|
+
}], disabled: [{
|
|
3998
|
+
type: Input
|
|
3999
|
+
}] } });
|
|
3665
4000
|
|
|
3666
4001
|
class MatchaOptionComponent {
|
|
3667
4002
|
constructor(parent, elRef) {
|
|
@@ -3676,12 +4011,42 @@ class MatchaOptionComponent {
|
|
|
3676
4011
|
onClick() {
|
|
3677
4012
|
if (this.disabled)
|
|
3678
4013
|
return;
|
|
4014
|
+
console.log('MatchaOption: Clique na opção', {
|
|
4015
|
+
value: this.value,
|
|
4016
|
+
parent: this.parent,
|
|
4017
|
+
disabled: this.disabled
|
|
4018
|
+
});
|
|
3679
4019
|
// ✅ Notifica o pai (se houver) - qualquer componente que implemente MatchaOptionParent
|
|
3680
|
-
this.parent
|
|
4020
|
+
if (this.parent) {
|
|
4021
|
+
console.log('MatchaOption: Usando parent.selectOption');
|
|
4022
|
+
this.parent.selectOption(this);
|
|
4023
|
+
}
|
|
4024
|
+
else {
|
|
4025
|
+
console.log('MatchaOption: Usando fallback findParentAndSelect');
|
|
4026
|
+
// Fallback: busca o pai via DOM
|
|
4027
|
+
this.findParentAndSelect();
|
|
4028
|
+
}
|
|
3681
4029
|
// ✅ Emite eventos para uso standalone
|
|
3682
4030
|
this.optionClick.emit(this.value);
|
|
3683
4031
|
this.optionSelect.emit(this);
|
|
3684
4032
|
}
|
|
4033
|
+
findParentAndSelect() {
|
|
4034
|
+
// Busca o elemento pai matcha-autocomplete
|
|
4035
|
+
const autocompleteEl = this.elRef.nativeElement.closest('matcha-autocomplete');
|
|
4036
|
+
if (autocompleteEl) {
|
|
4037
|
+
console.log('MatchaOption: Encontrou autocomplete element', autocompleteEl);
|
|
4038
|
+
// Dispara um evento customizado que o autocomplete pode escutar
|
|
4039
|
+
const event = new CustomEvent('matcha-option-selected', {
|
|
4040
|
+
detail: { option: this, value: this.value },
|
|
4041
|
+
bubbles: true
|
|
4042
|
+
});
|
|
4043
|
+
autocompleteEl.dispatchEvent(event);
|
|
4044
|
+
console.log('MatchaOption: Evento customizado disparado', event);
|
|
4045
|
+
}
|
|
4046
|
+
else {
|
|
4047
|
+
console.log('MatchaOption: Não encontrou elemento matcha-autocomplete');
|
|
4048
|
+
}
|
|
4049
|
+
}
|
|
3685
4050
|
onKeydown(ev) {
|
|
3686
4051
|
if (ev.key === 'Enter' || ev.key === ' ') {
|
|
3687
4052
|
ev.preventDefault();
|
|
@@ -3731,13 +4096,231 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
3731
4096
|
args: ['keydown', ['$event']]
|
|
3732
4097
|
}] } });
|
|
3733
4098
|
|
|
4099
|
+
class MatchaPanelComponent {
|
|
4100
|
+
constructor(elRef, cdr) {
|
|
4101
|
+
this.elRef = elRef;
|
|
4102
|
+
this.cdr = cdr;
|
|
4103
|
+
this.placement = 'auto';
|
|
4104
|
+
this.maxHeight = 280;
|
|
4105
|
+
this.minWidth = 160;
|
|
4106
|
+
this.offset = 4; // Espaçamento entre trigger e painel
|
|
4107
|
+
this.open = false;
|
|
4108
|
+
this.opened = new EventEmitter();
|
|
4109
|
+
this.closed = new EventEmitter();
|
|
4110
|
+
this.panelStyle = {};
|
|
4111
|
+
this.destroy$ = new Subject();
|
|
4112
|
+
}
|
|
4113
|
+
ngOnInit() {
|
|
4114
|
+
// Inicialização básica
|
|
4115
|
+
}
|
|
4116
|
+
ngOnDestroy() {
|
|
4117
|
+
this.destroy$.next();
|
|
4118
|
+
this.destroy$.complete();
|
|
4119
|
+
this.cleanupListeners();
|
|
4120
|
+
}
|
|
4121
|
+
/**
|
|
4122
|
+
* Anexa o painel a um elemento trigger
|
|
4123
|
+
*/
|
|
4124
|
+
attachTo(trigger) {
|
|
4125
|
+
this.triggerElement = trigger;
|
|
4126
|
+
}
|
|
4127
|
+
ngAfterViewInit() {
|
|
4128
|
+
// Aguarda a view ser inicializada antes de calcular posição
|
|
4129
|
+
if (this.triggerElement && this.open) {
|
|
4130
|
+
this.cdr.detectChanges();
|
|
4131
|
+
this.updatePosition();
|
|
4132
|
+
}
|
|
4133
|
+
}
|
|
4134
|
+
/**
|
|
4135
|
+
* Lifecycle hook para detectar mudanças no triggerElement
|
|
4136
|
+
*/
|
|
4137
|
+
ngOnChanges() {
|
|
4138
|
+
// Só logar quando há mudanças significativas
|
|
4139
|
+
if (this.triggerElement && this.open) {
|
|
4140
|
+
console.log('MatchaPanel: ngOnChanges - painel aberto, atualizando posição');
|
|
4141
|
+
// Usar detectChanges para forçar a detecção de mudanças
|
|
4142
|
+
this.cdr.detectChanges();
|
|
4143
|
+
this.updatePosition();
|
|
4144
|
+
}
|
|
4145
|
+
}
|
|
4146
|
+
/**
|
|
4147
|
+
* Abre o painel
|
|
4148
|
+
*/
|
|
4149
|
+
openPanel() {
|
|
4150
|
+
if (!this.triggerElement) {
|
|
4151
|
+
console.log('MatchaPanel: triggerElement não encontrado');
|
|
4152
|
+
return;
|
|
4153
|
+
}
|
|
4154
|
+
// Força a detecção de mudanças antes de atualizar a posição
|
|
4155
|
+
this.cdr.detectChanges();
|
|
4156
|
+
this.updatePosition();
|
|
4157
|
+
this.setupListeners();
|
|
4158
|
+
this.opened.emit();
|
|
4159
|
+
}
|
|
4160
|
+
/**
|
|
4161
|
+
* Fecha o painel
|
|
4162
|
+
*/
|
|
4163
|
+
closePanel() {
|
|
4164
|
+
console.log('MatchaPanel: Fechando painel', {
|
|
4165
|
+
open: this.open,
|
|
4166
|
+
triggerElement: this.triggerElement,
|
|
4167
|
+
stackTrace: new Error().stack
|
|
4168
|
+
});
|
|
4169
|
+
this.cleanupListeners();
|
|
4170
|
+
this.closed.emit();
|
|
4171
|
+
}
|
|
4172
|
+
/**
|
|
4173
|
+
* Alterna o estado do painel
|
|
4174
|
+
*/
|
|
4175
|
+
togglePanel() {
|
|
4176
|
+
this.open ? this.closePanel() : this.openPanel();
|
|
4177
|
+
}
|
|
4178
|
+
/**
|
|
4179
|
+
* Atualiza a posição do painel (simplificado para absolute)
|
|
4180
|
+
*/
|
|
4181
|
+
updatePosition() {
|
|
4182
|
+
if (!this.triggerElement) {
|
|
4183
|
+
console.log('MatchaPanel: updatePosition - triggerElement não encontrado');
|
|
4184
|
+
return;
|
|
4185
|
+
}
|
|
4186
|
+
const position = this.calculatePosition();
|
|
4187
|
+
this.panelStyle = {
|
|
4188
|
+
top: `${position.top}px`,
|
|
4189
|
+
left: `${position.left}px`,
|
|
4190
|
+
minWidth: `${position.width}px`,
|
|
4191
|
+
maxHeight: `${position.maxHeight || this.maxHeight}px`,
|
|
4192
|
+
zIndex: 1003
|
|
4193
|
+
};
|
|
4194
|
+
console.log('MatchaPanel: Posição calculada (absolute)', {
|
|
4195
|
+
position,
|
|
4196
|
+
panelStyle: this.panelStyle
|
|
4197
|
+
});
|
|
4198
|
+
}
|
|
4199
|
+
/**
|
|
4200
|
+
* Calcula a posição ideal do painel (simplificado para absolute)
|
|
4201
|
+
*/
|
|
4202
|
+
calculatePosition() {
|
|
4203
|
+
if (!this.triggerElement) {
|
|
4204
|
+
return { top: 0, left: 0, width: this.minWidth };
|
|
4205
|
+
}
|
|
4206
|
+
const rect = this.triggerElement.getBoundingClientRect();
|
|
4207
|
+
const containerRect = this.triggerElement.offsetParent?.getBoundingClientRect() || { top: 0, left: 0 };
|
|
4208
|
+
let top;
|
|
4209
|
+
let left;
|
|
4210
|
+
let width = Math.max(rect.width, this.minWidth);
|
|
4211
|
+
let maxHeight = this.maxHeight;
|
|
4212
|
+
// Calcular posição horizontal (relativa ao container)
|
|
4213
|
+
left = rect.left - containerRect.left;
|
|
4214
|
+
// Calcular posição vertical (relativa ao container)
|
|
4215
|
+
if (this.placement === 'top') {
|
|
4216
|
+
// Posicionar acima
|
|
4217
|
+
top = rect.top - containerRect.top - this.maxHeight - this.offset;
|
|
4218
|
+
}
|
|
4219
|
+
else {
|
|
4220
|
+
// Posicionar abaixo (padrão)
|
|
4221
|
+
top = rect.bottom - containerRect.top + this.offset;
|
|
4222
|
+
}
|
|
4223
|
+
return { top, left, width, maxHeight };
|
|
4224
|
+
}
|
|
4225
|
+
/**
|
|
4226
|
+
* Configura listeners para scroll e resize
|
|
4227
|
+
*/
|
|
4228
|
+
setupListeners() {
|
|
4229
|
+
// Com position absolute, não precisamos de listeners de scroll/resize
|
|
4230
|
+
console.log('MatchaPanel: setupListeners - position absolute, sem listeners necessários');
|
|
4231
|
+
}
|
|
4232
|
+
/**
|
|
4233
|
+
* Remove listeners
|
|
4234
|
+
*/
|
|
4235
|
+
cleanupListeners() {
|
|
4236
|
+
if (this.scrollListener) {
|
|
4237
|
+
window.removeEventListener('scroll', this.scrollListener);
|
|
4238
|
+
this.scrollListener = undefined;
|
|
4239
|
+
}
|
|
4240
|
+
if (this.resizeListener) {
|
|
4241
|
+
window.removeEventListener('resize', this.resizeListener);
|
|
4242
|
+
this.resizeListener = undefined;
|
|
4243
|
+
}
|
|
4244
|
+
}
|
|
4245
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaPanelComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4246
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaPanelComponent, isStandalone: false, selector: "matcha-panel", inputs: { placement: "placement", maxHeight: "maxHeight", minWidth: "minWidth", offset: "offset", triggerElement: "triggerElement", open: "open" }, outputs: { opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panel"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
4247
|
+
<div class="matcha-panel-container" style="position: relative;">
|
|
4248
|
+
<ng-container *ngIf="open">
|
|
4249
|
+
<!-- Painel -->
|
|
4250
|
+
<div
|
|
4251
|
+
#panel
|
|
4252
|
+
class="matcha-panel"
|
|
4253
|
+
[class.matcha-panel-top]="placement === 'top'"
|
|
4254
|
+
[class.matcha-panel-bottom]="placement === 'bottom'"
|
|
4255
|
+
[ngStyle]="panelStyle"
|
|
4256
|
+
role="listbox"
|
|
4257
|
+
[attr.aria-expanded]="open"
|
|
4258
|
+
[attr.aria-hidden]="!open">
|
|
4259
|
+
<ng-content></ng-content>
|
|
4260
|
+
</div>
|
|
4261
|
+
</ng-container>
|
|
4262
|
+
</div>
|
|
4263
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
4264
|
+
}
|
|
4265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaPanelComponent, decorators: [{
|
|
4266
|
+
type: Component,
|
|
4267
|
+
args: [{
|
|
4268
|
+
selector: 'matcha-panel',
|
|
4269
|
+
template: `
|
|
4270
|
+
<div class="matcha-panel-container" style="position: relative;">
|
|
4271
|
+
<ng-container *ngIf="open">
|
|
4272
|
+
<!-- Painel -->
|
|
4273
|
+
<div
|
|
4274
|
+
#panel
|
|
4275
|
+
class="matcha-panel"
|
|
4276
|
+
[class.matcha-panel-top]="placement === 'top'"
|
|
4277
|
+
[class.matcha-panel-bottom]="placement === 'bottom'"
|
|
4278
|
+
[ngStyle]="panelStyle"
|
|
4279
|
+
role="listbox"
|
|
4280
|
+
[attr.aria-expanded]="open"
|
|
4281
|
+
[attr.aria-hidden]="!open">
|
|
4282
|
+
<ng-content></ng-content>
|
|
4283
|
+
</div>
|
|
4284
|
+
</ng-container>
|
|
4285
|
+
</div>
|
|
4286
|
+
`,
|
|
4287
|
+
standalone: false
|
|
4288
|
+
}]
|
|
4289
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { placement: [{
|
|
4290
|
+
type: Input
|
|
4291
|
+
}], maxHeight: [{
|
|
4292
|
+
type: Input
|
|
4293
|
+
}], minWidth: [{
|
|
4294
|
+
type: Input
|
|
4295
|
+
}], offset: [{
|
|
4296
|
+
type: Input
|
|
4297
|
+
}], triggerElement: [{
|
|
4298
|
+
type: Input
|
|
4299
|
+
}], open: [{
|
|
4300
|
+
type: Input
|
|
4301
|
+
}], opened: [{
|
|
4302
|
+
type: Output
|
|
4303
|
+
}], closed: [{
|
|
4304
|
+
type: Output
|
|
4305
|
+
}], panelRef: [{
|
|
4306
|
+
type: ViewChild,
|
|
4307
|
+
args: ['panel', { static: false }]
|
|
4308
|
+
}] } });
|
|
4309
|
+
|
|
3734
4310
|
class MatchaAutocompleteComponent {
|
|
3735
4311
|
constructor(elRef, renderer, cdr) {
|
|
3736
4312
|
this.elRef = elRef;
|
|
3737
4313
|
this.renderer = renderer;
|
|
3738
4314
|
this.cdr = cdr;
|
|
4315
|
+
// Armazenar o valor selecionado independente da QueryList
|
|
4316
|
+
this.selectedValue = undefined;
|
|
4317
|
+
// Configurações do painel
|
|
4318
|
+
this.placement = 'auto';
|
|
4319
|
+
this.maxHeight = 280;
|
|
4320
|
+
this.minWidth = 160;
|
|
4321
|
+
this.opened = new EventEmitter();
|
|
4322
|
+
this.closed = new EventEmitter();
|
|
3739
4323
|
this.open = false;
|
|
3740
|
-
this.panelStyle = {};
|
|
3741
4324
|
this.activeIndex = -1;
|
|
3742
4325
|
}
|
|
3743
4326
|
ngAfterContentInit() {
|
|
@@ -3749,37 +4332,50 @@ class MatchaAutocompleteComponent {
|
|
|
3749
4332
|
}
|
|
3750
4333
|
});
|
|
3751
4334
|
}
|
|
4335
|
+
ngAfterViewInit() {
|
|
4336
|
+
// Aguarda a view ser inicializada
|
|
4337
|
+
this.cdr.detectChanges();
|
|
4338
|
+
// Escuta eventos customizados das opções
|
|
4339
|
+
this.elRef.nativeElement.addEventListener('matcha-option-selected', (event) => {
|
|
4340
|
+
console.log('MatchaAutocomplete: Evento matcha-option-selected recebido', event.detail);
|
|
4341
|
+
const { option, value } = event.detail;
|
|
4342
|
+
this.selectOption(option);
|
|
4343
|
+
});
|
|
4344
|
+
}
|
|
3752
4345
|
attachTo(input) {
|
|
3753
4346
|
this.triggerElement = input;
|
|
3754
4347
|
}
|
|
3755
4348
|
openPanel() {
|
|
3756
|
-
if (!this.triggerElement)
|
|
4349
|
+
if (!this.triggerElement) {
|
|
4350
|
+
console.log('MatchaAutocomplete: triggerElement não encontrado');
|
|
3757
4351
|
return;
|
|
4352
|
+
}
|
|
4353
|
+
console.log('MatchaAutocomplete: Abrindo painel', {
|
|
4354
|
+
triggerElement: this.triggerElement,
|
|
4355
|
+
panel: this.panel,
|
|
4356
|
+
open: this.open
|
|
4357
|
+
});
|
|
3758
4358
|
this.open = true;
|
|
3759
|
-
this.
|
|
4359
|
+
this.cdr.detectChanges(); // Força detecção de mudanças
|
|
4360
|
+
this.panel.attachTo(this.triggerElement);
|
|
4361
|
+
this.panel.openPanel();
|
|
3760
4362
|
this.resetActive();
|
|
4363
|
+
this.opened.emit();
|
|
3761
4364
|
}
|
|
3762
4365
|
closePanel() {
|
|
4366
|
+
console.log('MatchaAutocomplete: Fechando painel', {
|
|
4367
|
+
open: this.open,
|
|
4368
|
+
stackTrace: new Error().stack
|
|
4369
|
+
});
|
|
3763
4370
|
this.open = false;
|
|
3764
4371
|
this.activeIndex = -1;
|
|
3765
4372
|
this.updateSelectedStates();
|
|
4373
|
+
this.panel.closePanel();
|
|
4374
|
+
this.closed.emit();
|
|
3766
4375
|
}
|
|
3767
4376
|
togglePanel() {
|
|
3768
4377
|
this.open ? this.closePanel() : this.openPanel();
|
|
3769
4378
|
}
|
|
3770
|
-
setPanelPosition() {
|
|
3771
|
-
if (!this.triggerElement)
|
|
3772
|
-
return;
|
|
3773
|
-
const rect = this.triggerElement.getBoundingClientRect();
|
|
3774
|
-
const top = rect.bottom + window.scrollY;
|
|
3775
|
-
const left = rect.left + window.scrollX;
|
|
3776
|
-
this.panelStyle = {
|
|
3777
|
-
position: 'absolute',
|
|
3778
|
-
top: `${top}px`,
|
|
3779
|
-
left: `${left}px`,
|
|
3780
|
-
minWidth: `${rect.width}px`
|
|
3781
|
-
};
|
|
3782
|
-
}
|
|
3783
4379
|
resetActive() {
|
|
3784
4380
|
this.activeIndex = -1;
|
|
3785
4381
|
this.updateSelectedStates();
|
|
@@ -3823,32 +4419,66 @@ class MatchaAutocompleteComponent {
|
|
|
3823
4419
|
}
|
|
3824
4420
|
// chamado por matcha-option quando clicado
|
|
3825
4421
|
selectOption(option) {
|
|
3826
|
-
|
|
4422
|
+
console.log('MatchaAutocomplete: Opção selecionada', {
|
|
4423
|
+
option,
|
|
4424
|
+
value: option.value,
|
|
4425
|
+
selected: option.selected,
|
|
4426
|
+
optionsLength: this.options.length,
|
|
4427
|
+
allOptions: this.options.toArray()
|
|
4428
|
+
});
|
|
4429
|
+
// Armazenar o valor selecionado
|
|
4430
|
+
this.selectedValue = option.value;
|
|
4431
|
+
// Marcar a opção como selecionada diretamente
|
|
4432
|
+
option.selected = true;
|
|
4433
|
+
// Marcar todas as outras como não selecionadas
|
|
4434
|
+
this.options.forEach(o => {
|
|
4435
|
+
if (o !== option) {
|
|
4436
|
+
o.selected = false;
|
|
4437
|
+
}
|
|
4438
|
+
});
|
|
4439
|
+
console.log('MatchaAutocomplete: Após marcar seleção', {
|
|
4440
|
+
selectedOption: option,
|
|
4441
|
+
selected: option.selected,
|
|
4442
|
+
selectedValue: this.selectedValue,
|
|
4443
|
+
allOptions: this.options.toArray().map(o => ({ value: o.value, selected: o.selected }))
|
|
4444
|
+
});
|
|
3827
4445
|
// Fechamos painel automaticamente
|
|
4446
|
+
console.log('MatchaAutocomplete: Fechando painel após seleção');
|
|
3828
4447
|
this.closePanel();
|
|
3829
4448
|
// indireto: a directive pode ler o value via getSelectedValue()
|
|
3830
4449
|
}
|
|
3831
4450
|
getSelectedValue() {
|
|
3832
|
-
|
|
3833
|
-
|
|
4451
|
+
// Usar o valor armazenado se disponível, senão buscar na QueryList
|
|
4452
|
+
const value = this.selectedValue !== undefined ? this.selectedValue : this.options.find(o => o.selected)?.value;
|
|
4453
|
+
console.log('MatchaAutocomplete: getSelectedValue chamado', {
|
|
4454
|
+
selectedValue: this.selectedValue,
|
|
4455
|
+
value,
|
|
4456
|
+
allOptions: this.options.toArray().map(o => ({ value: o.value, selected: o.selected }))
|
|
4457
|
+
});
|
|
4458
|
+
return value;
|
|
3834
4459
|
}
|
|
3835
4460
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3836
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaAutocompleteComponent, isStandalone: false, selector: "matcha-autocomplete", queries: [{ propertyName: "options", predicate: MatchaOptionComponent, descendants: true }], ngImport: i0, template:
|
|
3837
|
-
<div class="matcha-autocomplete-panel" *ngIf="open" [ngStyle]="panelStyle" role="listbox">
|
|
3838
|
-
<ng-content></ng-content>
|
|
3839
|
-
</div>
|
|
3840
|
-
`, isInline: true, styles: [":host{position:absolute;z-index:1000;display:block}.matcha-autocomplete-panel{box-shadow:0 4px 10px #0000001f;border-radius:6px;background:#fff;max-height:280px;overflow:auto;min-width:160px;display:flex;flex-direction:column}.matcha-option{padding:8px 12px;cursor:pointer}.matcha-option[aria-selected=true]{background:#00000014}.matcha-option[disabled]{opacity:.5;cursor:default}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4461
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: MatchaAutocompleteComponent, isStandalone: false, selector: "matcha-autocomplete", inputs: { placement: "placement", maxHeight: "maxHeight", minWidth: "minWidth" }, outputs: { opened: "opened", closed: "closed" }, queries: [{ propertyName: "options", predicate: MatchaOptionComponent, descendants: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: MatchaPanelComponent, descendants: true }], ngImport: i0, template: "<matcha-panel\n #panel\n [open]=\"open\"\n [placement]=\"placement\"\n [maxHeight]=\"maxHeight\"\n [minWidth]=\"minWidth\"\n [triggerElement]=\"triggerElement\"\n (opened)=\"opened.emit()\"\n (closed)=\"closed.emit()\">\n <div class=\"matcha-panel-content flex-column\">\n <ng-content></ng-content>\n </div>\n</matcha-panel>\n", dependencies: [{ kind: "component", type: MatchaPanelComponent, selector: "matcha-panel", inputs: ["placement", "maxHeight", "minWidth", "offset", "triggerElement", "open"], outputs: ["opened", "closed"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3841
4462
|
}
|
|
3842
4463
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteComponent, decorators: [{
|
|
3843
4464
|
type: Component,
|
|
3844
|
-
args: [{ selector: 'matcha-autocomplete', template:
|
|
3845
|
-
<div class="matcha-autocomplete-panel" *ngIf="open" [ngStyle]="panelStyle" role="listbox">
|
|
3846
|
-
<ng-content></ng-content>
|
|
3847
|
-
</div>
|
|
3848
|
-
`, encapsulation: ViewEncapsulation.None, standalone: false, styles: [":host{position:absolute;z-index:1000;display:block}.matcha-autocomplete-panel{box-shadow:0 4px 10px #0000001f;border-radius:6px;background:#fff;max-height:280px;overflow:auto;min-width:160px;display:flex;flex-direction:column}.matcha-option{padding:8px 12px;cursor:pointer}.matcha-option[aria-selected=true]{background:#00000014}.matcha-option[disabled]{opacity:.5;cursor:default}\n"] }]
|
|
4465
|
+
args: [{ selector: 'matcha-autocomplete', encapsulation: ViewEncapsulation.None, standalone: false, template: "<matcha-panel\n #panel\n [open]=\"open\"\n [placement]=\"placement\"\n [maxHeight]=\"maxHeight\"\n [minWidth]=\"minWidth\"\n [triggerElement]=\"triggerElement\"\n (opened)=\"opened.emit()\"\n (closed)=\"closed.emit()\">\n <div class=\"matcha-panel-content flex-column\">\n <ng-content></ng-content>\n </div>\n</matcha-panel>\n" }]
|
|
3849
4466
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { options: [{
|
|
3850
4467
|
type: ContentChildren,
|
|
3851
4468
|
args: [MatchaOptionComponent, { descendants: true }]
|
|
4469
|
+
}], panel: [{
|
|
4470
|
+
type: ViewChild,
|
|
4471
|
+
args: [MatchaPanelComponent]
|
|
4472
|
+
}], placement: [{
|
|
4473
|
+
type: Input
|
|
4474
|
+
}], maxHeight: [{
|
|
4475
|
+
type: Input
|
|
4476
|
+
}], minWidth: [{
|
|
4477
|
+
type: Input
|
|
4478
|
+
}], opened: [{
|
|
4479
|
+
type: Output
|
|
4480
|
+
}], closed: [{
|
|
4481
|
+
type: Output
|
|
3852
4482
|
}] } });
|
|
3853
4483
|
|
|
3854
4484
|
class MatchaTooltipDirective {
|
|
@@ -4612,30 +5242,51 @@ class MatchaAutocompleteTriggerDirective {
|
|
|
4612
5242
|
throw new Error('Você precisa passar uma referência para <matcha-autocomplete> ex: [matchaAutocomplete]="auto"');
|
|
4613
5243
|
}
|
|
4614
5244
|
this.panel.attachTo(this.el.nativeElement);
|
|
4615
|
-
// close panel ao clicar fora
|
|
5245
|
+
// close panel ao clicar fora - usando click para evitar conflito com focus
|
|
4616
5246
|
const clickSub = fromEvent(document, 'click').pipe(filter((ev) => {
|
|
4617
5247
|
const target = ev.target;
|
|
4618
|
-
|
|
4619
|
-
|
|
5248
|
+
const isInsideInput = this.el.nativeElement.contains(target) || this.el.nativeElement === target;
|
|
5249
|
+
const isInsidePanel = this.panel?.elRef?.nativeElement?.contains?.(target);
|
|
5250
|
+
console.log('MatchaAutocomplete: Click outside check', {
|
|
5251
|
+
target: target,
|
|
5252
|
+
inputElement: this.el.nativeElement,
|
|
5253
|
+
isInsideInput,
|
|
5254
|
+
isInsidePanel,
|
|
5255
|
+
shouldClose: !isInsideInput && !isInsidePanel
|
|
5256
|
+
});
|
|
5257
|
+
// Não fechar se clicou no input ou painel
|
|
5258
|
+
return !isInsideInput && !isInsidePanel;
|
|
5259
|
+
})).subscribe(() => {
|
|
5260
|
+
console.log('MatchaAutocomplete: Fechando painel por click outside');
|
|
5261
|
+
this.panel.closePanel();
|
|
5262
|
+
});
|
|
4620
5263
|
this.subs.add(clickSub);
|
|
4621
5264
|
}
|
|
4622
5265
|
ngOnDestroy() {
|
|
4623
5266
|
this.subs.unsubscribe();
|
|
4624
5267
|
}
|
|
4625
5268
|
writeValueToInput(value) {
|
|
5269
|
+
console.log('MatchaAutocomplete: writeValueToInput chamado', {
|
|
5270
|
+
value,
|
|
5271
|
+
input: this.el.nativeElement
|
|
5272
|
+
});
|
|
4626
5273
|
const input = this.el.nativeElement;
|
|
4627
5274
|
input.value = value == null ? '' : value;
|
|
4628
5275
|
// dispatch input event para Angular Forms
|
|
4629
5276
|
const ev = new Event('input', { bubbles: true });
|
|
4630
5277
|
input.dispatchEvent(ev);
|
|
5278
|
+
console.log('MatchaAutocomplete: Valor escrito no input', input.value);
|
|
4631
5279
|
}
|
|
4632
|
-
|
|
4633
|
-
//
|
|
5280
|
+
onClick() {
|
|
5281
|
+
// Abrir painel quando clicar no input
|
|
4634
5282
|
this.panel.openPanel();
|
|
4635
5283
|
}
|
|
5284
|
+
onFocus() {
|
|
5285
|
+
// Não abrir automaticamente no focus para evitar conflito com click outside
|
|
5286
|
+
// O painel será aberto apenas quando o usuário clicar ou digitar
|
|
5287
|
+
}
|
|
4636
5288
|
onInput(e) {
|
|
4637
|
-
// se o usuário digitar, apenas reabre
|
|
4638
|
-
this.panel.setPanelPosition();
|
|
5289
|
+
// se o usuário digitar, apenas reabre painel. O filtro de opções geralmente é controlado pelo componente pai
|
|
4639
5290
|
if (!this.panel.open)
|
|
4640
5291
|
this.panel.openPanel();
|
|
4641
5292
|
}
|
|
@@ -4677,14 +5328,16 @@ class MatchaAutocompleteTriggerDirective {
|
|
|
4677
5328
|
if (!this.panel || !this.panel.open) {
|
|
4678
5329
|
// se painel fechado, pode ter sido selecionado; então buscarmos selected value
|
|
4679
5330
|
setTimeout(() => {
|
|
4680
|
-
|
|
4681
|
-
|
|
4682
|
-
|
|
5331
|
+
if (this.panel && typeof this.panel.getSelectedValue === 'function') {
|
|
5332
|
+
const val = this.panel.getSelectedValue();
|
|
5333
|
+
if (val !== undefined)
|
|
5334
|
+
this.writeValueToInput(val);
|
|
5335
|
+
}
|
|
4683
5336
|
}, 10);
|
|
4684
5337
|
}
|
|
4685
5338
|
}
|
|
4686
5339
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteTriggerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4687
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.1", type: MatchaAutocompleteTriggerDirective, isStandalone: false, selector: "[matchaAutocomplete]", inputs: { panel: ["matchaAutocomplete", "panel"] }, host: { listeners: { "focus": "onFocus()", "input": "onInput($event)", "keydown": "onKeydown($event)", "document:click": "onDocClick($event)" } }, ngImport: i0 }); }
|
|
5340
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.1", type: MatchaAutocompleteTriggerDirective, isStandalone: false, selector: "[matchaAutocomplete]", inputs: { panel: ["matchaAutocomplete", "panel"] }, host: { listeners: { "click": "onClick()", "focus": "onFocus()", "input": "onInput($event)", "keydown": "onKeydown($event)", "document:click": "onDocClick($event)" } }, ngImport: i0 }); }
|
|
4688
5341
|
}
|
|
4689
5342
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteTriggerDirective, decorators: [{
|
|
4690
5343
|
type: Directive,
|
|
@@ -4695,6 +5348,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
4695
5348
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { panel: [{
|
|
4696
5349
|
type: Input,
|
|
4697
5350
|
args: ['matchaAutocomplete']
|
|
5351
|
+
}], onClick: [{
|
|
5352
|
+
type: HostListener,
|
|
5353
|
+
args: ['click']
|
|
4698
5354
|
}], onFocus: [{
|
|
4699
5355
|
type: HostListener,
|
|
4700
5356
|
args: ['focus']
|
|
@@ -4729,19 +5385,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
4729
5385
|
}]
|
|
4730
5386
|
}] });
|
|
4731
5387
|
|
|
5388
|
+
class MatchaPanelModule {
|
|
5389
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5390
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: MatchaPanelModule, declarations: [MatchaPanelComponent], imports: [CommonModule], exports: [MatchaPanelComponent] }); }
|
|
5391
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaPanelModule, imports: [CommonModule] }); }
|
|
5392
|
+
}
|
|
5393
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaPanelModule, decorators: [{
|
|
5394
|
+
type: NgModule,
|
|
5395
|
+
args: [{
|
|
5396
|
+
declarations: [
|
|
5397
|
+
MatchaPanelComponent
|
|
5398
|
+
],
|
|
5399
|
+
imports: [
|
|
5400
|
+
CommonModule
|
|
5401
|
+
],
|
|
5402
|
+
exports: [
|
|
5403
|
+
MatchaPanelComponent
|
|
5404
|
+
]
|
|
5405
|
+
}]
|
|
5406
|
+
}] });
|
|
5407
|
+
|
|
4732
5408
|
class MatchaAutocompleteModule {
|
|
4733
5409
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4734
5410
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteModule, declarations: [MatchaAutocompleteComponent,
|
|
4735
5411
|
MatchaAutocompleteTriggerDirective], imports: [CommonModule,
|
|
4736
|
-
MatchaOptionModule
|
|
5412
|
+
MatchaOptionModule,
|
|
5413
|
+
MatchaPanelModule], exports: [MatchaAutocompleteComponent,
|
|
4737
5414
|
MatchaAutocompleteTriggerDirective,
|
|
4738
5415
|
MatchaOptionModule // Re-exporta para conveniência
|
|
4739
5416
|
] }); }
|
|
4740
5417
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteModule, providers: [
|
|
4741
|
-
//
|
|
5418
|
+
// Provider para permitir injeção da interface MatchaOptionParent
|
|
4742
5419
|
{ provide: MATCHA_OPTION_PARENT, useExisting: MatchaAutocompleteComponent }
|
|
4743
5420
|
], imports: [CommonModule,
|
|
4744
|
-
MatchaOptionModule,
|
|
5421
|
+
MatchaOptionModule,
|
|
5422
|
+
MatchaPanelModule, MatchaOptionModule // Re-exporta para conveniência
|
|
4745
5423
|
] }); }
|
|
4746
5424
|
}
|
|
4747
5425
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAutocompleteModule, decorators: [{
|
|
@@ -4753,7 +5431,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
4753
5431
|
],
|
|
4754
5432
|
imports: [
|
|
4755
5433
|
CommonModule,
|
|
4756
|
-
MatchaOptionModule
|
|
5434
|
+
MatchaOptionModule,
|
|
5435
|
+
MatchaPanelModule
|
|
4757
5436
|
],
|
|
4758
5437
|
exports: [
|
|
4759
5438
|
MatchaAutocompleteComponent,
|
|
@@ -4761,7 +5440,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
4761
5440
|
MatchaOptionModule // Re-exporta para conveniência
|
|
4762
5441
|
],
|
|
4763
5442
|
providers: [
|
|
4764
|
-
//
|
|
5443
|
+
// Provider para permitir injeção da interface MatchaOptionParent
|
|
4765
5444
|
{ provide: MATCHA_OPTION_PARENT, useExisting: MatchaAutocompleteComponent }
|
|
4766
5445
|
]
|
|
4767
5446
|
}]
|
|
@@ -4865,41 +5544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
4865
5544
|
args: [{
|
|
4866
5545
|
declarations: [MatchaChipsDirective],
|
|
4867
5546
|
imports: [],
|
|
4868
|
-
exports: [
|
|
4869
|
-
MatchaChipsDirective
|
|
4870
|
-
]
|
|
4871
|
-
}]
|
|
4872
|
-
}] });
|
|
4873
|
-
|
|
4874
|
-
class MatchaDatepickerDirective {
|
|
4875
|
-
constructor(_elementRef, _renderer) {
|
|
4876
|
-
this._elementRef = _elementRef;
|
|
4877
|
-
this._renderer = _renderer;
|
|
4878
|
-
//this._elementRef.nativeElement.style.backgroundColor = 'grey';
|
|
4879
|
-
this._renderer.addClass(this._elementRef.nativeElement, 'matcha-datepicker');
|
|
4880
|
-
}
|
|
4881
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDatepickerDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4882
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.1", type: MatchaDatepickerDirective, isStandalone: false, selector: "[matcha-datepicker]", ngImport: i0 }); }
|
|
4883
|
-
}
|
|
4884
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDatepickerDirective, decorators: [{
|
|
4885
|
-
type: Directive,
|
|
4886
|
-
args: [{
|
|
4887
|
-
selector: '[matcha-datepicker]',
|
|
4888
|
-
standalone: false
|
|
4889
|
-
}]
|
|
4890
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
|
|
4891
|
-
|
|
4892
|
-
class MatchaDatepickerModule {
|
|
4893
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4894
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: MatchaDatepickerModule, declarations: [MatchaDatepickerDirective], exports: [MatchaDatepickerDirective] }); }
|
|
4895
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDatepickerModule }); }
|
|
4896
|
-
}
|
|
4897
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDatepickerModule, decorators: [{
|
|
4898
|
-
type: NgModule,
|
|
4899
|
-
args: [{
|
|
4900
|
-
declarations: [MatchaDatepickerDirective],
|
|
4901
|
-
imports: [],
|
|
4902
|
-
exports: [MatchaDatepickerDirective],
|
|
5547
|
+
exports: [MatchaChipsDirective]
|
|
4903
5548
|
}]
|
|
4904
5549
|
}] });
|
|
4905
5550
|
|
|
@@ -5149,38 +5794,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5149
5794
|
}]
|
|
5150
5795
|
}] });
|
|
5151
5796
|
|
|
5152
|
-
class MatchaSelectDirective {
|
|
5153
|
-
constructor(_elementRef, _renderer) {
|
|
5154
|
-
this._elementRef = _elementRef;
|
|
5155
|
-
this._renderer = _renderer;
|
|
5156
|
-
//this._elementRef.nativeElement.style.backgroundColor = 'grey';
|
|
5157
|
-
this._renderer.addClass(this._elementRef.nativeElement, 'matcha-select');
|
|
5158
|
-
}
|
|
5159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaSelectDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5160
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.1", type: MatchaSelectDirective, isStandalone: false, selector: "[matcha-select]", ngImport: i0 }); }
|
|
5161
|
-
}
|
|
5162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaSelectDirective, decorators: [{
|
|
5163
|
-
type: Directive,
|
|
5164
|
-
args: [{
|
|
5165
|
-
selector: '[matcha-select]',
|
|
5166
|
-
standalone: false
|
|
5167
|
-
}]
|
|
5168
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
|
|
5169
|
-
|
|
5170
|
-
class MatchaSelectModule {
|
|
5171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5172
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: MatchaSelectModule, declarations: [MatchaSelectDirective], imports: [CommonModule], exports: [MatchaSelectDirective] }); }
|
|
5173
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaSelectModule, imports: [CommonModule] }); }
|
|
5174
|
-
}
|
|
5175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaSelectModule, decorators: [{
|
|
5176
|
-
type: NgModule,
|
|
5177
|
-
args: [{
|
|
5178
|
-
declarations: [MatchaSelectDirective],
|
|
5179
|
-
imports: [CommonModule],
|
|
5180
|
-
exports: [MatchaSelectDirective],
|
|
5181
|
-
}]
|
|
5182
|
-
}] });
|
|
5183
|
-
|
|
5184
5797
|
class MatchaSidenavDirective {
|
|
5185
5798
|
constructor(_elementRef, _renderer) {
|
|
5186
5799
|
this._elementRef = _elementRef;
|
|
@@ -5633,10 +6246,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5633
6246
|
}]
|
|
5634
6247
|
}] });
|
|
5635
6248
|
|
|
6249
|
+
class MatchaAvatarModule {
|
|
6250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6251
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: MatchaAvatarModule, declarations: [MatchaAvatarComponent], imports: [CommonModule], exports: [MatchaAvatarComponent] }); }
|
|
6252
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAvatarModule, imports: [CommonModule] }); }
|
|
6253
|
+
}
|
|
6254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaAvatarModule, decorators: [{
|
|
6255
|
+
type: NgModule,
|
|
6256
|
+
args: [{
|
|
6257
|
+
declarations: [MatchaAvatarComponent],
|
|
6258
|
+
imports: [
|
|
6259
|
+
CommonModule
|
|
6260
|
+
],
|
|
6261
|
+
exports: [MatchaAvatarComponent]
|
|
6262
|
+
}]
|
|
6263
|
+
}] });
|
|
6264
|
+
|
|
5636
6265
|
class MatchaDrawerModule {
|
|
5637
6266
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5638
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerModule, declarations: [MatchaDrawerComponent
|
|
5639
|
-
|
|
6267
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerModule, declarations: [MatchaDrawerComponent,
|
|
6268
|
+
MatchaDrawerContainerComponent,
|
|
6269
|
+
MatchaDrawerContentComponent], imports: [CommonModule,
|
|
6270
|
+
MatchaButtonModule], exports: [MatchaDrawerComponent,
|
|
6271
|
+
MatchaDrawerContainerComponent,
|
|
6272
|
+
MatchaDrawerContentComponent] }); }
|
|
5640
6273
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaDrawerModule, imports: [CommonModule,
|
|
5641
6274
|
MatchaButtonModule] }); }
|
|
5642
6275
|
}
|
|
@@ -5644,14 +6277,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5644
6277
|
type: NgModule,
|
|
5645
6278
|
args: [{
|
|
5646
6279
|
declarations: [
|
|
5647
|
-
MatchaDrawerComponent
|
|
6280
|
+
MatchaDrawerComponent,
|
|
6281
|
+
MatchaDrawerContainerComponent,
|
|
6282
|
+
MatchaDrawerContentComponent
|
|
5648
6283
|
],
|
|
5649
6284
|
imports: [
|
|
5650
6285
|
CommonModule,
|
|
5651
6286
|
MatchaButtonModule
|
|
5652
6287
|
],
|
|
5653
6288
|
exports: [
|
|
5654
|
-
MatchaDrawerComponent
|
|
6289
|
+
MatchaDrawerComponent,
|
|
6290
|
+
MatchaDrawerContainerComponent,
|
|
6291
|
+
MatchaDrawerContentComponent
|
|
5655
6292
|
]
|
|
5656
6293
|
}]
|
|
5657
6294
|
}] });
|
|
@@ -5664,6 +6301,7 @@ class MatchaComponentsModule {
|
|
|
5664
6301
|
MatchaAccordionModule,
|
|
5665
6302
|
MatchaAutocompleteModule,
|
|
5666
6303
|
MatchaOptionModule,
|
|
6304
|
+
MatchaPanelModule,
|
|
5667
6305
|
MatchaBadgeModule,
|
|
5668
6306
|
MatchaButtonModule,
|
|
5669
6307
|
MatchaButtonToggleModule,
|
|
@@ -5671,7 +6309,6 @@ class MatchaComponentsModule {
|
|
|
5671
6309
|
MatchaCheckboxModule,
|
|
5672
6310
|
MatchaRadioModule,
|
|
5673
6311
|
MatchaChipsModule,
|
|
5674
|
-
MatchaDatepickerModule,
|
|
5675
6312
|
MatchaDividerModule,
|
|
5676
6313
|
MatchaElevationModule,
|
|
5677
6314
|
MatchaFormFieldModule,
|
|
@@ -5687,7 +6324,6 @@ class MatchaComponentsModule {
|
|
|
5687
6324
|
MatchaPaginatorModule,
|
|
5688
6325
|
MatchaProgressBarModule,
|
|
5689
6326
|
MatchaRippleModule,
|
|
5690
|
-
MatchaSelectModule,
|
|
5691
6327
|
MatchaSidenavModule,
|
|
5692
6328
|
MatchaSlideToggleModule,
|
|
5693
6329
|
MatchaSliderModule,
|
|
@@ -5707,6 +6343,7 @@ class MatchaComponentsModule {
|
|
|
5707
6343
|
MatchaDrawerModule], exports: [MatchaAccordionModule,
|
|
5708
6344
|
MatchaAutocompleteModule,
|
|
5709
6345
|
MatchaOptionModule,
|
|
6346
|
+
MatchaPanelModule,
|
|
5710
6347
|
MatchaBadgeModule,
|
|
5711
6348
|
MatchaButtonModule,
|
|
5712
6349
|
MatchaButtonToggleModule,
|
|
@@ -5714,7 +6351,6 @@ class MatchaComponentsModule {
|
|
|
5714
6351
|
MatchaCheckboxModule,
|
|
5715
6352
|
MatchaRadioModule,
|
|
5716
6353
|
MatchaChipsModule,
|
|
5717
|
-
MatchaDatepickerModule,
|
|
5718
6354
|
MatchaDividerModule,
|
|
5719
6355
|
MatchaElevationModule,
|
|
5720
6356
|
MatchaFormFieldModule,
|
|
@@ -5730,7 +6366,6 @@ class MatchaComponentsModule {
|
|
|
5730
6366
|
MatchaPaginatorModule,
|
|
5731
6367
|
MatchaProgressBarModule,
|
|
5732
6368
|
MatchaRippleModule,
|
|
5733
|
-
MatchaSelectModule,
|
|
5734
6369
|
MatchaSidenavModule,
|
|
5735
6370
|
MatchaSlideToggleModule,
|
|
5736
6371
|
MatchaSliderModule,
|
|
@@ -5747,6 +6382,7 @@ class MatchaComponentsModule {
|
|
|
5747
6382
|
MatchaTimeModule,
|
|
5748
6383
|
MatchaDropListModule,
|
|
5749
6384
|
MatchaPageLayoutModule,
|
|
6385
|
+
MatchaAvatarModule,
|
|
5750
6386
|
MatchaDrawerModule] }); }
|
|
5751
6387
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaComponentsModule, imports: [CommonModule,
|
|
5752
6388
|
FormsModule,
|
|
@@ -5754,6 +6390,7 @@ class MatchaComponentsModule {
|
|
|
5754
6390
|
MatchaAccordionModule,
|
|
5755
6391
|
MatchaAutocompleteModule,
|
|
5756
6392
|
MatchaOptionModule,
|
|
6393
|
+
MatchaPanelModule,
|
|
5757
6394
|
MatchaBadgeModule,
|
|
5758
6395
|
MatchaButtonModule,
|
|
5759
6396
|
MatchaButtonToggleModule,
|
|
@@ -5761,7 +6398,6 @@ class MatchaComponentsModule {
|
|
|
5761
6398
|
MatchaCheckboxModule,
|
|
5762
6399
|
MatchaRadioModule,
|
|
5763
6400
|
MatchaChipsModule,
|
|
5764
|
-
MatchaDatepickerModule,
|
|
5765
6401
|
MatchaDividerModule,
|
|
5766
6402
|
MatchaElevationModule,
|
|
5767
6403
|
MatchaFormFieldModule,
|
|
@@ -5777,7 +6413,6 @@ class MatchaComponentsModule {
|
|
|
5777
6413
|
MatchaPaginatorModule,
|
|
5778
6414
|
MatchaProgressBarModule,
|
|
5779
6415
|
MatchaRippleModule,
|
|
5780
|
-
MatchaSelectModule,
|
|
5781
6416
|
MatchaSidenavModule,
|
|
5782
6417
|
MatchaSlideToggleModule,
|
|
5783
6418
|
MatchaSliderModule,
|
|
@@ -5797,6 +6432,7 @@ class MatchaComponentsModule {
|
|
|
5797
6432
|
MatchaDrawerModule, MatchaAccordionModule,
|
|
5798
6433
|
MatchaAutocompleteModule,
|
|
5799
6434
|
MatchaOptionModule,
|
|
6435
|
+
MatchaPanelModule,
|
|
5800
6436
|
MatchaBadgeModule,
|
|
5801
6437
|
MatchaButtonModule,
|
|
5802
6438
|
MatchaButtonToggleModule,
|
|
@@ -5804,7 +6440,6 @@ class MatchaComponentsModule {
|
|
|
5804
6440
|
MatchaCheckboxModule,
|
|
5805
6441
|
MatchaRadioModule,
|
|
5806
6442
|
MatchaChipsModule,
|
|
5807
|
-
MatchaDatepickerModule,
|
|
5808
6443
|
MatchaDividerModule,
|
|
5809
6444
|
MatchaElevationModule,
|
|
5810
6445
|
MatchaFormFieldModule,
|
|
@@ -5820,7 +6455,6 @@ class MatchaComponentsModule {
|
|
|
5820
6455
|
MatchaPaginatorModule,
|
|
5821
6456
|
MatchaProgressBarModule,
|
|
5822
6457
|
MatchaRippleModule,
|
|
5823
|
-
MatchaSelectModule,
|
|
5824
6458
|
MatchaSidenavModule,
|
|
5825
6459
|
MatchaSlideToggleModule,
|
|
5826
6460
|
MatchaSliderModule,
|
|
@@ -5837,6 +6471,7 @@ class MatchaComponentsModule {
|
|
|
5837
6471
|
MatchaTimeModule,
|
|
5838
6472
|
MatchaDropListModule,
|
|
5839
6473
|
MatchaPageLayoutModule,
|
|
6474
|
+
MatchaAvatarModule,
|
|
5840
6475
|
MatchaDrawerModule] }); }
|
|
5841
6476
|
}
|
|
5842
6477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: MatchaComponentsModule, decorators: [{
|
|
@@ -5850,6 +6485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5850
6485
|
MatchaAccordionModule,
|
|
5851
6486
|
MatchaAutocompleteModule,
|
|
5852
6487
|
MatchaOptionModule,
|
|
6488
|
+
MatchaPanelModule,
|
|
5853
6489
|
MatchaBadgeModule,
|
|
5854
6490
|
MatchaButtonModule,
|
|
5855
6491
|
MatchaButtonToggleModule,
|
|
@@ -5857,7 +6493,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5857
6493
|
MatchaCheckboxModule,
|
|
5858
6494
|
MatchaRadioModule,
|
|
5859
6495
|
MatchaChipsModule,
|
|
5860
|
-
MatchaDatepickerModule,
|
|
5861
6496
|
MatchaDividerModule,
|
|
5862
6497
|
MatchaElevationModule,
|
|
5863
6498
|
MatchaFormFieldModule,
|
|
@@ -5873,7 +6508,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5873
6508
|
MatchaPaginatorModule,
|
|
5874
6509
|
MatchaProgressBarModule,
|
|
5875
6510
|
MatchaRippleModule,
|
|
5876
|
-
MatchaSelectModule,
|
|
5877
6511
|
MatchaSidenavModule,
|
|
5878
6512
|
MatchaSlideToggleModule,
|
|
5879
6513
|
MatchaSliderModule,
|
|
@@ -5895,6 +6529,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5895
6529
|
exports: [MatchaAccordionModule,
|
|
5896
6530
|
MatchaAutocompleteModule,
|
|
5897
6531
|
MatchaOptionModule,
|
|
6532
|
+
MatchaPanelModule,
|
|
5898
6533
|
MatchaBadgeModule,
|
|
5899
6534
|
MatchaButtonModule,
|
|
5900
6535
|
MatchaButtonToggleModule,
|
|
@@ -5902,7 +6537,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5902
6537
|
MatchaCheckboxModule,
|
|
5903
6538
|
MatchaRadioModule,
|
|
5904
6539
|
MatchaChipsModule,
|
|
5905
|
-
MatchaDatepickerModule,
|
|
5906
6540
|
MatchaDividerModule,
|
|
5907
6541
|
MatchaElevationModule,
|
|
5908
6542
|
MatchaFormFieldModule,
|
|
@@ -5918,7 +6552,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5918
6552
|
MatchaPaginatorModule,
|
|
5919
6553
|
MatchaProgressBarModule,
|
|
5920
6554
|
MatchaRippleModule,
|
|
5921
|
-
MatchaSelectModule,
|
|
5922
6555
|
MatchaSidenavModule,
|
|
5923
6556
|
MatchaSlideToggleModule,
|
|
5924
6557
|
MatchaSliderModule,
|
|
@@ -5935,6 +6568,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5935
6568
|
MatchaTimeModule,
|
|
5936
6569
|
MatchaDropListModule,
|
|
5937
6570
|
MatchaPageLayoutModule,
|
|
6571
|
+
MatchaAvatarModule,
|
|
5938
6572
|
MatchaDrawerModule
|
|
5939
6573
|
],
|
|
5940
6574
|
}]
|
|
@@ -5977,18 +6611,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
5977
6611
|
* Public API Surface of matcha-components
|
|
5978
6612
|
*/
|
|
5979
6613
|
// -----------------------------------------------------------
|
|
5980
|
-
//
|
|
6614
|
+
// INTERFACES
|
|
5981
6615
|
// -----------------------------------------------------------
|
|
5982
|
-
// // ATOMIC COMPONENTS
|
|
5983
|
-
// export * from './lib/matcha-button/matcha-button.component';
|
|
5984
|
-
// // BASE COMPONENT
|
|
5985
|
-
// export * from './lib/matcha-title/matcha-title.component';
|
|
5986
|
-
//
|
|
5987
6616
|
// -----------------------------------------------------------
|
|
5988
|
-
//
|
|
6617
|
+
// PIPES
|
|
5989
6618
|
// -----------------------------------------------------------
|
|
5990
6619
|
// -----------------------------------------------------------
|
|
5991
6620
|
// VENDORS
|
|
6621
|
+
// -----------------------------------------------------------
|
|
5992
6622
|
// export * from './lib/matcha-input-phone/lib/ngx-mask-applier.service';
|
|
5993
6623
|
// export * from './lib/matcha-input-phone/lib/ngx-mask.directive';
|
|
5994
6624
|
// export * from './lib/matcha-input-phone/lib/ngx-mask.module';
|
|
@@ -6003,5 +6633,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
6003
6633
|
* Generated bundle index. Do not edit.
|
|
6004
6634
|
*/
|
|
6005
6635
|
|
|
6006
|
-
export { MATCHA_OPTION_PARENT, MatchaAccordionComponent, MatchaAccordionContentComponent, MatchaAccordionHeaderComponent, MatchaAccordionItemComponent, MatchaAccordionModule, MatchaAutocompleteComponent, MatchaAutocompleteModule, MatchaAutocompleteTriggerDirective, MatchaBadgeDirective, MatchaBadgeModule, MatchaButtonComponent, MatchaButtonModule, MatchaButtonToggleComponent, MatchaButtonToggleModule, MatchaCardComponent, MatchaCardModule, MatchaCheckboxComponent, MatchaCheckboxModule, MatchaChipsDirective, MatchaChipsModule, MatchaComponentsModule, MatchaDateComponent, MatchaDateModule,
|
|
6636
|
+
export { MATCHA_OPTION_PARENT, MatchaAccordionComponent, MatchaAccordionContentComponent, MatchaAccordionHeaderComponent, MatchaAccordionItemComponent, MatchaAccordionModule, MatchaAutocompleteComponent, MatchaAutocompleteModule, MatchaAutocompleteTriggerDirective, MatchaAvatarComponent, MatchaAvatarModule, MatchaBadgeDirective, MatchaBadgeModule, MatchaButtonComponent, MatchaButtonModule, MatchaButtonToggleComponent, MatchaButtonToggleModule, MatchaCardComponent, MatchaCardModule, MatchaCheckboxComponent, MatchaCheckboxModule, MatchaChipsDirective, MatchaChipsModule, MatchaComponentsModule, MatchaDateComponent, MatchaDateModule, MatchaDividerComponent, MatchaDividerModule, MatchaDragDirective, MatchaDragHandleDirective, MatchaDrawerComponent, MatchaDrawerContainerComponent, MatchaDrawerContentComponent, MatchaDrawerModule, MatchaDropListComponent, MatchaDropListModule, MatchaElevationDirective, MatchaElevationModule, MatchaErrorComponent, MatchaFormFieldComponent, MatchaFormFieldModule, MatchaGridComponent, MatchaGridModule, MatchaHintTextComponent, MatchaHintTextModule, MatchaIconComponent, MatchaIconModule, MatchaInfiniteScrollComponent, MatchaInfiniteScrollDataComponent, MatchaInfiniteScrollModule, MatchaInputDirective, MatchaInputModule, MatchaLabelComponent, MatchaLazyloadComponent, MatchaLazyloadDataComponent, MatchaLazyloadModule, MatchaMasonryComponent, MatchaMasonryModule, MatchaMenuComponent, MatchaMenuModule, MatchaMenuTriggerForDirective, MatchaModalComponent, MatchaModalContentComponent, MatchaModalFooterComponent, MatchaModalHeaderComponent, MatchaModalModule, MatchaModalOptionsComponent, MatchaModalService, MatchaOptionComponent, MatchaOptionModule, MatchaOverlayService, MatchaPageLayoutComponent, MatchaPageLayoutModule, MatchaPaginatorDirective, MatchaPaginatorModule, MatchaPanelComponent, MatchaPanelModule, MatchaProgressBarDirective, MatchaProgressBarModule, MatchaRadioComponent, MatchaRadioModule, MatchaRippleDirective, MatchaRippleModule, MatchaSidenavDirective, MatchaSidenavModule, MatchaSkeletonComponent, MatchaSkeletonModule, MatchaSlideToggleComponent, MatchaSlideToggleModule, MatchaSliderDirective, MatchaSliderModule, MatchaSnackBarDirective, MatchaSnackBarModule, MatchaSortHeaderDirective, MatchaSortHeaderModule, MatchaSpinComponent, MatchaSpinModule, MatchaSpinnerComponent, MatchaSpinnerModule, MatchaStepperComponent, MatchaStepperContentComponent, MatchaStepperControllerComponent, MatchaStepperModule, MatchaStepperStateService, MatchaTabItemComponent, MatchaTableDirective, MatchaTableModule, MatchaTabsComponent, MatchaTabsModule, MatchaTimeComponent, MatchaTimeModule, MatchaTitleComponent, MatchaTitleModule, MatchaToolbarButtonComponent, MatchaToolbarComponent, MatchaToolbarContentComponent, MatchaToolbarCustomButtonComponent, MatchaToolbarMainButtonComponent, MatchaToolbarModule, MatchaTooltipDirective, MatchaTooltipModule, NextStepDirective, PrevStepDirective, StepComponent, StepContentDirective };
|
|
6007
6637
|
//# sourceMappingURL=matcha-components.mjs.map
|