@sapphire-ion/framework 1.0.33 → 1.0.34
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/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +1 -1
- package/esm2022/lib/components/drawer/drawer.component.mjs +2 -2
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +3 -3
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +22 -6
- package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +16 -1
- package/esm2022/lib/components/main-content/main-content.component.mjs +1 -1
- package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +118 -108
- package/esm2022/lib/components/popover/sion-popover.module.mjs +3 -6
- package/fesm2022/sapphire-ion-framework.mjs +162 -124
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
- package/lib/components/inputs/input-select/input-select.component.d.ts +4 -1
- package/lib/components/inputs/input-select/input.select.configuration.d.ts +19 -0
- package/lib/components/popover/sion-popover/sion-popover.component.d.ts +21 -13
- package/package.json +1 -1
- package/themes/components/popover/sion-popover/sion-popover.component.scss +14 -32
|
@@ -969,6 +969,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
969
969
|
}] });
|
|
970
970
|
|
|
971
971
|
class InputSelectConfiguration {
|
|
972
|
+
static Create(options) {
|
|
973
|
+
const config = new InputSelectConfiguration(options.bindValue, options.bindLabel, options.clearable, options.searcheable, options.loadFrom, options.multiple, options.vFiltros || null, options.disableConditional || null);
|
|
974
|
+
if (options.placeholder) {
|
|
975
|
+
config.placeholder = options.placeholder;
|
|
976
|
+
}
|
|
977
|
+
if (options.noItensFoundText) {
|
|
978
|
+
config.noItensFoundText = options.noItensFoundText;
|
|
979
|
+
}
|
|
980
|
+
if (options.useInfiniteScroll != undefined) {
|
|
981
|
+
config.useInfiniteScroll = options.useInfiniteScroll;
|
|
982
|
+
}
|
|
983
|
+
return config;
|
|
984
|
+
}
|
|
985
|
+
;
|
|
972
986
|
constructor(
|
|
973
987
|
/** Valor que será setado no formControl */
|
|
974
988
|
bindValue = "id",
|
|
@@ -1004,6 +1018,7 @@ class InputSelectConfiguration {
|
|
|
1004
1018
|
placement: "bottom"
|
|
1005
1019
|
};
|
|
1006
1020
|
this.vFiltros = null;
|
|
1021
|
+
this.useInfiniteScroll = false;
|
|
1007
1022
|
this.clearable = clearable;
|
|
1008
1023
|
this.searcheable = searcheable;
|
|
1009
1024
|
this.multiple = multiple;
|
|
@@ -1789,7 +1804,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1789
1804
|
args: [ICarouselItem]
|
|
1790
1805
|
}] } });
|
|
1791
1806
|
|
|
1792
|
-
const lstComponents$
|
|
1807
|
+
const lstComponents$2 = [CarouselComponent, CarouselImageComponent, CarouselItemComponent];
|
|
1793
1808
|
class CarouselModule {
|
|
1794
1809
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1795
1810
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: CarouselModule, declarations: [CarouselComponent, CarouselImageComponent, CarouselItemComponent], imports: [CommonModule,
|
|
@@ -1802,8 +1817,8 @@ class CarouselModule {
|
|
|
1802
1817
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CarouselModule, decorators: [{
|
|
1803
1818
|
type: NgModule,
|
|
1804
1819
|
args: [{
|
|
1805
|
-
declarations: [...lstComponents$
|
|
1806
|
-
exports: [...lstComponents$
|
|
1820
|
+
declarations: [...lstComponents$2],
|
|
1821
|
+
exports: [...lstComponents$2],
|
|
1807
1822
|
imports: [
|
|
1808
1823
|
CommonModule,
|
|
1809
1824
|
IonicModule,
|
|
@@ -2707,130 +2722,143 @@ class SIonPopoverComponent {
|
|
|
2707
2722
|
this.onWillDismiss = new EventEmitter();
|
|
2708
2723
|
this.onDidDismiss = new EventEmitter();
|
|
2709
2724
|
this.anchor = undefined;
|
|
2710
|
-
this.
|
|
2711
|
-
this.isVisibleChange = new EventEmitter();
|
|
2712
|
-
this.lock = false;
|
|
2713
|
-
}
|
|
2714
|
-
async present(event) {
|
|
2715
|
-
if (this.isVisible) {
|
|
2716
|
-
return;
|
|
2717
|
-
}
|
|
2718
|
-
await waitUntil(() => !this.lock);
|
|
2719
|
-
this.lock = true;
|
|
2720
|
-
this.onWillPresent.emit();
|
|
2721
|
-
this.CreatePopoverInBody();
|
|
2722
|
-
await Timeout(0);
|
|
2723
|
-
const refEl = this.anchor ? this.anchor : event.target;
|
|
2724
|
-
const popEl = this.popoverInstance;
|
|
2725
|
-
const arrowEl = this.popoverInstance.querySelector('.popover-arrow');
|
|
2726
|
-
const computePositionRetrun = await this.GetComputePositionReturn(refEl, popEl, arrowEl);
|
|
2727
|
-
Object.assign(this.popoverInstance.style, {
|
|
2728
|
-
left: `${computePositionRetrun.x}px`,
|
|
2729
|
-
top: `${computePositionRetrun.y}px`,
|
|
2730
|
-
width: this.width,
|
|
2731
|
-
height: this.height,
|
|
2732
|
-
position: 'absolute',
|
|
2733
|
-
});
|
|
2734
|
-
this.cleanupAutoUpdate = autoUpdate(refEl, popEl, async () => {
|
|
2735
|
-
const computePositionRetrun = await this.GetComputePositionReturn(refEl, popEl, arrowEl);
|
|
2736
|
-
Object.assign(popEl.style, {
|
|
2737
|
-
left: `${computePositionRetrun.x}px`,
|
|
2738
|
-
top: `${computePositionRetrun.y}px`,
|
|
2739
|
-
});
|
|
2740
|
-
if (computePositionRetrun.middlewareData.arrow) {
|
|
2741
|
-
const { x: arrowX, y: arrowY } = computePositionRetrun.middlewareData.arrow;
|
|
2742
|
-
const position = computePositionRetrun.placement.split('-')[0];
|
|
2743
|
-
const staticSide = staticSides[position];
|
|
2744
|
-
Object.assign(arrowEl.style, {
|
|
2745
|
-
left: arrowX != null ? `${arrowX}px` : '',
|
|
2746
|
-
top: arrowY != null ? `${arrowY}px` : '',
|
|
2747
|
-
right: '',
|
|
2748
|
-
bottom: '',
|
|
2749
|
-
[staticSide]: `-7px`,
|
|
2750
|
-
});
|
|
2751
|
-
arrowEl.style.setProperty(`--rotation`, rotations[position]);
|
|
2752
|
-
}
|
|
2753
|
-
});
|
|
2754
|
-
await Timeout(50);
|
|
2755
|
-
this.isVisible = true;
|
|
2756
|
-
this.popoverInstance.style.setProperty('display', 'block');
|
|
2757
|
-
this.isVisibleChange.emit(this.isVisible);
|
|
2758
|
-
await Timeout(200);
|
|
2759
|
-
this.onDidPresent.emit();
|
|
2760
|
-
this.lock = false;
|
|
2761
|
-
}
|
|
2762
|
-
async GetComputePositionReturn(refEl, popEl, arrowEl) {
|
|
2763
|
-
return await computePosition(refEl, popEl, {
|
|
2764
|
-
placement: this.placement,
|
|
2765
|
-
middleware: [
|
|
2766
|
-
offset(10),
|
|
2767
|
-
this.flip ? flip({ crossAxis: false }) : undefined,
|
|
2768
|
-
shift({ limiter: limitShift(), padding: 5 }),
|
|
2769
|
-
this.arrow ? arrow({ element: arrowEl, padding: 10 }) : undefined,
|
|
2770
|
-
].filter(p => p),
|
|
2771
|
-
});
|
|
2772
|
-
}
|
|
2773
|
-
CreatePopoverInBody() {
|
|
2774
|
-
// Create a container for the template
|
|
2775
|
-
const embeddedView = this.popoverTemplate.createEmbeddedView({});
|
|
2776
|
-
this.viewContainerRef.insert(embeddedView);
|
|
2777
|
-
// Get the popover element and append to body
|
|
2778
|
-
this.popoverInstance = embeddedView.rootNodes[0];
|
|
2779
|
-
document.body.appendChild(this.popoverInstance);
|
|
2780
|
-
this.popoverInstance.style.setProperty('display', 'none');
|
|
2781
|
-
}
|
|
2782
|
-
onClick(event) {
|
|
2783
|
-
if (!this.popoverInstance) {
|
|
2784
|
-
return;
|
|
2785
|
-
}
|
|
2786
|
-
if (!this.popoverInstance.contains(event.target) &&
|
|
2787
|
-
!this.anchor.contains(event.target)) {
|
|
2788
|
-
this.dismiss();
|
|
2789
|
-
}
|
|
2725
|
+
this.state = POPOVER_STATE.IDLE;
|
|
2790
2726
|
}
|
|
2791
2727
|
ngOnInit() {
|
|
2728
|
+
this.CreateEmbeddedView();
|
|
2729
|
+
this.CreateInstance();
|
|
2792
2730
|
//TODO: Use Renderer2 to add event listeners for better Angular compatibility when updating to Angular 19
|
|
2793
2731
|
this.ngZone.runOutsideAngular(() => {
|
|
2794
2732
|
this.documentClickListener = (event) => {
|
|
2795
2733
|
// Run back inside Angular's zone when handling the event
|
|
2796
2734
|
this.ngZone.run(() => {
|
|
2797
|
-
this.
|
|
2735
|
+
if (!this._instance) {
|
|
2736
|
+
return;
|
|
2737
|
+
}
|
|
2738
|
+
if (!this._instance.contains(event.target) &&
|
|
2739
|
+
!this.anchor.contains(event.target)) {
|
|
2740
|
+
this.dismiss();
|
|
2741
|
+
}
|
|
2798
2742
|
});
|
|
2799
2743
|
};
|
|
2800
2744
|
// Use the native DOM API directly with capture phase
|
|
2801
2745
|
document.addEventListener('click', this.documentClickListener, true);
|
|
2802
2746
|
});
|
|
2803
2747
|
}
|
|
2748
|
+
CreateEmbeddedView() {
|
|
2749
|
+
if (this._embeddedView) {
|
|
2750
|
+
return;
|
|
2751
|
+
}
|
|
2752
|
+
this._embeddedView = this.popoverTemplate.createEmbeddedView({});
|
|
2753
|
+
this.viewRef = this.viewContainerRef.insert(this._embeddedView);
|
|
2754
|
+
}
|
|
2755
|
+
CreateInstance() {
|
|
2756
|
+
this._instance = this._embeddedView.rootNodes[0];
|
|
2757
|
+
document.body.appendChild(this._instance);
|
|
2758
|
+
// const style = {
|
|
2759
|
+
// "solid" : ['bg-light'],
|
|
2760
|
+
// "outline": ['bg-transparent'],
|
|
2761
|
+
// "blur" : ['backdrop-blur-md', 'bg-light/80'],
|
|
2762
|
+
// "clear" : ['!border-0 bg-transparent'],
|
|
2763
|
+
// }[this.fill];
|
|
2764
|
+
// style.forEach(s => {
|
|
2765
|
+
// this._instance.classList.add(s);
|
|
2766
|
+
// this.arrowEl?.classList.add(s);
|
|
2767
|
+
// });
|
|
2768
|
+
}
|
|
2769
|
+
get arrowEl() {
|
|
2770
|
+
return this._instance.querySelector('.popover-arrow');
|
|
2771
|
+
}
|
|
2772
|
+
async present(event) {
|
|
2773
|
+
if (this.state != POPOVER_STATE.IDLE) {
|
|
2774
|
+
return;
|
|
2775
|
+
}
|
|
2776
|
+
this.onWillPresent.emit();
|
|
2777
|
+
this.state = POPOVER_STATE.PRESENTING;
|
|
2778
|
+
const refEl = this.anchor ? this.anchor : event.target;
|
|
2779
|
+
const arrowEl = this.arrowEl;
|
|
2780
|
+
await this.update(refEl, arrowEl);
|
|
2781
|
+
this._instance.classList.add('show');
|
|
2782
|
+
this.cleanupAutoUpdate = autoUpdate(refEl, this._instance, async () => this.update(refEl, arrowEl));
|
|
2783
|
+
this.state = POPOVER_STATE.VISIBLE;
|
|
2784
|
+
this.onDidPresent.emit();
|
|
2785
|
+
}
|
|
2786
|
+
async update(refEl, arrowEl) {
|
|
2787
|
+
const computePositionReturn = await this.GetComputePositionReturn(refEl, this._instance, arrowEl);
|
|
2788
|
+
this.HandleComputePositionReturn(computePositionReturn, arrowEl);
|
|
2789
|
+
}
|
|
2804
2790
|
async dismiss() {
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2791
|
+
if (this.state == POPOVER_STATE.IDLE) {
|
|
2792
|
+
return;
|
|
2793
|
+
}
|
|
2808
2794
|
if (this.cleanupAutoUpdate) {
|
|
2809
2795
|
this.cleanupAutoUpdate();
|
|
2810
2796
|
this.cleanupAutoUpdate = undefined;
|
|
2811
2797
|
}
|
|
2812
|
-
this.
|
|
2813
|
-
this.
|
|
2798
|
+
this.onWillDismiss.emit();
|
|
2799
|
+
this.state = POPOVER_STATE.DISMISSING;
|
|
2800
|
+
this._instance.classList.remove('show');
|
|
2814
2801
|
await Timeout(200);
|
|
2815
|
-
|
|
2816
|
-
document.body.removeChild(this.popoverInstance);
|
|
2817
|
-
this.popoverInstance = undefined;
|
|
2818
|
-
}
|
|
2802
|
+
this.state = POPOVER_STATE.IDLE;
|
|
2819
2803
|
this.onDidDismiss.emit();
|
|
2820
|
-
|
|
2804
|
+
}
|
|
2805
|
+
HandleComputePositionReturn(computePositionReturn, arrowEl) {
|
|
2806
|
+
Object.assign(this._instance.style, {
|
|
2807
|
+
left: `${computePositionReturn.x}px`,
|
|
2808
|
+
top: `${computePositionReturn.y}px`,
|
|
2809
|
+
width: this.width,
|
|
2810
|
+
height: this.height,
|
|
2811
|
+
position: 'absolute',
|
|
2812
|
+
});
|
|
2813
|
+
if (computePositionReturn.middlewareData.arrow) {
|
|
2814
|
+
const { x: arrowX, y: arrowY } = computePositionReturn.middlewareData.arrow;
|
|
2815
|
+
const position = computePositionReturn.placement.split('-')[0];
|
|
2816
|
+
const staticSide = STATIC_SIDES[position];
|
|
2817
|
+
Object.assign(arrowEl.style, {
|
|
2818
|
+
left: arrowX != null ? `${arrowX}px` : '',
|
|
2819
|
+
top: arrowY != null ? `${arrowY}px` : '',
|
|
2820
|
+
right: '',
|
|
2821
|
+
bottom: '',
|
|
2822
|
+
[staticSide]: `-7px`,
|
|
2823
|
+
});
|
|
2824
|
+
arrowEl.style.setProperty(`--rotation`, ROTATIONS[position]);
|
|
2825
|
+
}
|
|
2821
2826
|
}
|
|
2822
2827
|
ngOnDestroy() {
|
|
2828
|
+
if (this._instance) {
|
|
2829
|
+
document.body.removeChild(this._instance);
|
|
2830
|
+
this._instance.remove();
|
|
2831
|
+
this._instance = undefined;
|
|
2832
|
+
}
|
|
2833
|
+
if (this._embeddedView) {
|
|
2834
|
+
this._embeddedView.destroy();
|
|
2835
|
+
this._embeddedView = undefined;
|
|
2836
|
+
}
|
|
2823
2837
|
if (this.documentClickListener) {
|
|
2824
2838
|
document.removeEventListener('click', this.documentClickListener, true);
|
|
2825
2839
|
}
|
|
2826
|
-
this.
|
|
2840
|
+
if (this.viewRef) {
|
|
2841
|
+
this.viewRef.destroy();
|
|
2842
|
+
this.viewRef = undefined;
|
|
2843
|
+
}
|
|
2844
|
+
}
|
|
2845
|
+
async GetComputePositionReturn(refEl, popEl, arrowEl) {
|
|
2846
|
+
return await computePosition(refEl, popEl, {
|
|
2847
|
+
placement: this.placement,
|
|
2848
|
+
middleware: [
|
|
2849
|
+
offset(10),
|
|
2850
|
+
this.flip ? flip({ crossAxis: false }) : undefined,
|
|
2851
|
+
shift({ limiter: limitShift(), padding: 5 }),
|
|
2852
|
+
this.arrow ? arrow({ element: arrowEl, padding: 10 }) : undefined,
|
|
2853
|
+
].filter(p => p),
|
|
2854
|
+
});
|
|
2827
2855
|
}
|
|
2828
2856
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2829
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2857
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SIonPopoverComponent, selector: "sion-popover", inputs: { fill: "fill", arrow: "arrow", flip: "flip", placement: "placement", height: "height", width: "width", anchor: "anchor" }, outputs: { onWillPresent: "onWillPresent", onDidPresent: "onDidPresent", onWillDismiss: "onWillDismiss", onDidDismiss: "onDidDismiss" }, viewQueries: [{ propertyName: "popoverTemplate", first: true, predicate: ["popoverTemplate"], descendants: true, static: true }, { propertyName: "contentContainer", first: true, predicate: ["popoverWrapper"], descendants: true }, { propertyName: "arrowElement", first: true, predicate: ["popoverArrow"], descendants: true }], ngImport: i0, template: "<ng-template #popoverTemplate>\r\n <div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n > \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n\r\n <ng-content #content></ng-content>\r\n </div>\r\n</ng-template>", styles: [".popover-wrapper{z-index:50;border-radius:.75rem;width:max-content;position:absolute;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95)}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
2830
2858
|
}
|
|
2831
2859
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverComponent, decorators: [{
|
|
2832
2860
|
type: Component,
|
|
2833
|
-
args: [{ selector: 'sion-popover', template: "<ng-template #popoverTemplate>\r\n <div #popoverWrapper class=\"popover-wrapper translucid-border\"\r\n
|
|
2861
|
+
args: [{ selector: 'sion-popover', template: "<ng-template #popoverTemplate>\r\n <div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n > \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n\r\n <ng-content #content></ng-content>\r\n </div>\r\n</ng-template>", styles: [".popover-wrapper{z-index:50;border-radius:.75rem;width:max-content;position:absolute;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95)}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none}\n"] }]
|
|
2834
2862
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.NgZone }], propDecorators: { fill: [{
|
|
2835
2863
|
type: Input
|
|
2836
2864
|
}], arrow: [{
|
|
@@ -2862,29 +2890,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2862
2890
|
}], arrowElement: [{
|
|
2863
2891
|
type: ViewChild,
|
|
2864
2892
|
args: ['popoverArrow']
|
|
2865
|
-
}], contentChildren: [{
|
|
2866
|
-
type: ContentChildren,
|
|
2867
|
-
args: ['*', { descendants: true }]
|
|
2868
|
-
}], isVisibleChange: [{
|
|
2869
|
-
type: Output
|
|
2870
2893
|
}] } });
|
|
2871
|
-
|
|
2894
|
+
var POPOVER_STATE;
|
|
2895
|
+
(function (POPOVER_STATE) {
|
|
2896
|
+
POPOVER_STATE[POPOVER_STATE["IDLE"] = 1] = "IDLE";
|
|
2897
|
+
POPOVER_STATE[POPOVER_STATE["PRESENTING"] = 2] = "PRESENTING";
|
|
2898
|
+
POPOVER_STATE[POPOVER_STATE["DISMISSING"] = 3] = "DISMISSING";
|
|
2899
|
+
POPOVER_STATE[POPOVER_STATE["VISIBLE"] = 4] = "VISIBLE";
|
|
2900
|
+
})(POPOVER_STATE || (POPOVER_STATE = {}));
|
|
2901
|
+
const STATIC_SIDES = {
|
|
2872
2902
|
top: "bottom",
|
|
2873
2903
|
right: "left",
|
|
2874
2904
|
bottom: "top",
|
|
2875
2905
|
left: "right"
|
|
2876
2906
|
};
|
|
2877
|
-
const
|
|
2907
|
+
const ROTATIONS = {
|
|
2878
2908
|
bottom: "135deg",
|
|
2879
2909
|
top: "315deg",
|
|
2880
2910
|
left: "225deg",
|
|
2881
2911
|
right: "45deg",
|
|
2882
2912
|
};
|
|
2883
|
-
async function waitUntil(condition, interval = 50) {
|
|
2884
|
-
while (!condition()) {
|
|
2885
|
-
await new Promise(resolve => setTimeout(resolve, interval));
|
|
2886
|
-
}
|
|
2887
|
-
}
|
|
2888
2913
|
|
|
2889
2914
|
class InputDateComponent extends CustomInput {
|
|
2890
2915
|
setFocus(event) {
|
|
@@ -2969,14 +2994,14 @@ class InputDateComponent extends CustomInput {
|
|
|
2969
2994
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
2970
2995
|
...InputProviderFactory.GetProviders(InputDateComponent),
|
|
2971
2996
|
{ provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },
|
|
2972
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "datetime", first: true, predicate: IonDatetime, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"dtValue\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present(modal, popover, $event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == 'time' ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n [anchor]=\"inputContainer\"\r\n #popover \r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: popover }\"></ng-container>\r\n</sion-popover>\r\n\r\n<ion-modal \r\n #modal\r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: modal }\"></ng-container>\r\n </ng-template>\r\n</ion-modal>\r\n\r\n\r\n<ng-template #datetimeTemplate let-parent>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n @if(presentation.includes('date')) {\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"date\" presentation=\"date\" (ionChange)=\"ChangeDate($event.target.value);\"></ion-datetime>\r\n }\r\n @if(presentation == 'date-time') {\r\n <div class=\"flex flex-col items-center justify-center py-12 h-[21rem]\">\r\n <div class=\"h-full border-r-2 border-primary mask-y/30\"></div>\r\n </div>\r\n }\r\n @if(presentation.includes('time')) {\r\n <div class=\"h-[21rem] flex flex-col items-center justify-center gap-2\">\r\n <ion-icon class=\"text-2xl\" name=\"alarm\"></ion-icon>\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"time\" presentation=\"time\" hourCycle=\"h24\" (ionChange)=\"ChangeDate($event.target.value)\"></ion-datetime>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-popover{--height: auto}ion-popover.time{--width: 8rem}ion-popover.date{--width: 21.5rem}ion-popover.datetime{--width: 29rem}ion-modal{--height: auto}ion-modal.time{--width: 8rem}ion-modal.date{--width: 21.5rem}ion-modal.datetime{--width: 29rem}ion-datetime{--wheel-highlight-background: var(--ion-color-primary) !important}ion-datetime.date{width:21.5rem}ion-datetime.time{width:8rem}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showAdjacentDays", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i3.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"
|
|
2997
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "datetime", first: true, predicate: IonDatetime, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"dtValue\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present(modal, popover, $event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == 'time' ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n [anchor]=\"inputContainer\"\r\n #popover \r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: popover }\"></ng-container>\r\n</sion-popover>\r\n\r\n<ion-modal \r\n #modal\r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: modal }\"></ng-container>\r\n </ng-template>\r\n</ion-modal>\r\n\r\n\r\n<ng-template #datetimeTemplate let-parent>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n @if(presentation.includes('date')) {\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"date\" [showAdjacentDays]=\"true\" presentation=\"date\" (ionChange)=\"ChangeDate($event.target.value);\"></ion-datetime>\r\n }\r\n @if(presentation == 'date-time') {\r\n <div class=\"flex flex-col items-center justify-center py-12 h-[21rem]\">\r\n <div class=\"h-full border-r-2 border-primary mask-y/30\"></div>\r\n </div>\r\n }\r\n @if(presentation.includes('time')) {\r\n <div class=\"h-[21rem] flex flex-col items-center justify-center gap-2\">\r\n <ion-icon class=\"text-2xl\" name=\"alarm\"></ion-icon>\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"time\" presentation=\"time\" hourCycle=\"h24\" (ionChange)=\"ChangeDate($event.target.value)\"></ion-datetime>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-popover{--height: auto}ion-popover.time{--width: 8rem}ion-popover.date{--width: 21.5rem}ion-popover.datetime{--width: 29rem}ion-modal{--height: auto}ion-modal.time{--width: 8rem}ion-modal.date{--width: 21.5rem}ion-modal.datetime{--width: 29rem}ion-datetime{--wheel-highlight-background: var(--ion-color-primary) !important}ion-datetime.date{width:21.5rem}ion-datetime.time{width:8rem}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showAdjacentDays", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i3.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
|
|
2973
2998
|
}
|
|
2974
2999
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDateComponent, decorators: [{
|
|
2975
3000
|
type: Component,
|
|
2976
3001
|
args: [{ selector: 'input-date, input-date-time, input-time', providers: [
|
|
2977
3002
|
...InputProviderFactory.GetProviders(InputDateComponent),
|
|
2978
3003
|
{ provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },
|
|
2979
|
-
], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"dtValue\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present(modal, popover, $event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == 'time' ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n [anchor]=\"inputContainer\"\r\n #popover \r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: popover }\"></ng-container>\r\n</sion-popover>\r\n\r\n<ion-modal \r\n #modal\r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: modal }\"></ng-container>\r\n </ng-template>\r\n</ion-modal>\r\n\r\n\r\n<ng-template #datetimeTemplate let-parent>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n @if(presentation.includes('date')) {\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"date\" presentation=\"date\" (ionChange)=\"ChangeDate($event.target.value);\"></ion-datetime>\r\n }\r\n @if(presentation == 'date-time') {\r\n <div class=\"flex flex-col items-center justify-center py-12 h-[21rem]\">\r\n <div class=\"h-full border-r-2 border-primary mask-y/30\"></div>\r\n </div>\r\n }\r\n @if(presentation.includes('time')) {\r\n <div class=\"h-[21rem] flex flex-col items-center justify-center gap-2\">\r\n <ion-icon class=\"text-2xl\" name=\"alarm\"></ion-icon>\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"time\" presentation=\"time\" hourCycle=\"h24\" (ionChange)=\"ChangeDate($event.target.value)\"></ion-datetime>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-popover{--height: auto}ion-popover.time{--width: 8rem}ion-popover.date{--width: 21.5rem}ion-popover.datetime{--width: 29rem}ion-modal{--height: auto}ion-modal.time{--width: 8rem}ion-modal.date{--width: 21.5rem}ion-modal.datetime{--width: 29rem}ion-datetime{--wheel-highlight-background: var(--ion-color-primary) !important}ion-datetime.date{width:21.5rem}ion-datetime.time{width:8rem}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"] }]
|
|
3004
|
+
], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"dtValue\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present(modal, popover, $event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == 'time' ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n [anchor]=\"inputContainer\"\r\n #popover \r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: popover }\"></ng-container>\r\n</sion-popover>\r\n\r\n<ion-modal \r\n #modal\r\n [class.time]=\"presentation == 'time'\" \r\n [class.date]=\"presentation == 'date'\" \r\n [class.datetime]=\"presentation == 'date-time'\"\r\n>\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate; context: { $implicit: modal }\"></ng-container>\r\n </ng-template>\r\n</ion-modal>\r\n\r\n\r\n<ng-template #datetimeTemplate let-parent>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n @if(presentation.includes('date')) {\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"date\" [showAdjacentDays]=\"true\" presentation=\"date\" (ionChange)=\"ChangeDate($event.target.value);\"></ion-datetime>\r\n }\r\n @if(presentation == 'date-time') {\r\n <div class=\"flex flex-col items-center justify-center py-12 h-[21rem]\">\r\n <div class=\"h-full border-r-2 border-primary mask-y/30\"></div>\r\n </div>\r\n }\r\n @if(presentation.includes('time')) {\r\n <div class=\"h-[21rem] flex flex-col items-center justify-center gap-2\">\r\n <ion-icon class=\"text-2xl\" name=\"alarm\"></ion-icon>\r\n <ion-datetime tabindex=\"-1\" [ngModel]=\"value()\" class=\"time\" presentation=\"time\" hourCycle=\"h24\" (ionChange)=\"ChangeDate($event.target.value)\"></ion-datetime>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-popover{--height: auto}ion-popover.time{--width: 8rem}ion-popover.date{--width: 21.5rem}ion-popover.datetime{--width: 29rem}ion-modal{--height: auto}ion-modal.time{--width: 8rem}ion-modal.date{--width: 21.5rem}ion-modal.datetime{--width: 29rem}ion-datetime{--wheel-highlight-background: var(--ion-color-primary) !important}ion-datetime.date{width:21.5rem}ion-datetime.time{width:8rem}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"] }]
|
|
2980
3005
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { input: [{
|
|
2981
3006
|
type: ViewChild,
|
|
2982
3007
|
args: ['input']
|
|
@@ -3275,6 +3300,10 @@ class InputSelectComponent extends CustomInput {
|
|
|
3275
3300
|
this.currentItems = this.lstOptionsItemValue().find(p => p.selected);
|
|
3276
3301
|
}
|
|
3277
3302
|
}
|
|
3303
|
+
AddPage(event) {
|
|
3304
|
+
this.infiniteScrollPage.set(this.infiniteScrollPage() + 1);
|
|
3305
|
+
event.target.complete();
|
|
3306
|
+
}
|
|
3278
3307
|
UpdateLstOptions(search) {
|
|
3279
3308
|
// Update the search
|
|
3280
3309
|
if (search) {
|
|
@@ -3283,6 +3312,9 @@ class InputSelectComponent extends CustomInput {
|
|
|
3283
3312
|
else {
|
|
3284
3313
|
this.lstOptions = this.lstOptionsItemValue();
|
|
3285
3314
|
}
|
|
3315
|
+
if (this.configuration().useInfiniteScroll) {
|
|
3316
|
+
this.lstOptions = this.lstOptions.slice(0, this.infiniteScrollPage() * 25);
|
|
3317
|
+
}
|
|
3286
3318
|
}
|
|
3287
3319
|
UpdateSelected() {
|
|
3288
3320
|
if (this.configuration().multiple) {
|
|
@@ -3320,11 +3352,12 @@ class InputSelectComponent extends CustomInput {
|
|
|
3320
3352
|
item.value = bindValue(p);
|
|
3321
3353
|
item.item = p;
|
|
3322
3354
|
item.selected = this.value() == item.value;
|
|
3323
|
-
item.disabled = p.disabled || false || (this.isServiceAtivo && p.ativo == false);
|
|
3355
|
+
item.disabled = p.disabled || false || (this.isServiceAtivo() && p.ativo == false);
|
|
3324
3356
|
return item;
|
|
3325
3357
|
});
|
|
3326
3358
|
});
|
|
3327
3359
|
this.lstOptions = [];
|
|
3360
|
+
this.infiniteScrollPage = signal(1);
|
|
3328
3361
|
this.isServiceAtivo = computed(() => { return this.configuration().loadFromService instanceof HttpServiceAtivo; });
|
|
3329
3362
|
this.somenteAtivos = signal(true);
|
|
3330
3363
|
this.selectedIndex = undefined;
|
|
@@ -3400,7 +3433,9 @@ class InputSelectComponent extends CustomInput {
|
|
|
3400
3433
|
}
|
|
3401
3434
|
ngAfterViewInit() {
|
|
3402
3435
|
const observable = this.searchBarControl.valueChanges.pipe(takeUntil(this.destroy$), distinctUntilChanged(), debounceTime(200));
|
|
3403
|
-
|
|
3436
|
+
//OnSearchChange
|
|
3437
|
+
this.searchBarSubscription = observable.subscribe(async (value) => {
|
|
3438
|
+
await this.ionContent.scrollToTop();
|
|
3404
3439
|
this.selectedIndex = undefined;
|
|
3405
3440
|
this.searchValue.set(value);
|
|
3406
3441
|
});
|
|
@@ -3484,6 +3519,9 @@ class InputSelectComponent extends CustomInput {
|
|
|
3484
3519
|
if (this.inputSelectLabel?.nativeElement) {
|
|
3485
3520
|
this.inputSelectLabel.nativeElement.focus();
|
|
3486
3521
|
}
|
|
3522
|
+
if (this.configuration().useInfiniteScroll) {
|
|
3523
|
+
this.infiniteScrollPage.set(1);
|
|
3524
|
+
}
|
|
3487
3525
|
}
|
|
3488
3526
|
OnDismiss() {
|
|
3489
3527
|
this.floatingVisible = false;
|
|
@@ -3500,14 +3538,14 @@ class InputSelectComponent extends CustomInput {
|
|
|
3500
3538
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputSelectComponent, selector: "input-select", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange" }, host: { listeners: { "document:keydown": "HandleKeyboardEvent($event)" } }, providers: [
|
|
3501
3539
|
...InputProviderFactory.GetProviders(InputSelectComponent),
|
|
3502
3540
|
{ provide: CustomInput, useExisting: forwardRef(() => InputSelectComponent) },
|
|
3503
|
-
], queries: [{ propertyName: "labelTemplate", first: true, predicate: SIonLabelTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: SIonOptionTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: SIonPlaceholderTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "inputSelectLabel", first: true, predicate: ["inputSelectLabel"], descendants: true }, { propertyName: "inputSearchBar", first: true, predicate: ["inputSearchBar"], descendants: true }, { propertyName: "selectContent", first: true, predicate: ["selectContent"], descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "modal", first: true, predicate: IonModal, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event);\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.manual-focus]=\"floatingVisible\"\r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"loading() || loadingFromLoader || disabled()\"\r\n [class.loading]=\"loading() || loadingFromLoader\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <div class=\"w-full truncate outline-none\" [class.pr-7]=\"!configuration().clearable\" [class.pr-10]=\"configuration().clearable\" #inputSelectLabel tabindex=\"0\">\r\n @if (!configuration().multiple && currentLabel){\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentLabel, item: currentItems.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{currentLabel}} </span>\r\n }\r\n }\r\n @else if (configuration().multiple && isArray(currentItems) && $any(currentItems).length) {\r\n <div class=\"w-full min-h-6 overflow-hidden relative\">\r\n <div class=\"absolute left-0 top-0 overflow-x-auto flex gap-2 size-full mask-x/2\">\r\n @for (item of currentItems; track $index) {\r\n <div class=\"translucid-border rounded-lg flex items-center justify-center gap-2 pl-2\">\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item.label, item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{item.label}} </span>\r\n }\r\n \r\n <div class=\"h-full aspect-square flex items-center justify-center cursor-pointer\" (click)=\"Select(item); $event.stopPropagation()\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"m-0 h-full\" (click)=\"Select(item.value); $event.stopPropagation()\" color=\"medium\" size=\"small\" fill=\"outline\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n @if(placeholderTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"placeholderTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this.configuration().placeholder, placeholder: this.configuration().placeholder }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label !text-medium\"> {{this.configuration().placeholder}} </span>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"absolute bottom-1 flex flex-col items-center justify-center size-7\" [class.right-1]=\"!configuration().clearable\" [class.right-8]=\"configuration().clearable\">\r\n <ion-icon class=\"-mb-0.5\" name=\"chevron-up\"></ion-icon>\r\n <ion-icon class=\"-mt-0.5\" name=\"chevron-down\"></ion-icon>\r\n </div>\r\n @if(configuration().clearable){\r\n <ion-button class=\"absolute right-1 bottom-1\" (click)=\"Clear($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n } \r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading() || loadingFromLoader\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n <div class=\"error-container\" (click)=\"configuration().loader.Refresh()\" [class.active]=\"configuration().loader.error && !loadingFromLoader\">\r\n <ion-icon class=\"text-xl\" color=\"danger\" name=\"refresh-circle\"></ion-icon>\r\n </div>\r\n</div>\r\n\r\n@if(!disabled()){\r\n <ion-modal #modal (ionModalWillPresent)=\"OnPresent()\" (didDismiss)=\"OnDismiss()\" style=\"--width: 90%; --height: 90%;\" [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\" [ngTemplateOutletContext]=\"{ modal: true }\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n\r\n <sion-popover \r\n #popover \r\n [width]=\"inputContainer.offsetWidth + 'px'\" \r\n (onWillPresent)=\"OnPresent()\" \r\n (onDidDismiss)=\"OnDismiss()\" \r\n [anchor]=\"inputContainer\" \r\n [placement]=\"configuration().popoverConfiguration.placement\" \r\n [flip]=\"configuration().popoverConfiguration.flip\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\"></ng-container>\r\n </sion-popover>\r\n}\r\n\r\n<ng-template #selectContentTemplate let-modal=\"modal\">\r\n <div #selectContent class=\"select-content\" [class.!size-full]=\"modal\">\r\n <div class=\"select-search-bar-container\">\r\n <div class=\"select-search-bar-icon-container !border-r-0 border-primary/70 bg-primary/70 shrink-0\">\r\n <ion-icon color=\"dark\" name=\"search\"></ion-icon>\r\n </div>\r\n <input #inputSearchBar tabindex=\"-1\" class=\"select-search-bar border-primary/70 !rounded-l-none\" [formControl]=\"searchBarControl\"/>\r\n </div> \r\n <ul class=\"select-item-list mask-y\" role=\"listbox\" [attr.aria-activedescendant]=\"'sion-is-' + selectedIndex\">\r\n @for (item of lstOptions; track item.value) { \r\n <ng-container \r\n [ngTemplateOutlet]=\"baseOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, index: $index }\">\r\n </ng-container>\r\n }\r\n </ul>\r\n @if(isServiceAtivo()){\r\n <div class=\"w-full text-xs flex items-center justify-end\">\r\n <ion-checkbox [ngModel]=\"somenteAtivos()\" (ngModelChange)=\"somenteAtivos.set($event)\" class=\"scale-75\"> Somente ativos </ion-checkbox>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #baseOptionTemplate let-item=\"item\" let-index=\"index\">\r\n <li [id]=\"'sion-is-' + index\" class=\"select-item\" [class.disabled]=\"item.disabled\" [attr.aria-selected]=\"index == selectedIndex\" (mouseenter)=\"selectedIndex = index\" (click)=\"Select(item)\">\r\n <div class=\"select-item-checkmark-conteiner\">\r\n @if(item.selected) {\r\n <ion-icon class=\"select-item-checkmark\" color=\"primary\" name=\"checkmark\"></ion-icon>\r\n }\r\n </div>\r\n @if (optionTemplate) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"select-item-label\"> {{item.label}} </span>\r\n }\r\n </li>\r\n</ng-template>", styles: [".input-container{cursor:pointer!important}.input-select-label{pointer-events:none;min-height:1.5rem;width:100%;outline:2px solid transparent;outline-offset:2px;color:var(--ion-color-dark)}.select-content{display:flex;height:18rem;width:100%;flex-direction:column;gap:.25rem;overflow:hidden;padding:.25rem}.select-content .select-search-bar-container{display:flex;width:100%;flex-shrink:1}.select-content .select-search-bar-container .select-search-bar-icon-container{display:flex;height:100%;width:1.75rem;align-items:center;justify-content:center;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-width:1px}.select-content .select-search-bar-container .select-search-bar{width:100%;flex-shrink:1;border-radius:.375rem;border-width:1px;background-color:transparent;padding-left:.5rem;padding-right:.5rem;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}@media (orientation: portrait){.select-content .select-search-bar-container .select-search-bar{height:2.5rem}}@media (orientation: landscape){.select-content .select-search-bar-container .select-search-bar{height:1.75rem}}.select-item-list{width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.select-item-list .select-item{color:var(--ion-color-dark);display:flex;width:100%;flex-shrink:0;align-items:center;justify-content:flex-start;border-radius:.375rem;padding-right:.5rem}@media (orientation: portrait){.select-item-list .select-item{min-height:2.5rem}}@media (orientation: landscape){.select-item-list .select-item{min-height:2rem}}.select-item-list .select-item{cursor:pointer}.select-item-list .select-item.disabled{opacity:.5;pointer-events:none}.select-item-list .select-item:hover,.select-item-list .select-item:focus,.select-item-list .select-item[aria-selected=true]{background-color:color-mix(in srgb,var(--ion-color-dark) 20%,transparent)}.select-item-list .select-item .select-item-checkmark-conteiner{display:flex;height:100%;width:1.75rem;flex-shrink:0;align-items:center;justify-content:center}.select-item-list .select-item .select-item-label{width:100%}.error-container{pointer-events:none;position:absolute;bottom:0;left:0;z-index:200;display:flex;width:100%;height:100%;--tw-translate-y: -3rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;opacity:0;will-change:opacity,auto;transition:opacity .2s ease-in-out,transform .2s ease-in-out}.error-container.active{pointer-events:auto!important;--tw-translate-y: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss", "isVisibleChange"] }] }); }
|
|
3541
|
+
], queries: [{ propertyName: "labelTemplate", first: true, predicate: SIonLabelTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: SIonOptionTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: SIonPlaceholderTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "inputSelectLabel", first: true, predicate: ["inputSelectLabel"], descendants: true }, { propertyName: "inputSearchBar", first: true, predicate: ["inputSearchBar"], descendants: true }, { propertyName: "selectContent", first: true, predicate: ["selectContent"], descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "modal", first: true, predicate: IonModal, descendants: true }, { propertyName: "ionContent", first: true, predicate: ["scrollContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event);\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.manual-focus]=\"floatingVisible\"\r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"loading() || loadingFromLoader || disabled()\"\r\n [class.loading]=\"loading() || loadingFromLoader\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <div class=\"w-full truncate outline-none\" [class.pr-7]=\"!configuration().clearable\" [class.pr-10]=\"configuration().clearable\" #inputSelectLabel tabindex=\"0\">\r\n @if (!configuration().multiple && currentLabel){\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentLabel, item: currentItems.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{currentLabel}} </span>\r\n }\r\n }\r\n @else if (configuration().multiple && isArray(currentItems) && $any(currentItems).length) {\r\n <div class=\"w-full min-h-6 overflow-hidden relative\">\r\n <div class=\"absolute left-0 top-0 overflow-x-auto flex gap-2 size-full mask-x/2\">\r\n @for (item of currentItems; track $index) {\r\n <div class=\"translucid-border rounded-lg flex items-center justify-center gap-2 pl-2\">\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item.label, item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{item.label}} </span>\r\n }\r\n \r\n <div class=\"h-full aspect-square flex items-center justify-center cursor-pointer\" (click)=\"Select(item); $event.stopPropagation()\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"m-0 h-full\" (click)=\"Select(item.value); $event.stopPropagation()\" color=\"medium\" size=\"small\" fill=\"outline\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n @if(placeholderTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"placeholderTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this.configuration().placeholder, placeholder: this.configuration().placeholder }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label !text-medium\"> {{this.configuration().placeholder}} </span>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"absolute bottom-1 flex flex-col items-center justify-center size-7\" [class.right-1]=\"!configuration().clearable\" [class.right-8]=\"configuration().clearable\">\r\n <ion-icon class=\"-mb-0.5\" name=\"chevron-up\"></ion-icon>\r\n <ion-icon class=\"-mt-0.5\" name=\"chevron-down\"></ion-icon>\r\n </div>\r\n @if(configuration().clearable){\r\n <ion-button class=\"absolute right-1 bottom-1\" (click)=\"Clear($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n } \r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading() || loadingFromLoader\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n <div class=\"error-container\" (click)=\"configuration().loader.Refresh()\" [class.active]=\"configuration().loader.error && !loadingFromLoader\">\r\n <ion-icon class=\"text-xl\" color=\"danger\" name=\"refresh-circle\"></ion-icon>\r\n </div>\r\n</div>\r\n\r\n@if(!disabled()){\r\n <ion-modal #modal (ionModalWillPresent)=\"OnPresent()\" (didDismiss)=\"OnDismiss()\" style=\"--width: 90%; --height: 90%;\" [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\" [ngTemplateOutletContext]=\"{ modal: true }\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n\r\n <sion-popover \r\n #popover \r\n [width]=\"inputContainer.offsetWidth + 'px'\" \r\n (onWillPresent)=\"OnPresent()\" \r\n (onDidDismiss)=\"OnDismiss()\" \r\n [anchor]=\"inputContainer\" \r\n [placement]=\"configuration().popoverConfiguration.placement\" \r\n [flip]=\"configuration().popoverConfiguration.flip\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\"></ng-container>\r\n </sion-popover>\r\n}\r\n\r\n<ng-template #selectContentTemplate let-modal=\"modal\">\r\n <div #selectContent class=\"select-content\" [class.!size-full]=\"modal\">\r\n <div class=\"select-search-bar-container\">\r\n <div class=\"select-search-bar-icon-container !border-r-0 border-primary/70 bg-primary/70 shrink-0\">\r\n <ion-icon color=\"dark\" name=\"search\"></ion-icon>\r\n </div>\r\n <input #inputSearchBar tabindex=\"-1\" class=\"select-search-bar border-primary/70 !rounded-l-none\" [formControl]=\"searchBarControl\"/>\r\n </div> \r\n <ul class=\"select-item-list mask-y\" role=\"listbox\" [attr.aria-activedescendant]=\"'sion-is-' + selectedIndex\">\r\n <ion-content #scrollContent class=\"size-full\" [scrollY]=\"true\">\r\n @for (item of lstOptions; track item.value) { \r\n <ng-container \r\n [ngTemplateOutlet]=\"baseOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, index: $index }\">\r\n </ng-container>\r\n }\r\n @if(configuration().useInfiniteScroll){\r\n <ion-infinite-scroll threshold=\"10px\" *ngIf=\"lstOptions.length && lstOptions.length != lstOptionsItemValue().length\" (ionInfinite)=\"AddPage($event)\">\r\n <ion-infinite-scroll-content></ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n }\r\n </ion-content>\r\n </ul>\r\n @if(isServiceAtivo()){\r\n <div class=\"w-full text-xs flex items-center justify-end\">\r\n <ion-checkbox [ngModel]=\"somenteAtivos()\" (ngModelChange)=\"somenteAtivos.set($event)\" class=\"scale-75\"> Somente ativos </ion-checkbox>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #baseOptionTemplate let-item=\"item\" let-index=\"index\">\r\n <li [id]=\"'sion-is-' + index\" class=\"select-item\" [class.disabled]=\"item.disabled\" [attr.aria-selected]=\"index == selectedIndex\" (mouseenter)=\"selectedIndex = index\" (click)=\"Select(item)\">\r\n <div class=\"select-item-checkmark-conteiner\">\r\n @if(item.selected) {\r\n <ion-icon class=\"select-item-checkmark\" color=\"primary\" name=\"checkmark\"></ion-icon>\r\n }\r\n </div>\r\n @if (optionTemplate) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"select-item-label\"> {{item.label}} </span>\r\n }\r\n </li>\r\n</ng-template>", styles: [".input-container{cursor:pointer!important}.input-select-label{pointer-events:none;min-height:1.5rem;width:100%;outline:2px solid transparent;outline-offset:2px;color:var(--ion-color-dark)}.select-content{display:flex;height:18rem;width:100%;flex-direction:column;gap:.25rem;overflow:hidden;padding:.25rem}.select-content .select-search-bar-container{display:flex;width:100%;flex-shrink:1}.select-content .select-search-bar-container .select-search-bar-icon-container{display:flex;height:100%;width:1.75rem;align-items:center;justify-content:center;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-width:1px}.select-content .select-search-bar-container .select-search-bar{width:100%;flex-shrink:1;border-radius:.375rem;border-width:1px;background-color:transparent;padding-left:.5rem;padding-right:.5rem;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}@media (orientation: portrait){.select-content .select-search-bar-container .select-search-bar{height:2.5rem}}@media (orientation: landscape){.select-content .select-search-bar-container .select-search-bar{height:1.75rem}}.select-item-list{width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.select-item-list .select-item{color:var(--ion-color-dark);display:flex;width:100%;flex-shrink:0;align-items:center;justify-content:flex-start;border-radius:.375rem;padding-right:.5rem}@media (orientation: portrait){.select-item-list .select-item{min-height:2.5rem}}@media (orientation: landscape){.select-item-list .select-item{min-height:2rem}}.select-item-list .select-item{cursor:pointer}.select-item-list .select-item.disabled{opacity:.5;pointer-events:none}.select-item-list .select-item:hover,.select-item-list .select-item:focus,.select-item-list .select-item[aria-selected=true]{background-color:color-mix(in srgb,var(--ion-color-dark) 20%,transparent)}.select-item-list .select-item .select-item-checkmark-conteiner{display:flex;height:100%;width:1.75rem;flex-shrink:0;align-items:center;justify-content:center}.select-item-list .select-item .select-item-label{width:100%}.error-container{pointer-events:none;position:absolute;bottom:0;left:0;z-index:200;display:flex;width:100%;height:100%;--tw-translate-y: -3rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;opacity:0;will-change:opacity,auto;transition:opacity .2s ease-in-out,transform .2s ease-in-out}.error-container.active{pointer-events:auto!important;--tw-translate-y: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: i3.IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
|
|
3504
3542
|
}
|
|
3505
3543
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputSelectComponent, decorators: [{
|
|
3506
3544
|
type: Component,
|
|
3507
3545
|
args: [{ selector: 'input-select', providers: [
|
|
3508
3546
|
...InputProviderFactory.GetProviders(InputSelectComponent),
|
|
3509
3547
|
{ provide: CustomInput, useExisting: forwardRef(() => InputSelectComponent) },
|
|
3510
|
-
], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event);\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.manual-focus]=\"floatingVisible\"\r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"loading() || loadingFromLoader || disabled()\"\r\n [class.loading]=\"loading() || loadingFromLoader\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <div class=\"w-full truncate outline-none\" [class.pr-7]=\"!configuration().clearable\" [class.pr-10]=\"configuration().clearable\" #inputSelectLabel tabindex=\"0\">\r\n @if (!configuration().multiple && currentLabel){\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentLabel, item: currentItems.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{currentLabel}} </span>\r\n }\r\n }\r\n @else if (configuration().multiple && isArray(currentItems) && $any(currentItems).length) {\r\n <div class=\"w-full min-h-6 overflow-hidden relative\">\r\n <div class=\"absolute left-0 top-0 overflow-x-auto flex gap-2 size-full mask-x/2\">\r\n @for (item of currentItems; track $index) {\r\n <div class=\"translucid-border rounded-lg flex items-center justify-center gap-2 pl-2\">\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item.label, item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{item.label}} </span>\r\n }\r\n \r\n <div class=\"h-full aspect-square flex items-center justify-center cursor-pointer\" (click)=\"Select(item); $event.stopPropagation()\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"m-0 h-full\" (click)=\"Select(item.value); $event.stopPropagation()\" color=\"medium\" size=\"small\" fill=\"outline\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n @if(placeholderTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"placeholderTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this.configuration().placeholder, placeholder: this.configuration().placeholder }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label !text-medium\"> {{this.configuration().placeholder}} </span>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"absolute bottom-1 flex flex-col items-center justify-center size-7\" [class.right-1]=\"!configuration().clearable\" [class.right-8]=\"configuration().clearable\">\r\n <ion-icon class=\"-mb-0.5\" name=\"chevron-up\"></ion-icon>\r\n <ion-icon class=\"-mt-0.5\" name=\"chevron-down\"></ion-icon>\r\n </div>\r\n @if(configuration().clearable){\r\n <ion-button class=\"absolute right-1 bottom-1\" (click)=\"Clear($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n } \r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading() || loadingFromLoader\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n <div class=\"error-container\" (click)=\"configuration().loader.Refresh()\" [class.active]=\"configuration().loader.error && !loadingFromLoader\">\r\n <ion-icon class=\"text-xl\" color=\"danger\" name=\"refresh-circle\"></ion-icon>\r\n </div>\r\n</div>\r\n\r\n@if(!disabled()){\r\n <ion-modal #modal (ionModalWillPresent)=\"OnPresent()\" (didDismiss)=\"OnDismiss()\" style=\"--width: 90%; --height: 90%;\" [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\" [ngTemplateOutletContext]=\"{ modal: true }\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n\r\n <sion-popover \r\n #popover \r\n [width]=\"inputContainer.offsetWidth + 'px'\" \r\n (onWillPresent)=\"OnPresent()\" \r\n (onDidDismiss)=\"OnDismiss()\" \r\n [anchor]=\"inputContainer\" \r\n [placement]=\"configuration().popoverConfiguration.placement\" \r\n [flip]=\"configuration().popoverConfiguration.flip\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\"></ng-container>\r\n </sion-popover>\r\n}\r\n\r\n<ng-template #selectContentTemplate let-modal=\"modal\">\r\n <div #selectContent class=\"select-content\" [class.!size-full]=\"modal\">\r\n <div class=\"select-search-bar-container\">\r\n <div class=\"select-search-bar-icon-container !border-r-0 border-primary/70 bg-primary/70 shrink-0\">\r\n <ion-icon color=\"dark\" name=\"search\"></ion-icon>\r\n </div>\r\n <input #inputSearchBar tabindex=\"-1\" class=\"select-search-bar border-primary/70 !rounded-l-none\" [formControl]=\"searchBarControl\"/>\r\n </div> \r\n <ul class=\"select-item-list mask-y\" role=\"listbox\" [attr.aria-activedescendant]=\"'sion-is-' + selectedIndex\">\r\n @for (item of lstOptions; track item.value) { \r\n <ng-container \r\n [ngTemplateOutlet]=\"baseOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, index: $index }\">\r\n </ng-container>\r\n }\r\n </ul>\r\n @if(isServiceAtivo()){\r\n <div class=\"w-full text-xs flex items-center justify-end\">\r\n <ion-checkbox [ngModel]=\"somenteAtivos()\" (ngModelChange)=\"somenteAtivos.set($event)\" class=\"scale-75\"> Somente ativos </ion-checkbox>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #baseOptionTemplate let-item=\"item\" let-index=\"index\">\r\n <li [id]=\"'sion-is-' + index\" class=\"select-item\" [class.disabled]=\"item.disabled\" [attr.aria-selected]=\"index == selectedIndex\" (mouseenter)=\"selectedIndex = index\" (click)=\"Select(item)\">\r\n <div class=\"select-item-checkmark-conteiner\">\r\n @if(item.selected) {\r\n <ion-icon class=\"select-item-checkmark\" color=\"primary\" name=\"checkmark\"></ion-icon>\r\n }\r\n </div>\r\n @if (optionTemplate) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"select-item-label\"> {{item.label}} </span>\r\n }\r\n </li>\r\n</ng-template>", styles: [".input-container{cursor:pointer!important}.input-select-label{pointer-events:none;min-height:1.5rem;width:100%;outline:2px solid transparent;outline-offset:2px;color:var(--ion-color-dark)}.select-content{display:flex;height:18rem;width:100%;flex-direction:column;gap:.25rem;overflow:hidden;padding:.25rem}.select-content .select-search-bar-container{display:flex;width:100%;flex-shrink:1}.select-content .select-search-bar-container .select-search-bar-icon-container{display:flex;height:100%;width:1.75rem;align-items:center;justify-content:center;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-width:1px}.select-content .select-search-bar-container .select-search-bar{width:100%;flex-shrink:1;border-radius:.375rem;border-width:1px;background-color:transparent;padding-left:.5rem;padding-right:.5rem;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}@media (orientation: portrait){.select-content .select-search-bar-container .select-search-bar{height:2.5rem}}@media (orientation: landscape){.select-content .select-search-bar-container .select-search-bar{height:1.75rem}}.select-item-list{width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.select-item-list .select-item{color:var(--ion-color-dark);display:flex;width:100%;flex-shrink:0;align-items:center;justify-content:flex-start;border-radius:.375rem;padding-right:.5rem}@media (orientation: portrait){.select-item-list .select-item{min-height:2.5rem}}@media (orientation: landscape){.select-item-list .select-item{min-height:2rem}}.select-item-list .select-item{cursor:pointer}.select-item-list .select-item.disabled{opacity:.5;pointer-events:none}.select-item-list .select-item:hover,.select-item-list .select-item:focus,.select-item-list .select-item[aria-selected=true]{background-color:color-mix(in srgb,var(--ion-color-dark) 20%,transparent)}.select-item-list .select-item .select-item-checkmark-conteiner{display:flex;height:100%;width:1.75rem;flex-shrink:0;align-items:center;justify-content:center}.select-item-list .select-item .select-item-label{width:100%}.error-container{pointer-events:none;position:absolute;bottom:0;left:0;z-index:200;display:flex;width:100%;height:100%;--tw-translate-y: -3rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;opacity:0;will-change:opacity,auto;transition:opacity .2s ease-in-out,transform .2s ease-in-out}.error-container.active{pointer-events:auto!important;--tw-translate-y: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"] }]
|
|
3548
|
+
], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event);\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.manual-focus]=\"floatingVisible\"\r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"loading() || loadingFromLoader || disabled()\"\r\n [class.loading]=\"loading() || loadingFromLoader\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <div class=\"w-full truncate outline-none\" [class.pr-7]=\"!configuration().clearable\" [class.pr-10]=\"configuration().clearable\" #inputSelectLabel tabindex=\"0\">\r\n @if (!configuration().multiple && currentLabel){\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentLabel, item: currentItems.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{currentLabel}} </span>\r\n }\r\n }\r\n @else if (configuration().multiple && isArray(currentItems) && $any(currentItems).length) {\r\n <div class=\"w-full min-h-6 overflow-hidden relative\">\r\n <div class=\"absolute left-0 top-0 overflow-x-auto flex gap-2 size-full mask-x/2\">\r\n @for (item of currentItems; track $index) {\r\n <div class=\"translucid-border rounded-lg flex items-center justify-center gap-2 pl-2\">\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item.label, item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{item.label}} </span>\r\n }\r\n \r\n <div class=\"h-full aspect-square flex items-center justify-center cursor-pointer\" (click)=\"Select(item); $event.stopPropagation()\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"m-0 h-full\" (click)=\"Select(item.value); $event.stopPropagation()\" color=\"medium\" size=\"small\" fill=\"outline\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n @if(placeholderTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"placeholderTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this.configuration().placeholder, placeholder: this.configuration().placeholder }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label !text-medium\"> {{this.configuration().placeholder}} </span>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"absolute bottom-1 flex flex-col items-center justify-center size-7\" [class.right-1]=\"!configuration().clearable\" [class.right-8]=\"configuration().clearable\">\r\n <ion-icon class=\"-mb-0.5\" name=\"chevron-up\"></ion-icon>\r\n <ion-icon class=\"-mt-0.5\" name=\"chevron-down\"></ion-icon>\r\n </div>\r\n @if(configuration().clearable){\r\n <ion-button class=\"absolute right-1 bottom-1\" (click)=\"Clear($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n } \r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading() || loadingFromLoader\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n <div class=\"error-container\" (click)=\"configuration().loader.Refresh()\" [class.active]=\"configuration().loader.error && !loadingFromLoader\">\r\n <ion-icon class=\"text-xl\" color=\"danger\" name=\"refresh-circle\"></ion-icon>\r\n </div>\r\n</div>\r\n\r\n@if(!disabled()){\r\n <ion-modal #modal (ionModalWillPresent)=\"OnPresent()\" (didDismiss)=\"OnDismiss()\" style=\"--width: 90%; --height: 90%;\" [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\" [ngTemplateOutletContext]=\"{ modal: true }\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n\r\n <sion-popover \r\n #popover \r\n [width]=\"inputContainer.offsetWidth + 'px'\" \r\n (onWillPresent)=\"OnPresent()\" \r\n (onDidDismiss)=\"OnDismiss()\" \r\n [anchor]=\"inputContainer\" \r\n [placement]=\"configuration().popoverConfiguration.placement\" \r\n [flip]=\"configuration().popoverConfiguration.flip\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\"></ng-container>\r\n </sion-popover>\r\n}\r\n\r\n<ng-template #selectContentTemplate let-modal=\"modal\">\r\n <div #selectContent class=\"select-content\" [class.!size-full]=\"modal\">\r\n <div class=\"select-search-bar-container\">\r\n <div class=\"select-search-bar-icon-container !border-r-0 border-primary/70 bg-primary/70 shrink-0\">\r\n <ion-icon color=\"dark\" name=\"search\"></ion-icon>\r\n </div>\r\n <input #inputSearchBar tabindex=\"-1\" class=\"select-search-bar border-primary/70 !rounded-l-none\" [formControl]=\"searchBarControl\"/>\r\n </div> \r\n <ul class=\"select-item-list mask-y\" role=\"listbox\" [attr.aria-activedescendant]=\"'sion-is-' + selectedIndex\">\r\n <ion-content #scrollContent class=\"size-full\" [scrollY]=\"true\">\r\n @for (item of lstOptions; track item.value) { \r\n <ng-container \r\n [ngTemplateOutlet]=\"baseOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, index: $index }\">\r\n </ng-container>\r\n }\r\n @if(configuration().useInfiniteScroll){\r\n <ion-infinite-scroll threshold=\"10px\" *ngIf=\"lstOptions.length && lstOptions.length != lstOptionsItemValue().length\" (ionInfinite)=\"AddPage($event)\">\r\n <ion-infinite-scroll-content></ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n }\r\n </ion-content>\r\n </ul>\r\n @if(isServiceAtivo()){\r\n <div class=\"w-full text-xs flex items-center justify-end\">\r\n <ion-checkbox [ngModel]=\"somenteAtivos()\" (ngModelChange)=\"somenteAtivos.set($event)\" class=\"scale-75\"> Somente ativos </ion-checkbox>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #baseOptionTemplate let-item=\"item\" let-index=\"index\">\r\n <li [id]=\"'sion-is-' + index\" class=\"select-item\" [class.disabled]=\"item.disabled\" [attr.aria-selected]=\"index == selectedIndex\" (mouseenter)=\"selectedIndex = index\" (click)=\"Select(item)\">\r\n <div class=\"select-item-checkmark-conteiner\">\r\n @if(item.selected) {\r\n <ion-icon class=\"select-item-checkmark\" color=\"primary\" name=\"checkmark\"></ion-icon>\r\n }\r\n </div>\r\n @if (optionTemplate) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"select-item-label\"> {{item.label}} </span>\r\n }\r\n </li>\r\n</ng-template>", styles: [".input-container{cursor:pointer!important}.input-select-label{pointer-events:none;min-height:1.5rem;width:100%;outline:2px solid transparent;outline-offset:2px;color:var(--ion-color-dark)}.select-content{display:flex;height:18rem;width:100%;flex-direction:column;gap:.25rem;overflow:hidden;padding:.25rem}.select-content .select-search-bar-container{display:flex;width:100%;flex-shrink:1}.select-content .select-search-bar-container .select-search-bar-icon-container{display:flex;height:100%;width:1.75rem;align-items:center;justify-content:center;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-width:1px}.select-content .select-search-bar-container .select-search-bar{width:100%;flex-shrink:1;border-radius:.375rem;border-width:1px;background-color:transparent;padding-left:.5rem;padding-right:.5rem;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}@media (orientation: portrait){.select-content .select-search-bar-container .select-search-bar{height:2.5rem}}@media (orientation: landscape){.select-content .select-search-bar-container .select-search-bar{height:1.75rem}}.select-item-list{width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.select-item-list .select-item{color:var(--ion-color-dark);display:flex;width:100%;flex-shrink:0;align-items:center;justify-content:flex-start;border-radius:.375rem;padding-right:.5rem}@media (orientation: portrait){.select-item-list .select-item{min-height:2.5rem}}@media (orientation: landscape){.select-item-list .select-item{min-height:2rem}}.select-item-list .select-item{cursor:pointer}.select-item-list .select-item.disabled{opacity:.5;pointer-events:none}.select-item-list .select-item:hover,.select-item-list .select-item:focus,.select-item-list .select-item[aria-selected=true]{background-color:color-mix(in srgb,var(--ion-color-dark) 20%,transparent)}.select-item-list .select-item .select-item-checkmark-conteiner{display:flex;height:100%;width:1.75rem;flex-shrink:0;align-items:center;justify-content:center}.select-item-list .select-item .select-item-label{width:100%}.error-container{pointer-events:none;position:absolute;bottom:0;left:0;z-index:200;display:flex;width:100%;height:100%;--tw-translate-y: -3rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;opacity:0;will-change:opacity,auto;transition:opacity .2s ease-in-out,transform .2s ease-in-out}.error-container.active{pointer-events:auto!important;--tw-translate-y: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"] }]
|
|
3511
3549
|
}], ctorParameters: () => [], propDecorators: { labelTemplate: [{
|
|
3512
3550
|
type: ContentChild,
|
|
3513
3551
|
args: [SIonLabelTemplateDirective, { read: TemplateRef }]
|
|
@@ -3538,6 +3576,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3538
3576
|
}], modal: [{
|
|
3539
3577
|
type: ViewChild,
|
|
3540
3578
|
args: [IonModal]
|
|
3579
|
+
}], ionContent: [{
|
|
3580
|
+
type: ViewChild,
|
|
3581
|
+
args: ['scrollContent']
|
|
3541
3582
|
}] } });
|
|
3542
3583
|
class ItemValue {
|
|
3543
3584
|
constructor() {
|
|
@@ -3731,7 +3772,7 @@ class ThFilterComponent {
|
|
|
3731
3772
|
return;
|
|
3732
3773
|
}
|
|
3733
3774
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3734
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThFilterComponent, selector: "th-filter", inputs: { field: "field" }, outputs: { changeEmitter: "change" }, ngImport: i0, template: "<div #anchor class=\"h-5 aspect-square flex items-center justify-center cursor-pointer\">\r\n <ion-icon name=\"filter-circle\" (click)=\"popover.present($event)\" class=\"text-xl align-sub size-full\" [color]=\"isFilterActive ? 'secondary' : 'medium' \"></ion-icon>\r\n</div>\r\n\r\n<sion-popover fill=\"solid\" #popover [anchor]=\"anchor\" triggerAction=\"click\">\r\n <div class=\"w-72 flex flex-col gap-2 p-2\" >\r\n @if(!['Select', 'Bool', 'String', 'TextArea'].includes(field.type)){\r\n <ion-label class=\"w-full flex items-center justify-center\"> Filtro - {{field.header}} </ion-label>\r\n }\r\n @switch (field.type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-number>\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n </div>\r\n }\r\n @case ('Decimal') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n </div>\r\n }\r\n @case ('Currency') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-currency>\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n </div>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <div class=\"size-full grid grid-cols-1 gap-2\">\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date>\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n </div>\r\n }\r\n @case ('DateTime') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date-time>\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n </div>\r\n }\r\n }\r\n </div>\r\n <!-- <ion-card class=\"m-0 !border-0 bg-primary/30 w-72\">\r\n <ion-card-header class=\"bg-transparent\">\r\n <ion-card-title class=\"text-center text-sm\">\r\n Filtro - {{field.header}}\r\n </ion-card-title>\r\n </ion-card-header>\r\n <ion-card-content [ngClass]=\"{'!p-0': ['Select', 'Bool', 'String', 'TextArea'].includes(field.type)}\" class=\"!p-2 bg-light rounded-t-2xl\">\r\n @switch (field.type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-number>\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n </div>\r\n }\r\n @case ('Decimal') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n </div>\r\n }\r\n @case ('Currency') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-currency>\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n </div>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <div class=\"size-full grid grid-cols-1 gap-2\">\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date>\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n </div>\r\n }\r\n @case ('DateTime') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date-time>\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n </div>\r\n }\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n</sion-popover>\r\n", styles: [".th-select{border-radius:0!important}.th-select ion-card{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card ion-item{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card div.w-12 ion-button{--border-width: 1px !important;--border-radius: 0rem 0rem 1rem 0rem !important}\n"], dependencies: [{ kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: InputDecimalComponent, selector: "input-decimal, input-number, input-currency, input-percentage", inputs: ["configuration"], outputs: ["configurationChange"] }, { kind: "component", type: InputSelectComponent, selector: "input-select", inputs: ["items", "configuration"], outputs: ["itemsChange"] }, { kind: "component", type: InputStringComponent, selector: "input-string", inputs: ["configuration"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"
|
|
3775
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThFilterComponent, selector: "th-filter", inputs: { field: "field" }, outputs: { changeEmitter: "change" }, ngImport: i0, template: "<div #anchor class=\"h-5 aspect-square flex items-center justify-center cursor-pointer\">\r\n <ion-icon name=\"filter-circle\" (click)=\"popover.present($event)\" class=\"text-xl align-sub size-full\" [color]=\"isFilterActive ? 'secondary' : 'medium' \"></ion-icon>\r\n</div>\r\n\r\n<sion-popover fill=\"solid\" #popover [anchor]=\"anchor\" triggerAction=\"click\">\r\n <div class=\"w-72 flex flex-col gap-2 p-2\" >\r\n @if(!['Select', 'Bool', 'String', 'TextArea'].includes(field.type)){\r\n <ion-label class=\"w-full flex items-center justify-center\"> Filtro - {{field.header}} </ion-label>\r\n }\r\n @switch (field.type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-number>\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n </div>\r\n }\r\n @case ('Decimal') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n </div>\r\n }\r\n @case ('Currency') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-currency>\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n </div>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <div class=\"size-full grid grid-cols-1 gap-2\">\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date>\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n </div>\r\n }\r\n @case ('DateTime') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date-time>\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n </div>\r\n }\r\n }\r\n </div>\r\n <!-- <ion-card class=\"m-0 !border-0 bg-primary/30 w-72\">\r\n <ion-card-header class=\"bg-transparent\">\r\n <ion-card-title class=\"text-center text-sm\">\r\n Filtro - {{field.header}}\r\n </ion-card-title>\r\n </ion-card-header>\r\n <ion-card-content [ngClass]=\"{'!p-0': ['Select', 'Bool', 'String', 'TextArea'].includes(field.type)}\" class=\"!p-2 bg-light rounded-t-2xl\">\r\n @switch (field.type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-number>\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n </div>\r\n }\r\n @case ('Decimal') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n </div>\r\n }\r\n @case ('Currency') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-currency>\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n </div>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <div class=\"size-full grid grid-cols-1 gap-2\">\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date>\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n </div>\r\n }\r\n @case ('DateTime') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date-time>\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n </div>\r\n }\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n</sion-popover>\r\n", styles: [".th-select{border-radius:0!important}.th-select ion-card{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card ion-item{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card div.w-12 ion-button{--border-width: 1px !important;--border-radius: 0rem 0rem 1rem 0rem !important}\n"], dependencies: [{ kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: InputDecimalComponent, selector: "input-decimal, input-number, input-currency, input-percentage", inputs: ["configuration"], outputs: ["configurationChange"] }, { kind: "component", type: InputSelectComponent, selector: "input-select", inputs: ["items", "configuration"], outputs: ["itemsChange"] }, { kind: "component", type: InputStringComponent, selector: "input-string", inputs: ["configuration"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
|
|
3735
3776
|
}
|
|
3736
3777
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThFilterComponent, decorators: [{
|
|
3737
3778
|
type: Component,
|
|
@@ -4709,7 +4750,7 @@ class InputColorComponent extends CustomInput {
|
|
|
4709
4750
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputColorComponent, selector: "input-color", providers: [
|
|
4710
4751
|
...InputProviderFactory.GetProviders(InputColorComponent),
|
|
4711
4752
|
{ provide: CustomInput, useExisting: forwardRef(() => InputColorComponent) },
|
|
4712
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "gradient", first: true, predicate: ["gradient"], descendants: true }, { propertyName: "hueSlider", first: true, predicate: ["hueSlider"], descendants: true }, { propertyName: "alphaSlider", first: true, predicate: ["alphaSlider"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event); Present($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [maskito]=\"HEXMask\"\r\n [ngModel]=\"value()\"\r\n (ngModelChange)=\"SetColorFromHex($event, true, true)\" \r\n [disabled]=\"disabled() || loading()\"\r\n />\r\n <div class=\" absolute bottom-2 right-8 size-5 rounded-sm overflow-hidden\" [style]=\"{ 'background': value() }\"> </div>\r\n\r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"CopyToClipboard(); $event.stopPropagation();\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"clipboard\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <!-- [maxlength]=\"configuration().maxlength\" -->\r\n <!-- [type]=\"configuration().type\" -->\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n #popover \r\n width=\"fit-content\" \r\n [anchor]=\"inputContainer\" \r\n>\r\n <div class=\"size-full p-2 flex gap-1\"> \r\n <div class=\"flex flex-col w-44 shrink-0 gap-1\">\r\n <div id=\"gradientWrapper\" class=\"w-44 h-32 relative\">\r\n <canvas #gradient width=\"176\" height=\"128\" class=\"size-full rounded-sm translucid-border\"></canvas>\r\n <div class=\"color-indicator quick-transition\" [style.left.%]=\"indicatorX\" [style.top.%]=\"indicatorY\"></div>\r\n </div>\r\n\r\n <div id=\"hueWrapper\" class=\"w-full relative\">\r\n <canvas #hueSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"hslColor.h / 3.6\"></div>\r\n </div>\r\n\r\n <div id=\"alphaWrapper\" class=\"w-full relative\">\r\n <canvas #alphaSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"alpha\"></div>\r\n </div>\r\n\r\n <div class=\"w-full flex shrink-0\">\r\n <div class=\"w-full grid grid-cols-5 gap-1\">\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#000000FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#3880FFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#2DD36FFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFC409FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#EB445AFF' }\"></ng-container>\r\n \r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFFFFFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#59168bFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#C6005CFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FB2C36FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#314158FF' }\"></ng-container>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n</sion-popover>\r\n\r\n<ng-template #templateColor let-color>\r\n <div class=\"size-8 rounded translucid-border cursor-pointer\" (click)=\"SetColorFromHex(color, true, true)\" [style.background]=\"color\"></div>\r\n</ng-template>", styles: ["input:focus{outline:solid 1px color-mix(in srgb,var(--ion-color-primary) 30%,transparent)}input{height:1.25rem;border-radius:.25rem;outline:1px solid transparent;transition-property:outline;transition-duration:.2s}.color-indicator{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.indicator{position:absolute;top:50%;width:6px;height:24px;background-color:#fff;border-radius:3px;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.quick-transition{transition:all 75ms}ion-popover{--width: fit-content;--height: fit-content}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss", "isVisibleChange"] }] }); }
|
|
4753
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "gradient", first: true, predicate: ["gradient"], descendants: true }, { propertyName: "hueSlider", first: true, predicate: ["hueSlider"], descendants: true }, { propertyName: "alphaSlider", first: true, predicate: ["alphaSlider"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event); Present($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [maskito]=\"HEXMask\"\r\n [ngModel]=\"value()\"\r\n (ngModelChange)=\"SetColorFromHex($event, true, true)\" \r\n [disabled]=\"disabled() || loading()\"\r\n />\r\n <div class=\" absolute bottom-2 right-8 size-5 rounded-sm overflow-hidden\" [style]=\"{ 'background': value() }\"> </div>\r\n\r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"CopyToClipboard(); $event.stopPropagation();\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"clipboard\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <!-- [maxlength]=\"configuration().maxlength\" -->\r\n <!-- [type]=\"configuration().type\" -->\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n<sion-popover\r\n #popover \r\n width=\"fit-content\" \r\n [anchor]=\"inputContainer\" \r\n>\r\n <div class=\"size-full p-2 flex gap-1\"> \r\n <div class=\"flex flex-col w-44 shrink-0 gap-1\">\r\n <div id=\"gradientWrapper\" class=\"w-44 h-32 relative\">\r\n <canvas #gradient width=\"176\" height=\"128\" class=\"size-full rounded-sm translucid-border\"></canvas>\r\n <div class=\"color-indicator quick-transition\" [style.left.%]=\"indicatorX\" [style.top.%]=\"indicatorY\"></div>\r\n </div>\r\n\r\n <div id=\"hueWrapper\" class=\"w-full relative\">\r\n <canvas #hueSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"hslColor.h / 3.6\"></div>\r\n </div>\r\n\r\n <div id=\"alphaWrapper\" class=\"w-full relative\">\r\n <canvas #alphaSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"alpha\"></div>\r\n </div>\r\n\r\n <div class=\"w-full flex shrink-0\">\r\n <div class=\"w-full grid grid-cols-5 gap-1\">\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#000000FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#3880FFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#2DD36FFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFC409FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#EB445AFF' }\"></ng-container>\r\n \r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFFFFFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#59168bFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#C6005CFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FB2C36FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#314158FF' }\"></ng-container>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n</sion-popover>\r\n\r\n<ng-template #templateColor let-color>\r\n <div class=\"size-8 rounded translucid-border cursor-pointer\" (click)=\"SetColorFromHex(color, true, true)\" [style.background]=\"color\"></div>\r\n</ng-template>", styles: ["input:focus{outline:solid 1px color-mix(in srgb,var(--ion-color-primary) 30%,transparent)}input{height:1.25rem;border-radius:.25rem;outline:1px solid transparent;transition-property:outline;transition-duration:.2s}.color-indicator{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.indicator{position:absolute;top:50%;width:6px;height:24px;background-color:#fff;border-radius:3px;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.quick-transition{transition:all 75ms}ion-popover{--width: fit-content;--height: fit-content}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
|
|
4713
4754
|
}
|
|
4714
4755
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputColorComponent, decorators: [{
|
|
4715
4756
|
type: Component,
|
|
@@ -10136,9 +10177,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10136
10177
|
args: [(DefaultViewComponent)]
|
|
10137
10178
|
}] } });
|
|
10138
10179
|
|
|
10139
|
-
const lstComponents$2 = [
|
|
10140
|
-
SIonPopoverComponent,
|
|
10141
|
-
];
|
|
10142
10180
|
class SIonPopoverModule {
|
|
10143
10181
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10144
10182
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, declarations: [SIonPopoverComponent], imports: [CommonModule], exports: [SIonPopoverComponent] }); }
|
|
@@ -10147,8 +10185,8 @@ class SIonPopoverModule {
|
|
|
10147
10185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, decorators: [{
|
|
10148
10186
|
type: NgModule,
|
|
10149
10187
|
args: [{
|
|
10150
|
-
declarations: [
|
|
10151
|
-
exports: [
|
|
10188
|
+
declarations: [SIonPopoverComponent],
|
|
10189
|
+
exports: [SIonPopoverComponent],
|
|
10152
10190
|
imports: [
|
|
10153
10191
|
CommonModule
|
|
10154
10192
|
]
|
|
@@ -10669,7 +10707,7 @@ class DrawerComponent {
|
|
|
10669
10707
|
this.genericService.SetTitle(item.title);
|
|
10670
10708
|
}
|
|
10671
10709
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerComponent, deps: [{ token: i2$2.Router }, { token: i3.NavController }, { token: GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10672
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DrawerComponent, isStandalone: true, selector: "drawer", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, lstMenu: { classPropertyName: "lstMenu", publicName: "lstMenu", isSignal: true, isRequired: false, transformFunction: null }, colapsed: { classPropertyName: "colapsed", publicName: "colapsed", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, useTranslation: { classPropertyName: "useTranslation", publicName: "useTranslation", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { colapsedChange: "colapsedChange" }, ngImport: i0, template: "<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <!-- [ Header ] -->\r\n <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n <div #anchor\r\n (click)=\"ToggleCollapsed()\" \r\n class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n\r\n <div class=\"size-full shrink flex pl-2 \">\r\n <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n @if (!ref.children.length) {\r\n <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ Content ] -->\r\n <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex gap-2\">\r\n <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n\r\n @for (item of lstMenu(); track $index) {\r\n <div>\r\n <div\r\n [class.bg-active]=\"CurrentGroupActive == item\"\r\n #anchor (mouseenter)=\"popover.present($event)\" \r\n (mouseleave)=\"popover.dismiss()\" \r\n (click)=\"CurrentGroupActive = item\" \r\n class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n <div class=\"p-1\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </div>\r\n </sion-popover>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"size-full shrink relative\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ End ] -->\r\n <div class=\"shrink-0 w-full\">\r\n <ng-content select=\"[slot=drawer]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n <ng-template>\r\n <ion-content>\r\n <ion-card class=\"size-full m-0 overflow-hidden\">\r\n <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n @for (vGroup of lstMenuFiltered(); track $index) {\r\n <ion-card class=\"m-0 shrink-0\">\r\n <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n </ion-text>\r\n </div>\r\n @for (vMenu of vGroup.lstMenu; track $index) {\r\n <div \r\n (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n </ion-text>\r\n </div>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n }\r\n\r\n @if (lstMenuFiltered().length == 0) {\r\n <ion-text class=\"text-center text-medium\">\r\n {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n </ion-text>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-content>\r\n </ng-template>\r\n</ion-modal>", styles: [".bg-active{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8}.menu{display:flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.5rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.toggle:hover{--color-primary: var(--ion-color-step-500) !important;transition:--color-primary .2s ease-in-out}.search-button{--inset2: var(--ion-color-medium) 0px 0px 5px -1px inset;box-shadow:var(--inset2)}.menu-search{position:relative;cursor:pointer;overflow:hidden}.menu-search.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:1rem;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu-search.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:1rem;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu-search.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu-search.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu-search.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: DrawerGroupComponent, selector: "drawer-group", inputs: ["MenuGroup", "colapsed", "useTranslation"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss", "isVisibleChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
10710
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DrawerComponent, isStandalone: true, selector: "drawer", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, lstMenu: { classPropertyName: "lstMenu", publicName: "lstMenu", isSignal: true, isRequired: false, transformFunction: null }, colapsed: { classPropertyName: "colapsed", publicName: "colapsed", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, useTranslation: { classPropertyName: "useTranslation", publicName: "useTranslation", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { colapsedChange: "colapsedChange" }, ngImport: i0, template: "<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <!-- [ Header ] -->\r\n <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n <div #anchor\r\n (click)=\"ToggleCollapsed()\" \r\n class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n\r\n <div class=\"size-full shrink flex pl-2 \">\r\n <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n @if (!ref.children.length) {\r\n <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ Content ] -->\r\n <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex gap-2\">\r\n <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n\r\n @for (item of lstMenu(); track $index) {\r\n <div>\r\n <div\r\n [class.bg-active]=\"CurrentGroupActive == item\"\r\n #anchor (mouseenter)=\"popover.present($event)\" \r\n (mouseleave)=\"popover.dismiss()\" \r\n (click)=\"CurrentGroupActive = item\" \r\n class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n <div class=\"p-1\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </div>\r\n </sion-popover>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"size-full shrink relative\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ End ] -->\r\n <div class=\"shrink-0 w-full\">\r\n <ng-content select=\"[slot=drawer]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n <ng-template>\r\n <ion-content>\r\n <ion-card class=\"size-full m-0 overflow-hidden\">\r\n <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n @for (vGroup of lstMenuFiltered(); track $index) {\r\n <ion-card class=\"m-0 shrink-0\">\r\n <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n </ion-text>\r\n </div>\r\n @for (vMenu of vGroup.lstMenu; track $index) {\r\n <div \r\n (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n </ion-text>\r\n </div>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n }\r\n\r\n @if (lstMenuFiltered().length == 0) {\r\n <ion-text class=\"text-center text-medium\">\r\n {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n </ion-text>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-content>\r\n </ng-template>\r\n</ion-modal>", styles: [".bg-active{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8}.menu{display:flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.5rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.toggle:hover{--color-primary: var(--ion-color-step-500) !important;transition:--color-primary .2s ease-in-out}.search-button{--inset2: var(--ion-color-medium) 0px 0px 5px -1px inset;box-shadow:var(--inset2)}.menu-search{position:relative;cursor:pointer;overflow:hidden}.menu-search.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:1rem;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu-search.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:1rem;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu-search.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu-search.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu-search.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonModal, selector: "ion-modal" }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: DrawerGroupComponent, selector: "drawer-group", inputs: ["MenuGroup", "colapsed", "useTranslation"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
10673
10711
|
}
|
|
10674
10712
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
10675
10713
|
type: Component,
|
|
@@ -11284,7 +11322,7 @@ class MainContentComponent {
|
|
|
11284
11322
|
}
|
|
11285
11323
|
}
|
|
11286
11324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11287
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MainContentComponent, isStandalone: true, selector: "main-content", inputs: { backdrop: "backdrop", shadowColor: "shadowColor", colapsed: "colapsed", drawerComponent: "drawerComponent" }, viewQueries: [{ propertyName: "FullScreenConteiner", first: true, predicate: ["target"], descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex items-center justify-end gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n\r\n\r\n @if (!fullScreen) {\r\n <div #anchor>\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n </div>\r\n <sion-popover #userPopover [anchor]=\"anchor\" [flip]=\"false\" width=\"13rem\">\r\n <div class=\"w-full flex flex-col overflow-hidden\">\r\n <div class=\"w-full flex p-2 gap-2 overflow-hidden\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center bg-primary\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n\r\n <div class=\"shrink-0 w-full flex flex-col justify-center items-start overflow-hidden text-sm\">\r\n <span class=\"truncate\"> {{Token ? Token.Nome : ''}} </span>\r\n <span class=\"truncate text-secondary\"> @{{Token ? Token.Apelido : ''}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-full p-1 !pb-0 translucid-border !border-x-0 !border-b-0\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start default-transition py-1 px-2\">\r\n <ion-icon name=\"contrast\"></ion-icon>\r\n <ion-text> Tema </ion-text>\r\n </div>\r\n\r\n <div class=\"flex flex-col pl-4\">\r\n <ion-radio-group alignment=\"start\" [allowEmptySelection]=\"false\" [value]=\"Theme\" (ionChange)=\"SetTheme($event.detail.value)\">\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"cog\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"0\">Sistema</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"sunny\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"1\">Claro</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"none\">\r\n <ion-icon name=\"moon\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"2\">Escuro</ion-radio>\r\n </ion-item>\r\n </ion-radio-group>\r\n\r\n\r\n <!-- <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 0\" (ionChange)=\"SetTheme(0)\" ></ion-checkbox>\r\n <ion-icon name=\"cog\"></ion-icon>\r\n <ion-text> Sistema </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 1\" (ionChange)=\"SetTheme(1)\" ></ion-checkbox>\r\n <ion-icon name=\"sunny\"></ion-icon>\r\n <ion-text> Claro </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 2\" (ionChange)=\"SetTheme(2)\" ></ion-checkbox>\r\n <ion-icon name=\"moon\"></ion-icon>\r\n <ion-text> Escuro </ion-text>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0\">\r\n <div (click)=\"authService.Loggout()\" class=\"rounded-xl flex gap-2 cursor-pointer items-center justify-start hover:bg-medium/10 default-transition py-1 px-2\">\r\n <ion-icon color=\"danger\" name=\"exit\"></ion-icon>\r\n <ion-text> Log Out </ion-text>\r\n </div>\r\n\r\n <!-- <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"size-full\">\r\n <div class=\"w-full p-1 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n @{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <div class=\"hover:bg-medium/30 default-transition size-full\">\r\n <ion-button color=\"dark\" fill=\"clear\" size=\"small\" class=\"rounded-xl w-full text-left overflow-hidden\">\r\n <ion-icon slot=\"start\" name=\"contrast\"></ion-icon>\r\n <ion-label class=\"text-sm\">Tema</ion-label>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div> -->\r\n </sion-popover>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 pt-0 bg-light\">\r\n <div class=\"size-full relative rounded-2xl content-shadow overflow-hidden {{backdrop}}\" style=\"--shadow-color: {{shadowColor}}\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--shadow-color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--shadow-color),0 6px 10px -4px var(--shadow-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i3.IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: i3.IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "errorText", "helperText", "name", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss", "isVisibleChange"] }] }); }
|
|
11325
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MainContentComponent, isStandalone: true, selector: "main-content", inputs: { backdrop: "backdrop", shadowColor: "shadowColor", colapsed: "colapsed", drawerComponent: "drawerComponent" }, viewQueries: [{ propertyName: "FullScreenConteiner", first: true, predicate: ["target"], descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex items-center justify-end gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n\r\n\r\n @if (!fullScreen) {\r\n <div #anchor>\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n </div>\r\n <sion-popover #userPopover [anchor]=\"anchor\" [flip]=\"false\" width=\"13rem\">\r\n <div class=\"w-full flex flex-col overflow-hidden\">\r\n <div class=\"w-full flex p-2 gap-2 overflow-hidden\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center bg-primary\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n\r\n <div class=\"shrink-0 w-full flex flex-col justify-center items-start overflow-hidden text-sm\">\r\n <span class=\"truncate\"> {{Token ? Token.Nome : ''}} </span>\r\n <span class=\"truncate text-secondary\"> @{{Token ? Token.Apelido : ''}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-full p-1 !pb-0 translucid-border !border-x-0 !border-b-0\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start default-transition py-1 px-2\">\r\n <ion-icon name=\"contrast\"></ion-icon>\r\n <ion-text> Tema </ion-text>\r\n </div>\r\n\r\n <div class=\"flex flex-col pl-4\">\r\n <ion-radio-group alignment=\"start\" [allowEmptySelection]=\"false\" [value]=\"Theme\" (ionChange)=\"SetTheme($event.detail.value)\">\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"cog\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"0\">Sistema</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"sunny\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"1\">Claro</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"none\">\r\n <ion-icon name=\"moon\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"2\">Escuro</ion-radio>\r\n </ion-item>\r\n </ion-radio-group>\r\n\r\n\r\n <!-- <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 0\" (ionChange)=\"SetTheme(0)\" ></ion-checkbox>\r\n <ion-icon name=\"cog\"></ion-icon>\r\n <ion-text> Sistema </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 1\" (ionChange)=\"SetTheme(1)\" ></ion-checkbox>\r\n <ion-icon name=\"sunny\"></ion-icon>\r\n <ion-text> Claro </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 2\" (ionChange)=\"SetTheme(2)\" ></ion-checkbox>\r\n <ion-icon name=\"moon\"></ion-icon>\r\n <ion-text> Escuro </ion-text>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0\">\r\n <div (click)=\"authService.Loggout()\" class=\"rounded-xl flex gap-2 cursor-pointer items-center justify-start hover:bg-medium/10 default-transition py-1 px-2\">\r\n <ion-icon color=\"danger\" name=\"exit\"></ion-icon>\r\n <ion-text> Log Out </ion-text>\r\n </div>\r\n\r\n <!-- <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"size-full\">\r\n <div class=\"w-full p-1 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n @{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <div class=\"hover:bg-medium/30 default-transition size-full\">\r\n <ion-button color=\"dark\" fill=\"clear\" size=\"small\" class=\"rounded-xl w-full text-left overflow-hidden\">\r\n <ion-icon slot=\"start\" name=\"contrast\"></ion-icon>\r\n <ion-label class=\"text-sm\">Tema</ion-label>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div> -->\r\n </sion-popover>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 pt-0 bg-light\">\r\n <div class=\"size-full relative rounded-2xl content-shadow overflow-hidden {{backdrop}}\" style=\"--shadow-color: {{shadowColor}}\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--shadow-color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--shadow-color),0 6px 10px -4px var(--shadow-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i3.IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: i3.IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "errorText", "helperText", "name", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
|
|
11288
11326
|
}
|
|
11289
11327
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, decorators: [{
|
|
11290
11328
|
type: Component,
|