uni-component-tw 2.1.4 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/uni-component-tw.mjs +22 -22
- package/fesm2022/uni-component-tw.mjs.map +1 -1
- package/lib/uni-pie-chart/uni-pie-chart.component.d.ts +1 -1
- package/lib/uni-side-menu/uni-side-menu.component.d.ts +4 -4
- package/package.json +1 -3
- package/esm2022/lib/uni-article/uni-article.component.mjs +0 -32
- package/esm2022/lib/uni-header/uni-header.component.mjs +0 -24
- package/esm2022/lib/uni-login-modal/uni-login-modal.component.mjs +0 -53
- package/esm2022/lib/uni-pie-chart/uni-pie-chart.component.mjs +0 -60
- package/esm2022/lib/uni-side-menu/uni-side-menu.component.mjs +0 -79
- package/esm2022/public-api.mjs +0 -9
- package/esm2022/uni-component-tw.mjs +0 -5
|
@@ -15,11 +15,11 @@ import { UNIToastService } from 'uni-service/toast';
|
|
|
15
15
|
import { UNITranslateService, UNITranslatePipe } from 'uni-service/translate';
|
|
16
16
|
import * as i1$2 from 'devextreme-angular/ui/pie-chart';
|
|
17
17
|
import { DxPieChartModule } from 'devextreme-angular/ui/pie-chart';
|
|
18
|
+
import { faUser, faArrowRightToBracket, faArrowRightFromBracket, faSun, faMoon, faLanguage } from '@fortawesome/free-solid-svg-icons';
|
|
18
19
|
import * as i3 from 'devextreme-angular/ui/select-box';
|
|
19
20
|
import { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';
|
|
20
21
|
import * as i4 from 'devextreme-angular/ui/switch';
|
|
21
22
|
import { DxSwitchModule } from 'devextreme-angular/ui/switch';
|
|
22
|
-
import { faUser, faArrowRightToBracket, faArrowRightFromBracket, faSun, faMoon, faLanguage } from '@fortawesome/free-solid-svg-icons';
|
|
23
23
|
|
|
24
24
|
class UNIArticleComponent {
|
|
25
25
|
constructor() {
|
|
@@ -38,12 +38,12 @@ class UNIArticleComponent {
|
|
|
38
38
|
// Inverte lo stato di apertura/chiusura
|
|
39
39
|
this.isOpen.update((val) => !val);
|
|
40
40
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: UNIArticleComponent, isStandalone: true, selector: "uni-article", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, initialIsOpen: { classPropertyName: "initialIsOpen", publicName: "initialIsOpen", isSignal: true, isRequired: false, transformFunction: null }, headerCloseButton: { classPropertyName: "headerCloseButton", publicName: "headerCloseButton", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<article\n class=\"uni_article flex h-full flex-col rounded border-2 p-4\"\n [style.backgroundColor]=\"color() + '26'\"\n [style.borderColor]=\"color() + '33'\">\n <!-- Title -->\n @if (isHeader()) {\n <div class=\"uni_article_header flex items-center gap-4\" [ngClass]=\"{ 'mb-4': isOpen() }\">\n <!-- Icona nella testata, se presente -->\n @if (icon(); as icon) {\n <fa-icon class=\"uni-article-header-icon\" [icon]=\"icon\"></fa-icon>\n }\n\n <!-- Titolo nella testata, se presente -->\n @if (title(); as title) {\n <h5 class=\"uni_article_header_title truncate uppercase\">{{ title }}</h5>\n }\n\n <!-- Bottone per aprire/chiudere l'articolo, se presente -->\n @if (headerCloseButton()) {\n <dx-button\n class=\"uni_article_header_button ml-auto\"\n [icon]=\"isOpen() ? 'close' : 'expandform'\"\n (onClick)=\"toggleIsOpen()\">\n </dx-button>\n }\n </div>\n }\n\n <!-- Contenuto dell'articolo, visibile solo se aperto -->\n @if (isOpen()) {\n <ng-content></ng-content>\n }\n</article>\n\n", styles: [":host{display:block;overflow:hidden}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-16{flex-basis:4rem}.basis-24{flex-basis:6rem}.basis-6{flex-basis:1.5rem}.cursor-auto{cursor:auto}.flex-col{flex-direction:column}.content-end{align-content:flex-end}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-zinc-600\\/60{background-color:#52525b99}.bg-zinc-800\\/60{background-color:#27272a99}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.uppercase{text-transform:uppercase}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255/var(--tw-text-opacity))}.\\!opacity-25{opacity:.25!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-zinc-600\\/60:hover{background-color:#52525b99}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55/var(--tw-text-opacity))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNIArticleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: UNIArticleComponent, isStandalone: true, selector: "uni-article", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, initialIsOpen: { classPropertyName: "initialIsOpen", publicName: "initialIsOpen", isSignal: true, isRequired: false, transformFunction: null }, headerCloseButton: { classPropertyName: "headerCloseButton", publicName: "headerCloseButton", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<article\n class=\"uni_article flex h-full flex-col rounded border-2 p-4\"\n [style.backgroundColor]=\"color() + '26'\"\n [style.borderColor]=\"color() + '33'\">\n <!-- Title -->\n @if (isHeader()) {\n <div class=\"uni_article_header flex items-center gap-4\" [ngClass]=\"{ 'mb-4': isOpen() }\">\n <!-- Icona nella testata, se presente -->\n @if (icon(); as icon) {\n <fa-icon class=\"uni-article-header-icon\" [icon]=\"icon\"></fa-icon>\n }\n\n <!-- Titolo nella testata, se presente -->\n @if (title(); as title) {\n <h5 class=\"uni_article_header_title truncate uppercase\">{{ title }}</h5>\n }\n\n <!-- Bottone per aprire/chiudere l'articolo, se presente -->\n @if (headerCloseButton()) {\n <dx-button\n class=\"uni_article_header_button ml-auto\"\n [icon]=\"isOpen() ? 'close' : 'expandform'\"\n (onClick)=\"toggleIsOpen()\">\n </dx-button>\n }\n </div>\n }\n\n <!-- Contenuto dell'articolo, visibile solo se aperto -->\n @if (isOpen()) {\n <ng-content></ng-content>\n }\n</article>\n\n", styles: [":host{display:block;overflow:hidden}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-6{flex-basis:1.5rem}.cursor-auto{cursor:auto}.flex-col{flex-direction:column}.content-end{align-content:flex-end}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-white{--tw-border-opacity: 1;border-color:rgb(255,255,255,var(--tw-border-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75,85,99,var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239,68,68,var(--tw-bg-opacity, 1))}.bg-zinc-600\\/60{background-color:#52525b99}.bg-zinc-800\\/60{background-color:#27272a99}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.uppercase{text-transform:uppercase}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255,255,255,var(--tw-text-opacity, 1))!important}.text-white{--tw-text-opacity: 1;color:rgb(255,255,255,var(--tw-text-opacity, 1))}.\\!opacity-25{opacity:.25!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255,255,255,var(--tw-bg-opacity, 1))}.hover\\:bg-zinc-600\\/60:hover{background-color:#52525b99}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31,41,55,var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNIArticleComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
|
-
args: [{ selector: 'uni-article', standalone: true, imports: [CommonModule, DxButtonModule, FaIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<article\n class=\"uni_article flex h-full flex-col rounded border-2 p-4\"\n [style.backgroundColor]=\"color() + '26'\"\n [style.borderColor]=\"color() + '33'\">\n <!-- Title -->\n @if (isHeader()) {\n <div class=\"uni_article_header flex items-center gap-4\" [ngClass]=\"{ 'mb-4': isOpen() }\">\n <!-- Icona nella testata, se presente -->\n @if (icon(); as icon) {\n <fa-icon class=\"uni-article-header-icon\" [icon]=\"icon\"></fa-icon>\n }\n\n <!-- Titolo nella testata, se presente -->\n @if (title(); as title) {\n <h5 class=\"uni_article_header_title truncate uppercase\">{{ title }}</h5>\n }\n\n <!-- Bottone per aprire/chiudere l'articolo, se presente -->\n @if (headerCloseButton()) {\n <dx-button\n class=\"uni_article_header_button ml-auto\"\n [icon]=\"isOpen() ? 'close' : 'expandform'\"\n (onClick)=\"toggleIsOpen()\">\n </dx-button>\n }\n </div>\n }\n\n <!-- Contenuto dell'articolo, visibile solo se aperto -->\n @if (isOpen()) {\n <ng-content></ng-content>\n }\n</article>\n\n", styles: [":host{display:block;overflow:hidden}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-
|
|
46
|
+
args: [{ selector: 'uni-article', standalone: true, imports: [CommonModule, DxButtonModule, FaIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<article\n class=\"uni_article flex h-full flex-col rounded border-2 p-4\"\n [style.backgroundColor]=\"color() + '26'\"\n [style.borderColor]=\"color() + '33'\">\n <!-- Title -->\n @if (isHeader()) {\n <div class=\"uni_article_header flex items-center gap-4\" [ngClass]=\"{ 'mb-4': isOpen() }\">\n <!-- Icona nella testata, se presente -->\n @if (icon(); as icon) {\n <fa-icon class=\"uni-article-header-icon\" [icon]=\"icon\"></fa-icon>\n }\n\n <!-- Titolo nella testata, se presente -->\n @if (title(); as title) {\n <h5 class=\"uni_article_header_title truncate uppercase\">{{ title }}</h5>\n }\n\n <!-- Bottone per aprire/chiudere l'articolo, se presente -->\n @if (headerCloseButton()) {\n <dx-button\n class=\"uni_article_header_button ml-auto\"\n [icon]=\"isOpen() ? 'close' : 'expandform'\"\n (onClick)=\"toggleIsOpen()\">\n </dx-button>\n }\n </div>\n }\n\n <!-- Contenuto dell'articolo, visibile solo se aperto -->\n @if (isOpen()) {\n <ng-content></ng-content>\n }\n</article>\n\n", styles: [":host{display:block;overflow:hidden}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-6{flex-basis:1.5rem}.cursor-auto{cursor:auto}.flex-col{flex-direction:column}.content-end{align-content:flex-end}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-white{--tw-border-opacity: 1;border-color:rgb(255,255,255,var(--tw-border-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75,85,99,var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239,68,68,var(--tw-bg-opacity, 1))}.bg-zinc-600\\/60{background-color:#52525b99}.bg-zinc-800\\/60{background-color:#27272a99}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.uppercase{text-transform:uppercase}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255,255,255,var(--tw-text-opacity, 1))!important}.text-white{--tw-text-opacity: 1;color:rgb(255,255,255,var(--tw-text-opacity, 1))}.\\!opacity-25{opacity:.25!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255,255,255,var(--tw-bg-opacity, 1))}.hover\\:bg-zinc-600\\/60:hover{background-color:#52525b99}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31,41,55,var(--tw-text-opacity, 1))}\n"] }]
|
|
47
47
|
}] });
|
|
48
48
|
|
|
49
49
|
class UNIHeaderComponent {
|
|
@@ -57,10 +57,10 @@ class UNIHeaderComponent {
|
|
|
57
57
|
/* Output */
|
|
58
58
|
this.evtToggleMenu = output();
|
|
59
59
|
}
|
|
60
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNIHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: UNIHeaderComponent, isStandalone: true, selector: "uni-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, version: { classPropertyName: "version", publicName: "version", isSignal: true, isRequired: true, transformFunction: null }, pathBrandLogo: { classPropertyName: "pathBrandLogo", publicName: "pathBrandLogo", isSignal: true, isRequired: true, transformFunction: null }, pathAppLogo: { classPropertyName: "pathAppLogo", publicName: "pathAppLogo", isSignal: true, isRequired: false, transformFunction: null }, sideMenu: { classPropertyName: "sideMenu", publicName: "sideMenu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { evtToggleMenu: "evtToggleMenu" }, ngImport: i0, template: "<header id=\"uni-header\">\n <div>\n <!-- app logo -->\n @if (pathAppLogo(); as pathAppLogo) {\n <img id=\"header-img-app\" [src]=\"pathAppLogo\" alt=\"App logo\" />\n }\n\n <!-- info -->\n <div id=\"header-info\">\n <p>{{ title() }}</p>\n <p>{{ version() }}</p>\n </div>\n\n <!-- brand logo -->\n <img id=\"header-img-brand\" [src]=\"pathBrandLogo()\" alt=\"Brand logo\" />\n\n <!-- button menu -->\n @if (sideMenu()) {\n <dx-button [icon]=\"'menu'\" (onClick)=\"evtToggleMenu.emit(true)\"></dx-button>\n }\n </div>\n</header>\n\n", styles: [":host{display:block}#uni-header{position:fixed;top:0;left:0;height:calc(60px + var(--padding-m));width:100%;padding:var(--padding-m);background-color:#36363f;overflow:hidden;z-index:999}#uni-header>div{display:grid;grid-template-rows:1fr;grid-template-columns:40px 1fr auto min-content;align-items:center;gap:1rem;padding:calc(var(--padding-m) / 2);background-color:#52525b99;border-radius:.25rem;box-shadow:#00000059 0 5px 5px}#uni-header>div #header-info{display:flex;flex-direction:column;justify-content:center;text-wrap:nowrap}#uni-header>div #header-info p:first-child{font-size:20px;line-height:28px;font-weight:500;text-transform:uppercase}#uni-header>div #header-info p:last-child{font-size:12px;line-height:12px;opacity:.65}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:40px;object-fit:contain}@media (max-resolution: 1dppx){#uni-header>div{grid-template-columns:30px 1fr auto min-content}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:31px}#uni-header>div #header-info p:first-child{font-size:16px;line-height:21px}#uni-header>div #header-info p:last-child{font-size:10px;line-height:10px}}::ng-deep .theme-light #uni-header{background-color:#0284c70d}::ng-deep .theme-light #uni-header>div{background-color:#0284c799!important;box-shadow:#0284c759 0 5px 5px!important}::ng-deep .theme-light #uni-header>div,::ng-deep .theme-light #uni-header>div i:before{color:#fff}:host ::ng-deep .dx-button{height:23px;min-width:23px;background-color:transparent}:host ::ng-deep .dx-button .dx-icon{font-size:23px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNIHeaderComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{ selector: 'uni-header', standalone: true, imports: [CommonModule, DxButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header id=\"uni-header\">\n <div>\n <!-- app logo -->\n @if (pathAppLogo(); as pathAppLogo) {\n <img id=\"header-img-app\" [src]=\"pathAppLogo\" alt=\"App logo\" />\n }\n\n <!-- info -->\n <div id=\"header-info\">\n <p>{{ title() }}</p>\n <p>{{ version() }}</p>\n </div>\n\n <!-- brand logo -->\n <img id=\"header-img-brand\" [src]=\"pathBrandLogo()\" alt=\"Brand logo\" />\n\n <!-- button menu -->\n @if (sideMenu()) {\n <dx-button [icon]=\"'menu'\" (onClick)=\"evtToggleMenu.emit(true)\"></dx-button>\n }\n </div>\n</header>\n\n", styles: [":host{display:block}#uni-header{position:fixed;top:0;left:0;height:calc(60px + var(--padding-m));width:100%;padding:var(--padding-m);background-color:#36363f;overflow:hidden;z-index:999}#uni-header>div{display:grid;grid-template-rows:1fr;grid-template-columns:40px 1fr auto min-content;align-items:center;gap:1rem;padding:calc(var(--padding-m) / 2);background-color:#52525b99;border-radius:.25rem;box-shadow:#00000059 0 5px 5px}#uni-header>div #header-info{display:flex;flex-direction:column;justify-content:center;text-wrap:nowrap}#uni-header>div #header-info p:first-child{font-size:20px;line-height:28px;font-weight:500;text-transform:uppercase}#uni-header>div #header-info p:last-child{font-size:12px;line-height:12px;opacity:.65}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:40px;object-fit:contain}@media (max-resolution: 1dppx){#uni-header>div{grid-template-columns:30px 1fr auto min-content}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:31px}#uni-header>div #header-info p:first-child{font-size:16px;line-height:21px}#uni-header>div #header-info p:last-child{font-size:10px;line-height:10px}}::ng-deep .theme-light #uni-header{background-color:#0284c70d}::ng-deep .theme-light #uni-header>div{background-color:#0284c799!important;box-shadow:#0284c759 0 5px 5px!important}::ng-deep .theme-light #uni-header>div,::ng-deep .theme-light #uni-header>div i:before{color:#fff}:host ::ng-deep .dx-button{height:23px;min-width:23px;background-color:transparent}:host ::ng-deep .dx-button .dx-icon{font-size:23px}\n"] }]
|
|
66
66
|
}] });
|
|
@@ -97,10 +97,10 @@ class UNILoginModalComponent {
|
|
|
97
97
|
if (this.enableGoBack())
|
|
98
98
|
this.location.back();
|
|
99
99
|
}
|
|
100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNILoginModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: UNILoginModalComponent, isStandalone: true, selector: "uni-login-modal", inputs: { visibile: { classPropertyName: "visibile", publicName: "visibile", isSignal: true, isRequired: false, transformFunction: null }, routeHome: { classPropertyName: "routeHome", publicName: "routeHome", isSignal: true, isRequired: false, transformFunction: null }, enableGoBack: { classPropertyName: "enableGoBack", publicName: "enableGoBack", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<dx-popup\n[wrapperAttr]=\"{ id: 'loginPopup' }\"\n[width]=\"'40%'\"\n[minWidth]=\"400\"\n[maxWidth]=\"700\"\n[height]=\"500\"\n[visible]=\"visibile()\"\n[showTitle]=\"true\"\n[title]=\"'Login'\"\n[dragEnabled]=\"false\"\n[showCloseButton]=\"true\"\n[hideOnOutsideClick]=\"false\"\n(onHiding)=\"onHiding()\">\n<section>\n <img src=\"../../../assets/images/logo/logo_trasparente.png\" alt=\"Logo\" />\n <p>UNITEC</p>\n @if (authService.user(); as user) {\n <div>Utente: {{ user.username }}</div>\n <dx-button\n id=\"logoutButton\"\n stylingMode=\"contained\"\n [text]=\"'Logout'\"\n (onClick)=\"logout()\"></dx-button>\n } @else {\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"login()\">\n <dx-text-box\n [placeholder]=\"'User'\"\n stylingMode=\"outlined\"\n formControlName=\"username\"\n [inputAttr]=\"{ 'aria-label': 'User' }\"></dx-text-box>\n <dx-text-box\n [placeholder]=\"'Password'\"\n mode=\"password\"\n stylingMode=\"outlined\"\n formControlName=\"password\"\n [inputAttr]=\"{ 'aria-label': 'Password' }\"></dx-text-box>\n <dx-button\n id=\"loginSubmitButton\"\n stylingMode=\"contained\"\n [text]=\"'Login'\"\n [useSubmitBehavior]=\"true\"\n [disabled]=\"loginForm.invalid\"></dx-button>\n </form>\n }\n</section>\n</dx-popup>\n", styles: [":host{display:block}::ng-deep #loginPopup .dx-popup-content{display:flex;justify-content:center;align-items:center}section{width:60%;display:flex;align-items:center;flex-direction:column;gap:1.5rem}img{height:8rem}form{width:100%;display:flex;flex-direction:column;gap:1rem}form dx-button{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxPopupModule }, { kind: "component", type: i1$1.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: DxTextBoxModule }, { kind: "component", type: i1$1.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "ngmodule", type: DxButtonModule$1 }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
102
102
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNILoginModalComponent, decorators: [{
|
|
104
104
|
type: Component,
|
|
105
105
|
args: [{ selector: 'uni-login-modal', standalone: true, imports: [CommonModule, DxPopupModule, ReactiveFormsModule, DxTextBoxModule, DxButtonModule$1], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dx-popup\n[wrapperAttr]=\"{ id: 'loginPopup' }\"\n[width]=\"'40%'\"\n[minWidth]=\"400\"\n[maxWidth]=\"700\"\n[height]=\"500\"\n[visible]=\"visibile()\"\n[showTitle]=\"true\"\n[title]=\"'Login'\"\n[dragEnabled]=\"false\"\n[showCloseButton]=\"true\"\n[hideOnOutsideClick]=\"false\"\n(onHiding)=\"onHiding()\">\n<section>\n <img src=\"../../../assets/images/logo/logo_trasparente.png\" alt=\"Logo\" />\n <p>UNITEC</p>\n @if (authService.user(); as user) {\n <div>Utente: {{ user.username }}</div>\n <dx-button\n id=\"logoutButton\"\n stylingMode=\"contained\"\n [text]=\"'Logout'\"\n (onClick)=\"logout()\"></dx-button>\n } @else {\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"login()\">\n <dx-text-box\n [placeholder]=\"'User'\"\n stylingMode=\"outlined\"\n formControlName=\"username\"\n [inputAttr]=\"{ 'aria-label': 'User' }\"></dx-text-box>\n <dx-text-box\n [placeholder]=\"'Password'\"\n mode=\"password\"\n stylingMode=\"outlined\"\n formControlName=\"password\"\n [inputAttr]=\"{ 'aria-label': 'Password' }\"></dx-text-box>\n <dx-button\n id=\"loginSubmitButton\"\n stylingMode=\"contained\"\n [text]=\"'Login'\"\n [useSubmitBehavior]=\"true\"\n [disabled]=\"loginForm.invalid\"></dx-button>\n </form>\n }\n</section>\n</dx-popup>\n", styles: [":host{display:block}::ng-deep #loginPopup .dx-popup-content{display:flex;justify-content:center;align-items:center}section{width:60%;display:flex;align-items:center;flex-direction:column;gap:1.5rem}img{height:8rem}form{width:100%;display:flex;flex-direction:column;gap:1rem}form dx-button{width:100%}\n"] }]
|
|
106
106
|
}] });
|
|
@@ -152,12 +152,12 @@ class UNIPieChartComponent {
|
|
|
152
152
|
color: 'rgba(149, 157, 165, 0.5)',
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
155
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNIPieChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: UNIPieChartComponent, isStandalone: true, selector: "uni-pie-chart", inputs: { chartDataSource: { classPropertyName: "chartDataSource", publicName: "chartDataSource", isSignal: true, isRequired: true, transformFunction: null }, chartPercentage: { classPropertyName: "chartPercentage", publicName: "chartPercentage", isSignal: true, isRequired: false, transformFunction: null }, chartType: { classPropertyName: "chartType", publicName: "chartType", isSignal: true, isRequired: false, transformFunction: null }, chartDiameter: { classPropertyName: "chartDiameter", publicName: "chartDiameter", isSignal: true, isRequired: false, transformFunction: null }, chartInnerRadius: { classPropertyName: "chartInnerRadius", publicName: "chartInnerRadius", isSignal: true, isRequired: false, transformFunction: null }, tooltipIsEnabled: { classPropertyName: "tooltipIsEnabled", publicName: "tooltipIsEnabled", isSignal: true, isRequired: false, transformFunction: null }, legendPosition: { classPropertyName: "legendPosition", publicName: "legendPosition", isSignal: true, isRequired: false, transformFunction: null }, legendWithValue: { classPropertyName: "legendWithValue", publicName: "legendWithValue", isSignal: true, isRequired: false, transformFunction: null }, legendGap: { classPropertyName: "legendGap", publicName: "legendGap", isSignal: true, isRequired: false, transformFunction: null }, uom: { classPropertyName: "uom", publicName: "uom", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"container-pie-chart\"\n [style.display]=\"legendPosition() === 'none' ? 'block' : 'grid'\"\n [style.gridTemplateRows]=\"gridRow()\"\n [style.gridTemplateColumns]=\"gridColumn()\">\n <div\n [style.order]=\"legendPosition() === 'top' || legendPosition() === 'left' ? 1 : 0\"\n style=\"position: relative; height: 100%; width: 100%; overflow: hidden\">\n <dx-pie-chart\n style=\"height: 100%; width: 100%; overflow: hidden\"\n [type]=\"chartType()\"\n [dataSource]=\"chartDataSource()\"\n resolveLabelOverlapping=\"shift\"\n [palette]=\"paletteColor()\"\n [diameter]=\"chartDiameter()\"\n [innerRadius]=\"chartInnerRadius()\"\n [redrawOnResize]=\"true\"\n [series]=\"{\n argumentField: 'name',\n valueField: 'value',\n label: { visible: false },\n }\"\n [legend]=\"{ visible: false }\"\n [tooltip]=\"{ enabled: tooltipIsEnabled(), customizeTooltip: customizeTooltip }\">\n </dx-pie-chart>\n\n @if (chartPercentage() !== undefined) {\n <div class=\"pie-percentage-value\">{{ chartPercentage() }}%</div>\n }\n </div>\n\n @if (legendPosition() !== 'none') {\n <ul\n class=\"container-legend\"\n [style.flexDirection]=\"\n legendPosition() === 'top' || legendPosition() === 'bottom' ? 'row' : 'column'\n \"\n [style.gap]=\"legendGap()\">\n @for (item of chartDataSource(); track $index) {\n <li>\n <span class=\"square\" [style.backgroundColor]=\"item.color\"></span>\n {{ legendWithValue() ? item.name + ' ' + item.value + ' ' + uom() : item.name }}\n </li>\n }\n </ul>\n }\n</div>\n\n", styles: [".container-pie-chart{height:100%;width:100%;gap:16px}.container-pie-chart .pie-percentage-value{position:absolute;inset:0;height:100%;width:100%;display:flex;justify-content:center;align-items:center;font-size:150%}.container-legend{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap}.container-legend li{display:grid;grid-template-rows:1fr;grid-template-columns:min-content 1fr;align-items:center;gap:6px;text-wrap:nowrap}.square{display:block;height:12px;width:12px;border-radius:2.5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxPieChartModule }, { kind: "component", type: i1$2.DxPieChartComponent, selector: "dx-pie-chart", inputs: ["adaptiveLayout", "animation", "annotations", "centerTemplate", "commonAnnotationSettings", "commonSeriesSettings", "customizeAnnotation", "customizeLabel", "customizePoint", "dataSource", "diameter", "disabled", "elementAttr", "export", "innerRadius", "legend", "loadingIndicator", "margin", "minDiameter", "palette", "paletteExtensionMode", "pathModified", "pointSelectionMode", "redrawOnResize", "resolveLabelOverlapping", "rtlEnabled", "segmentsDirection", "series", "seriesTemplate", "size", "sizeGroup", "startAngle", "theme", "title", "tooltip", "type"], outputs: ["onDisposing", "onDone", "onDrawn", "onExported", "onExporting", "onFileSaving", "onIncidentOccurred", "onInitialized", "onLegendClick", "onOptionChanged", "onPointClick", "onPointHoverChanged", "onPointSelectionChanged", "onTooltipHidden", "onTooltipShown", "adaptiveLayoutChange", "animationChange", "annotationsChange", "centerTemplateChange", "commonAnnotationSettingsChange", "commonSeriesSettingsChange", "customizeAnnotationChange", "customizeLabelChange", "customizePointChange", "dataSourceChange", "diameterChange", "disabledChange", "elementAttrChange", "exportChange", "innerRadiusChange", "legendChange", "loadingIndicatorChange", "marginChange", "minDiameterChange", "paletteChange", "paletteExtensionModeChange", "pathModifiedChange", "pointSelectionModeChange", "redrawOnResizeChange", "resolveLabelOverlappingChange", "rtlEnabledChange", "segmentsDirectionChange", "seriesChange", "seriesTemplateChange", "sizeChange", "sizeGroupChange", "startAngleChange", "themeChange", "titleChange", "tooltipChange", "typeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
157
157
|
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNIPieChartComponent, decorators: [{
|
|
159
159
|
type: Component,
|
|
160
|
-
args: [{ selector: 'uni-pie-chart', standalone: true, imports: [CommonModule, DxPieChartModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"container-pie-chart\"\n [style.display]=\"legendPosition() === 'none' ? 'block' : 'grid'\"\n [style.gridTemplateRows]=\"gridRow()\"\n [style.gridTemplateColumns]=\"gridColumn()\">\n <div\n [style.order]=\"legendPosition() === 'top' || legendPosition() === 'left' ? 1 : 0\"\n style=\"position: relative; height: 100%; width: 100%; overflow: hidden\">\n <dx-pie-chart\n style=\"height: 100%; width: 100%; overflow: hidden\"\n [type]=\"chartType()\"\n [dataSource]=\"chartDataSource()\"\n resolveLabelOverlapping=\"shift\"\n [palette]=\"paletteColor()\"\n [diameter]=\"chartDiameter()\"\n [innerRadius]=\"chartInnerRadius()\"\n [redrawOnResize]=\"true\"\n [series]=\"{\n argumentField: 'name',\n
|
|
160
|
+
args: [{ selector: 'uni-pie-chart', standalone: true, imports: [CommonModule, DxPieChartModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"container-pie-chart\"\n [style.display]=\"legendPosition() === 'none' ? 'block' : 'grid'\"\n [style.gridTemplateRows]=\"gridRow()\"\n [style.gridTemplateColumns]=\"gridColumn()\">\n <div\n [style.order]=\"legendPosition() === 'top' || legendPosition() === 'left' ? 1 : 0\"\n style=\"position: relative; height: 100%; width: 100%; overflow: hidden\">\n <dx-pie-chart\n style=\"height: 100%; width: 100%; overflow: hidden\"\n [type]=\"chartType()\"\n [dataSource]=\"chartDataSource()\"\n resolveLabelOverlapping=\"shift\"\n [palette]=\"paletteColor()\"\n [diameter]=\"chartDiameter()\"\n [innerRadius]=\"chartInnerRadius()\"\n [redrawOnResize]=\"true\"\n [series]=\"{\n argumentField: 'name',\n valueField: 'value',\n label: { visible: false },\n }\"\n [legend]=\"{ visible: false }\"\n [tooltip]=\"{ enabled: tooltipIsEnabled(), customizeTooltip: customizeTooltip }\">\n </dx-pie-chart>\n\n @if (chartPercentage() !== undefined) {\n <div class=\"pie-percentage-value\">{{ chartPercentage() }}%</div>\n }\n </div>\n\n @if (legendPosition() !== 'none') {\n <ul\n class=\"container-legend\"\n [style.flexDirection]=\"\n legendPosition() === 'top' || legendPosition() === 'bottom' ? 'row' : 'column'\n \"\n [style.gap]=\"legendGap()\">\n @for (item of chartDataSource(); track $index) {\n <li>\n <span class=\"square\" [style.backgroundColor]=\"item.color\"></span>\n {{ legendWithValue() ? item.name + ' ' + item.value + ' ' + uom() : item.name }}\n </li>\n }\n </ul>\n }\n</div>\n\n", styles: [".container-pie-chart{height:100%;width:100%;gap:16px}.container-pie-chart .pie-percentage-value{position:absolute;inset:0;height:100%;width:100%;display:flex;justify-content:center;align-items:center;font-size:150%}.container-legend{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap}.container-legend li{display:grid;grid-template-rows:1fr;grid-template-columns:min-content 1fr;align-items:center;gap:6px;text-wrap:nowrap}.square{display:block;height:12px;width:12px;border-radius:2.5px}\n"] }]
|
|
161
161
|
}], ctorParameters: () => [] });
|
|
162
162
|
|
|
163
163
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
@@ -168,7 +168,7 @@ class UNISideMenuComponent {
|
|
|
168
168
|
this.authService = inject(UNIAuthService);
|
|
169
169
|
this.translateService = inject(UNITranslateService);
|
|
170
170
|
/* Input */
|
|
171
|
-
this.
|
|
171
|
+
this.pathUnitecLogo = input.required();
|
|
172
172
|
this.menuItems = input([]);
|
|
173
173
|
this.menuInteractions = input([]);
|
|
174
174
|
this.user = input.required();
|
|
@@ -191,8 +191,8 @@ class UNISideMenuComponent {
|
|
|
191
191
|
localStorage.setItem('uni-theme', e.value ? 'dark' : 'light');
|
|
192
192
|
window.location.reload();
|
|
193
193
|
}
|
|
194
|
-
|
|
195
|
-
this.translateService.
|
|
194
|
+
updateLocale(e) {
|
|
195
|
+
this.translateService.setLocale(e.value);
|
|
196
196
|
window.location.reload();
|
|
197
197
|
}
|
|
198
198
|
goToLogin() {
|
|
@@ -206,10 +206,10 @@ class UNISideMenuComponent {
|
|
|
206
206
|
this.router.navigate([firstItem?.path ?? 'login']);
|
|
207
207
|
});
|
|
208
208
|
}
|
|
209
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: UNISideMenuComponent, isStandalone: true, selector: "uni-side-menu", inputs: { pathBrandLogo: { classPropertyName: "pathBrandLogo", publicName: "pathBrandLogo", isSignal: true, isRequired: true, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, menuInteractions: { classPropertyName: "menuInteractions", publicName: "menuInteractions", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { evtToggleMenu: "evtToggleMenu" }, ngImport: i0, template: "<aside\n class=\"flex h-screen w-[250px] flex-col gap-4 overflow-hidden rounded bg-zinc-800/60 p-4 shadow backdrop-blur-xl\">\n <!-- user -->\n <div class=\"flex w-full items-center gap-4\">\n <div class=\"flex flex-1 gap-2\">\n @if (user(); as user) {\n <fa-icon [icon]=\"ICON.USER\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ user.username }}</span>\n }\n </div>\n <dx-button [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\"></dx-button>\n </div>\n\n <div class=\"flex-1 overflow-y-auto overflow-x-hidden\">\n <!-- menu -->\n @if (menuItems().length) {\n <nav class=\"mt-2\">\n <ul class=\"flex flex-col gap-2\">\n @for (item of menuItems(); track item.id) {\n @if (item.visible !== false) {\n <li class=\"relative\">\n <a\n class=\"flex gap-2 rounded p-2 !text-white\"\n [ngClass]=\"{\n 'hover:bg-zinc-600/60': !item.disabled,\n 'cursor-auto !opacity-25': item.disabled,\n }\"\n [routerLink]=\"item.disabled ? null : item.path\"\n routerLinkActive=\"bg-zinc-600/60\"\n (click)=\"evtToggleMenu.emit(false)\">\n <fa-icon class=\"basis-6\" [icon]=\"item.icon\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\n @if (item.badge) {\n <div class=\"absolute -right-1 -top-1 h-3 w-3 rounded-full bg-red-500\"></div>\n }\n </a>\n </li>\n }\n }\n </ul>\n </nav>\n }\n\n @if (menuInteractions().length) {\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\n <ul class=\"flex flex-col gap-2\">\n @for (item of menuInteractions(); track item.id) {\n @if (item.data.type === 'button') {\n <li class=\"item-setting-button\">\n <button\n type=\"button\"\n class=\"dx-theme-material-typography flex h-12 w-full items-center gap-2 rounded p-4\"\n [class]=\"item.class\"\n (click)=\"item.data.onClick()\">\n <fa-icon class=\"basis-6\" [icon]=\"item.data.icon\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\n </button>\n </li>\n } @else if (item.data.type === 'select') {\n <li class=\"flex h-12 items-center gap-4 rounded bg-zinc-600/60 p-3 shadow\">\n <span class=\"truncate\">{{ item.label }}</span>\n <dx-select-box\n class=\"flex-1 basis-24\"\n valueExpr=\"id\"\n displayExpr=\"name\"\n [items]=\"item.data.combos\"\n [value]=\"item.data.value\"\n stylingMode=\"underlined\"\n placeholder=\"\"\n (onValueChanged)=\"item.data.onValueChanged($event)\"></dx-select-box>\n </li>\n }\n }\n </ul>\n }\n\n <!-- setting -->\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\n <ul class=\"flex flex-col gap-2\">\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\n <fa-icon class=\"basis-6\" [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ 'lblDarkMode' | translate }}</span>\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\n </li>\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\n <fa-icon class=\"basis-6\" [icon]=\"ICON.LANGUAGE\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ 'lblLanguage' | translate }}</span>\n <dx-select-box\n class=\"basis-16\"\n [items]=\"translateService.translateInfo().languagesSupported\"\n [value]=\"translateService.translateInfo().language\"\n stylingMode=\"underlined\"\n (onValueChanged)=\"updateLanguage($event)\"></dx-select-box>\n </li>\n <!-- User | null | undefined -->\n @if (user() !== undefined) {\n <li>\n <button\n class=\"flex w-full items-center gap-2 rounded border border-white p-4 text-white shadow transition duration-300 ease-in-out hover:bg-white hover:text-gray-800\"\n (click)=\"user() ? logout() : goToLogin()\">\n <fa-icon [icon]=\"user() ? ICON.LOGOUT : ICON.LOGIN\"></fa-icon>\n <span class=\"flex-1 truncate\">{{\n (user() ? 'lblLogout' : 'lblLogin') | translate\n }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n\n <!-- logo -->\n <div class=\"mt-auto flex content-end border-b border-white\">\n <img\n class=\"mb-1 ml-auto h-8\"\n [ngSrc]=\"pathBrandLogo()\"\n alt=\"Brand logo\"\n [height]=\"32\"\n [width]=\"88\" />\n </div>\n</aside>\n\n", styles: [":host{position:fixed;top:0;right:0;z-index:999}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-16{flex-basis:4rem}.basis-24{flex-basis:6rem}.basis-6{flex-basis:1.5rem}.cursor-auto{cursor:auto}.flex-col{flex-direction:column}.content-end{align-content:flex-end}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-zinc-600\\/60{background-color:#52525b99}.bg-zinc-800\\/60{background-color:#27272a99}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.uppercase{text-transform:uppercase}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255/var(--tw-text-opacity))}.\\!opacity-25{opacity:.25!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-zinc-600\\/60:hover{background-color:#52525b99}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55/var(--tw-text-opacity))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i3.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "ngmodule", type: DxSwitchModule }, { kind: "component", type: i4.DxSwitchComponent, selector: "dx-switch", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "isDirty", "isValid", "name", "readOnly", "rtlEnabled", "switchedOffText", "switchedOnText", "tabIndex", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "isDirtyChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "switchedOffTextChange", "switchedOnTextChange", "tabIndexChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: UNITranslatePipe, name: "translate" }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
209
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNISideMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
210
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: UNISideMenuComponent, isStandalone: true, selector: "uni-side-menu", inputs: { pathUnitecLogo: { classPropertyName: "pathUnitecLogo", publicName: "pathUnitecLogo", isSignal: true, isRequired: true, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, menuInteractions: { classPropertyName: "menuInteractions", publicName: "menuInteractions", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { evtToggleMenu: "evtToggleMenu" }, ngImport: i0, template: "<aside\r\n class=\"flex h-screen w-[250px] flex-col gap-4 overflow-hidden rounded bg-zinc-800/60 p-4 shadow backdrop-blur-xl\">\r\n <!-- user -->\r\n <div class=\"flex w-full items-center gap-4\">\r\n <div class=\"flex flex-1 gap-2\">\r\n @if (user(); as user) {\r\n <fa-icon [icon]=\"ICON.USER\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ user.username }}</span>\r\n }\r\n </div>\r\n <dx-button [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\"></dx-button>\r\n </div>\r\n\r\n <div class=\"flex-1 overflow-y-auto overflow-x-hidden\">\r\n <!-- menu -->\r\n @if (menuItems().length) {\r\n <nav class=\"mt-2\">\r\n <ul class=\"flex flex-col gap-2\">\r\n @for (item of menuItems(); track item.id) {\r\n @if (item.visible !== false) {\r\n <li class=\"relative\">\r\n <a\r\n class=\"flex gap-2 rounded p-2 !text-white\"\r\n [ngClass]=\"{\r\n 'hover:bg-zinc-600/60': !item.disabled,\r\n 'cursor-auto !opacity-25': item.disabled,\r\n }\"\r\n [routerLink]=\"item.disabled ? null : item.path\"\r\n routerLinkActive=\"bg-zinc-600/60\"\r\n (click)=\"evtToggleMenu.emit(false)\">\r\n <fa-icon class=\"basis-6\" [icon]=\"item.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\r\n @if (item.badge) {\r\n <div class=\"absolute -right-1 -top-1 h-3 w-3 rounded-full bg-red-500\"></div>\r\n }\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n }\r\n\r\n @if (menuInteractions().length) {\r\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\r\n <ul class=\"flex flex-col gap-2\">\r\n @for (item of menuInteractions(); track item.id) {\r\n @if (item.data.type === 'button') {\r\n <li class=\"item-setting-button\">\r\n <button\r\n type=\"button\"\r\n class=\"dx-theme-material-typography flex h-12 w-full items-center gap-2 rounded p-4\"\r\n [class]=\"item.class\"\r\n (click)=\"item.data.onClick()\">\r\n <fa-icon class=\"basis-6\" [icon]=\"item.data.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\r\n </button>\r\n </li>\r\n } @else if (item.data.type === 'select') {\r\n <li class=\"flex h-12 items-center gap-4 rounded bg-zinc-600/60 p-3 shadow\">\r\n <span class=\"truncate\">{{ item.label }}</span>\r\n <dx-select-box\r\n class=\"flex-1 basis-24\"\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n [items]=\"item.data.combos\"\r\n [value]=\"item.data.value\"\r\n stylingMode=\"underlined\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"item.data.onValueChanged($event)\"></dx-select-box>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n <!-- setting -->\r\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\r\n <ul class=\"flex flex-col gap-2\">\r\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\r\n <fa-icon class=\"basis-6\" [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ 'lblDarkMode' | translate }}</span>\r\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\r\n </li>\r\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\r\n <fa-icon class=\"basis-6\" [icon]=\"ICON.LANGUAGE\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ 'lblLanguage' | translate }}</span>\r\n <dx-select-box\r\n class=\"basis-20\"\r\n [items]=\"translateService.translateInfo().localesSupported\"\r\n [value]=\"translateService.translateInfo().locale\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"updateLocale($event)\"></dx-select-box>\r\n </li>\r\n <!-- User | null | undefined -->\r\n @if (user() !== undefined) {\r\n <li>\r\n <button\r\n class=\"flex w-full items-center gap-2 rounded border border-white p-4 text-white shadow transition duration-300 ease-in-out hover:bg-white hover:text-gray-800\"\r\n (click)=\"user() ? logout() : goToLogin()\">\r\n <fa-icon [icon]=\"user() ? ICON.LOGOUT : ICON.LOGIN\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{\r\n (user() ? 'lblLogout' : 'lblLogin') | translate\r\n }}</span>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n\r\n <!-- logo -->\r\n <div class=\"mt-auto flex content-end border-b border-white\">\r\n <img\r\n class=\"mb-1 ml-auto h-8\"\r\n [ngSrc]=\"pathUnitecLogo()\"\r\n alt=\"Brand logo\"\r\n [height]=\"32\"\r\n [width]=\"88\" />\r\n </div>\r\n</aside>\r\n", styles: [":host{position:fixed;top:0;right:0;z-index:999}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-6{flex-basis:1.5rem}.cursor-auto{cursor:auto}.flex-col{flex-direction:column}.content-end{align-content:flex-end}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-white{--tw-border-opacity: 1;border-color:rgb(255,255,255,var(--tw-border-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75,85,99,var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239,68,68,var(--tw-bg-opacity, 1))}.bg-zinc-600\\/60{background-color:#52525b99}.bg-zinc-800\\/60{background-color:#27272a99}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.uppercase{text-transform:uppercase}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255,255,255,var(--tw-text-opacity, 1))!important}.text-white{--tw-text-opacity: 1;color:rgb(255,255,255,var(--tw-text-opacity, 1))}.\\!opacity-25{opacity:.25!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255,255,255,var(--tw-bg-opacity, 1))}.hover\\:bg-zinc-600\\/60:hover{background-color:#52525b99}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31,41,55,var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i3.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "ngmodule", type: DxSwitchModule }, { kind: "component", type: i4.DxSwitchComponent, selector: "dx-switch", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "isDirty", "isValid", "name", "readOnly", "rtlEnabled", "switchedOffText", "switchedOnText", "tabIndex", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "isDirtyChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "switchedOffTextChange", "switchedOnTextChange", "tabIndexChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: UNITranslatePipe, name: "translate" }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
211
211
|
}
|
|
212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UNISideMenuComponent, decorators: [{
|
|
213
213
|
type: Component,
|
|
214
214
|
args: [{ selector: 'uni-side-menu', standalone: true, imports: [
|
|
215
215
|
CommonModule,
|
|
@@ -221,7 +221,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
221
221
|
UNITranslatePipe,
|
|
222
222
|
FaIconComponent,
|
|
223
223
|
NgOptimizedImage,
|
|
224
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside\n class=\"flex h-screen w-[250px] flex-col gap-4 overflow-hidden rounded bg-zinc-800/60 p-4 shadow backdrop-blur-xl\">\n <!-- user -->\n <div class=\"flex w-full items-center gap-4\">\n <div class=\"flex flex-1 gap-2\">\n @if (user(); as user) {\n <fa-icon [icon]=\"ICON.USER\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ user.username }}</span>\n }\n </div>\n <dx-button [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\"></dx-button>\n </div>\n\n <div class=\"flex-1 overflow-y-auto overflow-x-hidden\">\n <!-- menu -->\n @if (menuItems().length) {\n <nav class=\"mt-2\">\n <ul class=\"flex flex-col gap-2\">\n @for (item of menuItems(); track item.id) {\n @if (item.visible !== false) {\n <li class=\"relative\">\n <a\n class=\"flex gap-2 rounded p-2 !text-white\"\n [ngClass]=\"{\n 'hover:bg-zinc-600/60': !item.disabled,\n 'cursor-auto !opacity-25': item.disabled,\n }\"\n [routerLink]=\"item.disabled ? null : item.path\"\n routerLinkActive=\"bg-zinc-600/60\"\n (click)=\"evtToggleMenu.emit(false)\">\n <fa-icon class=\"basis-6\" [icon]=\"item.icon\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\n @if (item.badge) {\n <div class=\"absolute -right-1 -top-1 h-3 w-3 rounded-full bg-red-500\"></div>\n }\n </a>\n </li>\n }\n }\n </ul>\n </nav>\n }\n\n @if (menuInteractions().length) {\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\n <ul class=\"flex flex-col gap-2\">\n @for (item of menuInteractions(); track item.id) {\n @if (item.data.type === 'button') {\n <li class=\"item-setting-button\">\n <button\n type=\"button\"\n class=\"dx-theme-material-typography flex h-12 w-full items-center gap-2 rounded p-4\"\n [class]=\"item.class\"\n (click)=\"item.data.onClick()\">\n <fa-icon class=\"basis-6\" [icon]=\"item.data.icon\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\n </button>\n </li>\n } @else if (item.data.type === 'select') {\n <li class=\"flex h-12 items-center gap-4 rounded bg-zinc-600/60 p-3 shadow\">\n <span class=\"truncate\">{{ item.label }}</span>\n <dx-select-box\n class=\"flex-1 basis-24\"\n valueExpr=\"id\"\n displayExpr=\"name\"\n [items]=\"item.data.combos\"\n [value]=\"item.data.value\"\n stylingMode=\"underlined\"\n placeholder=\"\"\n (onValueChanged)=\"item.data.onValueChanged($event)\"></dx-select-box>\n </li>\n }\n }\n </ul>\n }\n\n <!-- setting -->\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\n <ul class=\"flex flex-col gap-2\">\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\n <fa-icon class=\"basis-6\" [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ 'lblDarkMode' | translate }}</span>\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\n </li>\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\n <fa-icon class=\"basis-6\" [icon]=\"ICON.LANGUAGE\"></fa-icon>\n <span class=\"flex-1 truncate\">{{ 'lblLanguage' | translate }}</span>\n <dx-select-box\n class=\"basis-16\"\n [items]=\"translateService.translateInfo().languagesSupported\"\n [value]=\"translateService.translateInfo().language\"\n stylingMode=\"underlined\"\n (onValueChanged)=\"updateLanguage($event)\"></dx-select-box>\n </li>\n <!-- User | null | undefined -->\n @if (user() !== undefined) {\n <li>\n <button\n class=\"flex w-full items-center gap-2 rounded border border-white p-4 text-white shadow transition duration-300 ease-in-out hover:bg-white hover:text-gray-800\"\n (click)=\"user() ? logout() : goToLogin()\">\n <fa-icon [icon]=\"user() ? ICON.LOGOUT : ICON.LOGIN\"></fa-icon>\n <span class=\"flex-1 truncate\">{{\n (user() ? 'lblLogout' : 'lblLogin') | translate\n }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n\n <!-- logo -->\n <div class=\"mt-auto flex content-end border-b border-white\">\n <img\n class=\"mb-1 ml-auto h-8\"\n [ngSrc]=\"pathBrandLogo()\"\n alt=\"Brand logo\"\n [height]=\"32\"\n [width]=\"88\" />\n </div>\n</aside>\n\n", styles: [":host{position:fixed;top:0;right:0;z-index:999}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-16{flex-basis:4rem}.basis-24{flex-basis:6rem}.basis-6{flex-basis:1.5rem}.cursor-auto{cursor:auto}.flex-col{flex-direction:column}.content-end{align-content:flex-end}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-zinc-600\\/60{background-color:#52525b99}.bg-zinc-800\\/60{background-color:#27272a99}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.uppercase{text-transform:uppercase}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255/var(--tw-text-opacity))}.\\!opacity-25{opacity:.25!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-zinc-600\\/60:hover{background-color:#52525b99}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55/var(--tw-text-opacity))}\n"] }]
|
|
224
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside\r\n class=\"flex h-screen w-[250px] flex-col gap-4 overflow-hidden rounded bg-zinc-800/60 p-4 shadow backdrop-blur-xl\">\r\n <!-- user -->\r\n <div class=\"flex w-full items-center gap-4\">\r\n <div class=\"flex flex-1 gap-2\">\r\n @if (user(); as user) {\r\n <fa-icon [icon]=\"ICON.USER\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ user.username }}</span>\r\n }\r\n </div>\r\n <dx-button [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\"></dx-button>\r\n </div>\r\n\r\n <div class=\"flex-1 overflow-y-auto overflow-x-hidden\">\r\n <!-- menu -->\r\n @if (menuItems().length) {\r\n <nav class=\"mt-2\">\r\n <ul class=\"flex flex-col gap-2\">\r\n @for (item of menuItems(); track item.id) {\r\n @if (item.visible !== false) {\r\n <li class=\"relative\">\r\n <a\r\n class=\"flex gap-2 rounded p-2 !text-white\"\r\n [ngClass]=\"{\r\n 'hover:bg-zinc-600/60': !item.disabled,\r\n 'cursor-auto !opacity-25': item.disabled,\r\n }\"\r\n [routerLink]=\"item.disabled ? null : item.path\"\r\n routerLinkActive=\"bg-zinc-600/60\"\r\n (click)=\"evtToggleMenu.emit(false)\">\r\n <fa-icon class=\"basis-6\" [icon]=\"item.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\r\n @if (item.badge) {\r\n <div class=\"absolute -right-1 -top-1 h-3 w-3 rounded-full bg-red-500\"></div>\r\n }\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n }\r\n\r\n @if (menuInteractions().length) {\r\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\r\n <ul class=\"flex flex-col gap-2\">\r\n @for (item of menuInteractions(); track item.id) {\r\n @if (item.data.type === 'button') {\r\n <li class=\"item-setting-button\">\r\n <button\r\n type=\"button\"\r\n class=\"dx-theme-material-typography flex h-12 w-full items-center gap-2 rounded p-4\"\r\n [class]=\"item.class\"\r\n (click)=\"item.data.onClick()\">\r\n <fa-icon class=\"basis-6\" [icon]=\"item.data.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ item.label }}</span>\r\n </button>\r\n </li>\r\n } @else if (item.data.type === 'select') {\r\n <li class=\"flex h-12 items-center gap-4 rounded bg-zinc-600/60 p-3 shadow\">\r\n <span class=\"truncate\">{{ item.label }}</span>\r\n <dx-select-box\r\n class=\"flex-1 basis-24\"\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n [items]=\"item.data.combos\"\r\n [value]=\"item.data.value\"\r\n stylingMode=\"underlined\"\r\n placeholder=\"\"\r\n (onValueChanged)=\"item.data.onValueChanged($event)\"></dx-select-box>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n\r\n <!-- setting -->\r\n <hr class=\"my-4 h-px border-0 bg-gray-600\" />\r\n <ul class=\"flex flex-col gap-2\">\r\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\r\n <fa-icon class=\"basis-6\" [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ 'lblDarkMode' | translate }}</span>\r\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\r\n </li>\r\n <li class=\"flex h-12 items-center gap-2 rounded bg-zinc-600/60 p-4 text-white shadow\">\r\n <fa-icon class=\"basis-6\" [icon]=\"ICON.LANGUAGE\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{ 'lblLanguage' | translate }}</span>\r\n <dx-select-box\r\n class=\"basis-20\"\r\n [items]=\"translateService.translateInfo().localesSupported\"\r\n [value]=\"translateService.translateInfo().locale\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"updateLocale($event)\"></dx-select-box>\r\n </li>\r\n <!-- User | null | undefined -->\r\n @if (user() !== undefined) {\r\n <li>\r\n <button\r\n class=\"flex w-full items-center gap-2 rounded border border-white p-4 text-white shadow transition duration-300 ease-in-out hover:bg-white hover:text-gray-800\"\r\n (click)=\"user() ? logout() : goToLogin()\">\r\n <fa-icon [icon]=\"user() ? ICON.LOGOUT : ICON.LOGIN\"></fa-icon>\r\n <span class=\"flex-1 truncate\">{{\r\n (user() ? 'lblLogout' : 'lblLogin') | translate\r\n }}</span>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n\r\n <!-- logo -->\r\n <div class=\"mt-auto flex content-end border-b border-white\">\r\n <img\r\n class=\"mb-1 ml-auto h-8\"\r\n [ngSrc]=\"pathUnitecLogo()\"\r\n alt=\"Brand logo\"\r\n [height]=\"32\"\r\n [width]=\"88\" />\r\n </div>\r\n</aside>\r\n", styles: [":host{position:fixed;top:0;right:0;z-index:999}\n", "*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-3{height:.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.w-3{width:.75rem}.w-\\[250px\\]{width:250px}.w-full{width:100%}.flex-1{flex:1 1 0%}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-6{flex-basis:1.5rem}.cursor-auto{cursor:auto}.flex-col{flex-direction:column}.content-end{align-content:flex-end}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-white{--tw-border-opacity: 1;border-color:rgb(255,255,255,var(--tw-border-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75,85,99,var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239,68,68,var(--tw-bg-opacity, 1))}.bg-zinc-600\\/60{background-color:#52525b99}.bg-zinc-800\\/60{background-color:#27272a99}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.uppercase{text-transform:uppercase}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255,255,255,var(--tw-text-opacity, 1))!important}.text-white{--tw-text-opacity: 1;color:rgb(255,255,255,var(--tw-text-opacity, 1))}.\\!opacity-25{opacity:.25!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255,255,255,var(--tw-bg-opacity, 1))}.hover\\:bg-zinc-600\\/60:hover{background-color:#52525b99}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31,41,55,var(--tw-text-opacity, 1))}\n"] }]
|
|
225
225
|
}] });
|
|
226
226
|
|
|
227
227
|
/*
|