@wrrdev/fenix-ui 1.0.16 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/_virtual/preload-helper.js +68 -0
- package/dist/_virtual/preload-helper.js.map +1 -0
- package/dist/assets/base-css-BifSeW2H.js +31 -0
- package/dist/assets/base-css-BifSeW2H.js.map +1 -0
- package/dist/components/alert/alert.d.ts +2 -1
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/alert.js +10 -2
- package/dist/components/alert/alert.js.map +1 -1
- package/dist/components/avatar/avatar.d.ts +21 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/avatar.js +91 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/index.d.ts +8 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/avatar/index.js +7 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +35 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.js +113 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +8 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/index.js +7 -0
- package/dist/components/breadcrumb/index.js.map +1 -0
- package/dist/components/card/card.d.ts +15 -0
- package/dist/components/card/card.d.ts.map +1 -0
- package/dist/components/card/card.js +80 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/index.d.ts +8 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +7 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/carousel/carousel.d.ts +28 -0
- package/dist/components/carousel/carousel.d.ts.map +1 -0
- package/dist/components/carousel/carousel.js +176 -0
- package/dist/components/carousel/carousel.js.map +1 -0
- package/dist/components/carousel/index.d.ts +8 -0
- package/dist/components/carousel/index.d.ts.map +1 -0
- package/dist/components/carousel/index.js +7 -0
- package/dist/components/carousel/index.js.map +1 -0
- package/dist/components/chip/chip.d.ts +19 -0
- package/dist/components/chip/chip.d.ts.map +1 -0
- package/dist/components/chip/chip.js +126 -0
- package/dist/components/chip/chip.js.map +1 -0
- package/dist/components/chip/index.d.ts +8 -0
- package/dist/components/chip/index.d.ts.map +1 -0
- package/dist/components/chip/index.js +7 -0
- package/dist/components/chip/index.js.map +1 -0
- package/dist/components/confirmpopup/confirmpopup.d.ts +44 -0
- package/dist/components/confirmpopup/confirmpopup.d.ts.map +1 -0
- package/dist/components/confirmpopup/confirmpopup.js +233 -0
- package/dist/components/confirmpopup/confirmpopup.js.map +1 -0
- package/dist/components/confirmpopup/index.d.ts +8 -0
- package/dist/components/confirmpopup/index.d.ts.map +1 -0
- package/dist/components/confirmpopup/index.js +7 -0
- package/dist/components/confirmpopup/index.js.map +1 -0
- package/dist/components/empty-state/empty-state.d.ts +14 -0
- package/dist/components/empty-state/empty-state.d.ts.map +1 -0
- package/dist/components/empty-state/empty-state.js +71 -0
- package/dist/components/empty-state/empty-state.js.map +1 -0
- package/dist/components/empty-state/index.d.ts +8 -0
- package/dist/components/empty-state/index.d.ts.map +1 -0
- package/dist/components/empty-state/index.js +7 -0
- package/dist/components/empty-state/index.js.map +1 -0
- package/dist/components/fileupload/fileupload.d.ts +42 -0
- package/dist/components/fileupload/fileupload.d.ts.map +1 -0
- package/dist/components/fileupload/fileupload.js +284 -0
- package/dist/components/fileupload/fileupload.js.map +1 -0
- package/dist/components/fileupload/index.d.ts +8 -0
- package/dist/components/fileupload/index.d.ts.map +1 -0
- package/dist/components/fileupload/index.js +7 -0
- package/dist/components/fileupload/index.js.map +1 -0
- package/dist/components/menu/index.d.ts +8 -0
- package/dist/components/menu/index.d.ts.map +1 -0
- package/dist/components/menu/index.js +7 -0
- package/dist/components/menu/index.js.map +1 -0
- package/dist/components/menu/menu.d.ts +23 -0
- package/dist/components/menu/menu.d.ts.map +1 -0
- package/dist/components/menu/menu.js +155 -0
- package/dist/components/menu/menu.js.map +1 -0
- package/dist/components/orderlist/orderlist.d.ts +1 -1
- package/dist/components/orderlist/orderlist.d.ts.map +1 -1
- package/dist/components/orderlist/orderlist.js +2 -2
- package/dist/components/orderlist/orderlist.js.map +1 -1
- package/dist/components/password-strength/index.d.ts +8 -0
- package/dist/components/password-strength/index.d.ts.map +1 -0
- package/dist/components/password-strength/index.js +7 -0
- package/dist/components/password-strength/index.js.map +1 -0
- package/dist/components/password-strength/password-strength.d.ts +23 -0
- package/dist/components/password-strength/password-strength.d.ts.map +1 -0
- package/dist/components/password-strength/password-strength.js +109 -0
- package/dist/components/password-strength/password-strength.js.map +1 -0
- package/dist/components/picklist/picklist.d.ts +1 -1
- package/dist/components/picklist/picklist.d.ts.map +1 -1
- package/dist/components/picklist/picklist.js +2 -2
- package/dist/components/picklist/picklist.js.map +1 -1
- package/dist/components/popover/index.d.ts +8 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/index.js +7 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.d.ts +39 -0
- package/dist/components/popover/popover.d.ts.map +1 -0
- package/dist/components/popover/popover.js +228 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/rating/index.d.ts +8 -0
- package/dist/components/rating/index.d.ts.map +1 -0
- package/dist/components/rating/index.js +7 -0
- package/dist/components/rating/index.js.map +1 -0
- package/dist/components/rating/rating.d.ts +25 -0
- package/dist/components/rating/rating.d.ts.map +1 -0
- package/dist/components/rating/rating.js +119 -0
- package/dist/components/rating/rating.js.map +1 -0
- package/dist/components/slider/index.d.ts +8 -0
- package/dist/components/slider/index.d.ts.map +1 -0
- package/dist/components/slider/index.js +7 -0
- package/dist/components/slider/index.js.map +1 -0
- package/dist/components/slider/slider.d.ts +33 -0
- package/dist/components/slider/slider.d.ts.map +1 -0
- package/dist/components/slider/slider.js +260 -0
- package/dist/components/slider/slider.js.map +1 -0
- package/dist/components/stepper/index.d.ts +8 -0
- package/dist/components/stepper/index.d.ts.map +1 -0
- package/dist/components/stepper/index.js +7 -0
- package/dist/components/stepper/index.js.map +1 -0
- package/dist/components/stepper/stepper.d.ts +33 -0
- package/dist/components/stepper/stepper.d.ts.map +1 -0
- package/dist/components/stepper/stepper.js +162 -0
- package/dist/components/stepper/stepper.js.map +1 -0
- package/dist/components/timeline/index.d.ts +8 -0
- package/dist/components/timeline/index.d.ts.map +1 -0
- package/dist/components/timeline/index.js +7 -0
- package/dist/components/timeline/index.js.map +1 -0
- package/dist/components/timeline/timeline.d.ts +30 -0
- package/dist/components/timeline/timeline.d.ts.map +1 -0
- package/dist/components/timeline/timeline.js +146 -0
- package/dist/components/timeline/timeline.js.map +1 -0
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/toast/toast.js +21 -2
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle-button-group/index.d.ts +8 -0
- package/dist/components/toggle-button-group/index.d.ts.map +1 -0
- package/dist/components/toggle-button-group/index.js +7 -0
- package/dist/components/toggle-button-group/index.js.map +1 -0
- package/dist/components/toggle-button-group/toggle-button-group.d.ts +21 -0
- package/dist/components/toggle-button-group/toggle-button-group.d.ts.map +1 -0
- package/dist/components/toggle-button-group/toggle-button-group.js +103 -0
- package/dist/components/toggle-button-group/toggle-button-group.js.map +1 -0
- package/dist/components/tree/index.d.ts +8 -0
- package/dist/components/tree/index.d.ts.map +1 -0
- package/dist/components/tree/index.js +7 -0
- package/dist/components/tree/index.js.map +1 -0
- package/dist/components/tree/tree.d.ts +34 -0
- package/dist/components/tree/tree.d.ts.map +1 -0
- package/dist/components/tree/tree.js +149 -0
- package/dist/components/tree/tree.js.map +1 -0
- package/dist/core/base.d.ts +1 -1
- package/dist/core/base.d.ts.map +1 -1
- package/dist/core/base.js +1 -1
- package/dist/core/base.js.map +1 -1
- package/dist/docs/app.d.ts.map +1 -1
- package/dist/docs/componentes/avatar.doc.d.ts +6 -0
- package/dist/docs/componentes/avatar.doc.d.ts.map +1 -0
- package/dist/docs/componentes/breadcrumb.doc.d.ts +6 -0
- package/dist/docs/componentes/breadcrumb.doc.d.ts.map +1 -0
- package/dist/docs/componentes/card.doc.d.ts +6 -0
- package/dist/docs/componentes/card.doc.d.ts.map +1 -0
- package/dist/docs/componentes/carousel.doc.d.ts +6 -0
- package/dist/docs/componentes/carousel.doc.d.ts.map +1 -0
- package/dist/docs/componentes/chip.doc.d.ts +6 -0
- package/dist/docs/componentes/chip.doc.d.ts.map +1 -0
- package/dist/docs/componentes/confirmpopup.doc.d.ts +6 -0
- package/dist/docs/componentes/confirmpopup.doc.d.ts.map +1 -0
- package/dist/docs/componentes/empty-state.doc.d.ts +6 -0
- package/dist/docs/componentes/empty-state.doc.d.ts.map +1 -0
- package/dist/docs/componentes/fileupload.doc.d.ts +6 -0
- package/dist/docs/componentes/fileupload.doc.d.ts.map +1 -0
- package/dist/docs/componentes/index.d.ts.map +1 -1
- package/dist/docs/componentes/menu.doc.d.ts +6 -0
- package/dist/docs/componentes/menu.doc.d.ts.map +1 -0
- package/dist/docs/componentes/password-strength.doc.d.ts +6 -0
- package/dist/docs/componentes/password-strength.doc.d.ts.map +1 -0
- package/dist/docs/componentes/popover.doc.d.ts +6 -0
- package/dist/docs/componentes/popover.doc.d.ts.map +1 -0
- package/dist/docs/componentes/rating.doc.d.ts +6 -0
- package/dist/docs/componentes/rating.doc.d.ts.map +1 -0
- package/dist/docs/componentes/slider.doc.d.ts +6 -0
- package/dist/docs/componentes/slider.doc.d.ts.map +1 -0
- package/dist/docs/componentes/stepper.doc.d.ts +6 -0
- package/dist/docs/componentes/stepper.doc.d.ts.map +1 -0
- package/dist/docs/componentes/timeline.doc.d.ts +6 -0
- package/dist/docs/componentes/timeline.doc.d.ts.map +1 -0
- package/dist/docs/componentes/toggle-button-group.doc.d.ts +6 -0
- package/dist/docs/componentes/toggle-button-group.doc.d.ts.map +1 -0
- package/dist/docs/componentes/tree.doc.d.ts +6 -0
- package/dist/docs/componentes/tree.doc.d.ts.map +1 -0
- package/dist/fenix-icons.woff2 +0 -0
- package/dist/fenix-ui.umd.min.js +1317 -160
- package/dist/fenix-ui2.esm.js +4317 -7816
- package/dist/fenix-ui2.esm.js.map +1 -1
- package/dist/fenix-ui3.esm.js +10396 -84
- package/dist/fenix-ui3.esm.js.map +1 -1
- package/dist/fenix-ui4.esm.js +110 -0
- package/dist/fenix-ui4.esm.js.map +1 -0
- package/dist/icons/base-css.d.ts +21 -0
- package/dist/icons/base-css.d.ts.map +1 -0
- package/dist/icons/base-css.js +32 -0
- package/dist/icons/base-css.js.map +1 -0
- package/dist/icons/fenix-icons.woff2 +0 -0
- package/dist/icons/index.d.ts +31 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +47 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/names.d.ts +11 -0
- package/dist/icons/names.d.ts.map +1 -0
- package/dist/icons/names.js +4283 -0
- package/dist/icons/names.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/auto-import.d.ts +2 -0
- package/dist/plugins/auto-import.d.ts.map +1 -1
- package/dist/plugins/auto-import.js +23 -0
- package/dist/plugins/auto-import.js.map +1 -1
- package/package.json +74 -1
package/dist/fenix-ui.umd.min.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(z){typeof define=="function"&&define.amd?define(z):z()})(function(){"use strict";var Nt=z=>{throw TypeError(z)};var ea=(z,k,m)=>k.has(z)||Nt("Cannot "+m);var jt=(z,k,m)=>k.has(z)?Nt("Cannot add the same private member more than once"):k instanceof WeakSet?k.add(z):k.set(z,m);var It=(z,k,m)=>(ea(z,k,"access private method"),m);var D,Ft;const z=new Map;function k(d){return z.set(d.name,d),d}k({name:"fenix",label:"Fenix (padrão)",tokens:{}}),k({name:"seiya",label:"Seiya",tokens:{color:{primary:"#e11d48",secondary:"#fb7185",info:"#f43f5e",danger:"#be123c"},radius:{sm:"6px",md:"10px",lg:"16px"},effect:{"focus-ring":"none"}}}),k({name:"shiryu",label:"Shiryu",tokens:{color:{primary:"#0d9488",secondary:"#2dd4bf",success:"#059669",info:"#14b8a6"},radius:{sm:"4px",md:"8px",lg:"14px"},effect:{"focus-ring":"none"}}}),k({name:"hyoga",label:"Hyoga",tokens:{color:{primary:"#0284c7",secondary:"#38bdf8",info:"#06b6d4",danger:"#e11d48"},surface:{surface:"#f0f9ff","surface-hover":"#e0f2fe"},radius:{sm:"8px",md:"12px",lg:"18px"}}}),k({name:"shun",label:"Shun",tokens:{color:{primary:"#db2777",secondary:"#f472b6",info:"#ec4899",warning:"#c026d3"},radius:{sm:"10px",md:"14px",lg:"20px"}}}),k({name:"ikki",label:"Ikki",tokens:{color:{primary:"#ea580c",secondary:"#fb923c",danger:"#dc2626",warning:"#f59e0b"},radius:{sm:"2px",md:"4px",lg:"6px"}}}),k({name:"aiolia",label:"Aiolia",tokens:{color:{primary:"#b45309",secondary:"#f59e0b",warning:"#eab308",info:"#84cc16"},radius:{sm:"6px",md:"12px",lg:"20px"},effect:{"focus-ring":"none"}}});function m(d,...e){return d.reduce((t,r,a)=>t+r+(a<e.length?String(e[a]):""),"")}const qe=class qe extends HTMLElement{static get observedAttributes(){return[]}constructor(){super(),this.root=this.attachShadow({mode:"open"})}attributeChangedCallback(e,t,r){this.isConnected&&this.render()}connectedCallback(){this.render()}disconnectedCallback(){}hasAttr(e){return this.hasAttribute(e)}getAttr(e,t=""){var r;return(r=this.getAttribute(e))!=null?r:t}toggleAttr(e,t){t?this.setAttribute(e,""):this.removeAttribute(e)}setTemplate(e){const t=this.constructor.styles;this.root.innerHTML=`<style>${t}</style>${e}`}};qe.styles="";let g=qe;function b(d,e){var t;return typeof customElements!="undefined"&&!customElements.get(d)&&customElements.define(d,e),(t=customElements.get(d))!=null?t:e}const Pt={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="},Vt=/[&<>"'`=/]/g;function c(d){return d==null?"":String(d).replace(Vt,e=>Pt[e]||e)}const De=class De extends g{constructor(){super(...arguments),this.spawnRipple=e=>{if(this.hasAttr("disabled")||this.hasAttr("loading"))return;const t=getComputedStyle(this).getPropertyValue("--fx-effect-ripple").trim();if(t==="0"||t==="false")return;const r=this.root.querySelector(".btn");if(!r)return;const a=r.getBoundingClientRect(),i=Math.max(a.width,a.height),o=document.createElement("span");o.className="btn__ripple",o.style.width=o.style.height=`${i}px`,o.style.left=`${e.clientX-a.left-i/2}px`,o.style.top=`${e.clientY-a.top-i/2}px`,r.appendChild(o),o.addEventListener("animationend",()=>o.remove())}}static get observedAttributes(){return["variant","size","disabled","loading","type","full"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get loading(){return this.hasAttr("loading")}set loading(e){this.toggleAttr("loading",!!e)}render(){const e=this.hasAttr("loading"),t=this.hasAttr("disabled")||e,r=this.getAttr("type","button");this.setTemplate(`
|
|
2
2
|
<button class="btn" part="button" type="${r}">
|
|
3
3
|
<span class="btn__icon" part="icon"><slot name="icon"></slot></span>
|
|
4
4
|
<span class="btn__label" part="label"><slot></slot></span>
|
|
5
|
-
${
|
|
5
|
+
${e?'<span class="btn__spinner" aria-hidden="true"></span>':""}
|
|
6
6
|
</button>
|
|
7
|
-
`);const
|
|
7
|
+
`);const a=this.root.querySelector(".btn");if(!a)return;const i=a.querySelector(".btn__icon slot"),o=this.root.querySelector(".btn__icon"),s=!!(i!=null&&i.assignedNodes({flatten:!0}).some(n=>{var l;return n.nodeType===Node.ELEMENT_NODE||((l=n.textContent)!=null?l:"").trim()!==""}));o==null||o.toggleAttribute("hidden",!s),t?(a.setAttribute("disabled",""),a.setAttribute("aria-disabled","true")):(a.removeAttribute("disabled"),a.removeAttribute("aria-disabled")),e?a.setAttribute("aria-busy","true"):a.removeAttribute("aria-busy")}connectedCallback(){super.connectedCallback(),this.addEventListener("pointerdown",this.spawnRipple)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("pointerdown",this.spawnRipple)}};De.styles=m`
|
|
8
8
|
:host {
|
|
9
9
|
display: inline-block;
|
|
10
10
|
vertical-align: middle;
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
@media (prefers-reduced-motion: reduce) {
|
|
106
106
|
.btn__ripple { display: none; }
|
|
107
107
|
}
|
|
108
|
-
`;let
|
|
108
|
+
`;let M=De;function Rt(){return b("fx-button",M)}Rt();const Me=class Me extends g{static get observedAttributes(){return["variant","round"]}render(){this.setTemplate('<span class="badge" part="badge"><slot></slot></span>')}};Me.styles=m`
|
|
109
109
|
:host {
|
|
110
110
|
display: inline-flex;
|
|
111
111
|
vertical-align: middle;
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
:host([variant='danger']) .badge { background: var(--fx-color-danger); color: #fff; border-color: transparent; }
|
|
131
131
|
:host([variant='info']) .badge { background: var(--fx-color-info); color: #fff; border-color: transparent; }
|
|
132
132
|
:host(:not([round])) .badge { border-radius: var(--fx-radius-sm); }
|
|
133
|
-
`;let
|
|
133
|
+
`;let N=Me;function Bt(){return b("fx-badge",N)}Bt();const Ne=class Ne extends g{static get observedAttributes(){return["size"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}render(){this.setTemplate('<span class="spinner" part="spinner" role="status" aria-label="Carregando"></span>')}};Ne.styles=m`
|
|
134
134
|
:host {
|
|
135
135
|
display: inline-block;
|
|
136
136
|
vertical-align: middle;
|
|
@@ -151,22 +151,22 @@
|
|
|
151
151
|
@media (prefers-reduced-motion: reduce) {
|
|
152
152
|
.spinner { animation-duration: 2.5s; }
|
|
153
153
|
}
|
|
154
|
-
`;let
|
|
155
|
-
<span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${
|
|
156
|
-
<span class="${n?"label":"placeholder"}">${
|
|
154
|
+
`;let j=Ne;function Ot(){return b("fx-spinner",j)}Ot();const je=class je extends g{static get observedAttributes(){return["size","disabled","placeholder","searchable","clearable","error","success"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get options(){return[...this.querySelectorAll("option")].map(e=>{var t,r,a,i,o;return{value:(a=(r=e.getAttribute("value"))!=null?r:(t=e.textContent)==null?void 0:t.trim())!=null?a:"",label:(o=(i=e.textContent)==null?void 0:i.trim())!=null?o:""}})}connectedCallback(){super.connectedCallback(),this.observer=new MutationObserver(()=>this.render()),this.observer.observe(this,{childList:!0,subtree:!0,characterData:!0}),this.docListener=e=>{this.hasAttr("open")&&(e.composedPath().includes(this)||(this.removeAttribute("open"),this.render()))},document.addEventListener("click",this.docListener)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.observer)==null||e.disconnect(),this.docListener&&document.removeEventListener("click",this.docListener)}select(e){this.value=e,this.removeAttribute("open"),this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:e}}))}_navigateOptions(e){var i;e.preventDefault(),this.hasAttr("open")||(this.toggleAttribute("open"),this.render());const t=Array.from(this.root.querySelectorAll(".opt"));if(!t.length)return;const r=t.indexOf(this.root.activeElement);let a=0;e.key==="ArrowDown"?a=r===-1?0:Math.min(r+1,t.length-1):e.key==="ArrowUp"?a=r===-1?t.length-1:Math.max(r-1,0):e.key==="Home"?a=0:e.key==="End"&&(a=t.length-1),(i=t[a])==null||i.focus()}render(){var p,v,f,x,w,S,A;const e=this.hasAttr("open"),t=this.root.querySelector(".search"),r=(p=t==null?void 0:t.value)!=null?p:"",a=t!=null&&this.root.activeElement===t,i=a?t.selectionStart:null,o=this.options;let s=this.getAttr("value");if(!s){const y=this.querySelector("option[selected]");s=(x=(f=y==null?void 0:y.getAttribute("value"))!=null?f:(v=y==null?void 0:y.textContent)==null?void 0:v.trim())!=null?x:""}const n=(S=(w=o.find(y=>y.value===s))==null?void 0:w.label)!=null?S:"",l=this.getAttr("placeholder","Selecione…"),h=r?o.filter(y=>y.label.toLowerCase().includes(r.toLowerCase())):o;this.setTemplate(`
|
|
155
|
+
<span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${e}">
|
|
156
|
+
<span class="${n?"label":"placeholder"}">${c(n)||c(l)}</span>
|
|
157
157
|
<span class="actions">
|
|
158
|
-
${this.hasAttr("clearable")&&
|
|
158
|
+
${this.hasAttr("clearable")&&s?'<button type="button" class="clear" part="clear" aria-label="Limpar">×</button>':""}
|
|
159
159
|
<span class="caret">▼</span>
|
|
160
160
|
</span>
|
|
161
161
|
</span>
|
|
162
162
|
<div class="panel" part="panel" role="listbox">
|
|
163
|
-
${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${
|
|
164
|
-
${h.map(
|
|
165
|
-
<button type="button" class="opt" role="option" data-value="${
|
|
166
|
-
aria-selected="${
|
|
167
|
-
${h.length===0?`<div class="empty">${
|
|
163
|
+
${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${c(this.getAttr("search-placeholder","Pesquisar…"))}">`:""}
|
|
164
|
+
${h.map(y=>`
|
|
165
|
+
<button type="button" class="opt" role="option" data-value="${c(y.value)}"
|
|
166
|
+
aria-selected="${y.value===s}">${c(y.label)}</button>`).join("")}
|
|
167
|
+
${h.length===0?`<div class="empty">${c(this.getAttr("no-results","Nenhum resultado"))}</div>`:""}
|
|
168
168
|
</div>
|
|
169
|
-
`),
|
|
169
|
+
`),e&&this.setAttribute("open","");const _=this.root.querySelector(".search");if(_&&(_.value=r,_.addEventListener("input",()=>this.render()),_.addEventListener("click",y=>y.stopPropagation()),a)){_.focus();try{_.setSelectionRange(i,i)}catch(y){}}const u=this.root.querySelector(".trigger");u&&(this.disabled&&u.setAttribute("aria-disabled","true"),u.addEventListener("click",y=>{var C;this.disabled||y.target.closest(".clear")||(this.toggleAttribute("open"),this.render(),(C=this.root.querySelector(".search"))==null||C.focus())}),u.addEventListener("keydown",y=>{var C;if(!this.disabled){if(y.key==="Enter"||y.key===" "){y.preventDefault(),u.click();return}if(y.key==="Escape"){this.hasAttr("open")&&(this.removeAttribute("open"),this.render(),(C=this.root.querySelector(".trigger"))==null||C.focus());return}(y.key==="ArrowDown"||y.key==="ArrowUp"||y.key==="Home"||y.key==="End")&&this._navigateOptions(y)}}),(A=this.root.querySelector(".clear"))==null||A.addEventListener("click",y=>{y.stopPropagation(),this.value="",this.removeAttribute("open"),this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:""}}))}),this.root.querySelectorAll(".opt").forEach(y=>{y.addEventListener("click",()=>this.select(y.dataset.value))}))}};je.styles=m`
|
|
170
170
|
:host {
|
|
171
171
|
display: inline-block;
|
|
172
172
|
vertical-align: middle;
|
|
@@ -308,14 +308,14 @@
|
|
|
308
308
|
}
|
|
309
309
|
.clear:hover { color: var(--fx-color-danger); }
|
|
310
310
|
.clear[hidden] { display: none; }
|
|
311
|
-
`;let I=
|
|
311
|
+
`;let I=je;function Kt(){return b("fx-select",I)}Kt();const Ie=class Ie extends g{static get observedAttributes(){return["type","size","placeholder","disabled","readonly","min","max","step"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}render(){const e=this.getAttr("type","text"),t=this.getAttr("placeholder"),r=this.hasAttr("readonly"),a=this.hasAttr("disabled"),i=this.getAttr("min"),o=this.getAttr("max"),s=this.getAttr("step");this.setTemplate(`
|
|
312
312
|
${this.hasAttr("clearable")?'<div class="wrap">':""}
|
|
313
|
-
<input class="field" part="input" type="${
|
|
314
|
-
${
|
|
315
|
-
${i?`min="${
|
|
313
|
+
<input class="field" part="input" type="${c(e)}"
|
|
314
|
+
${t?`placeholder="${c(t)}"`:""}
|
|
315
|
+
${i?`min="${c(i)}"`:""} ${o?`max="${c(o)}"`:""} ${s?`step="${c(s)}"`:""}
|
|
316
316
|
/>
|
|
317
317
|
${this.hasAttr("clearable")?'<button type="button" class="clear" part="clear" aria-label="Limpar" tabindex="-1">×</button></div>':""}
|
|
318
|
-
`);const n=this.root.querySelector(".field");if(!n)return;n.value=this.getAttr("value"),
|
|
318
|
+
`);const n=this.root.querySelector(".field");if(!n)return;n.value=this.getAttr("value"),a&&n.setAttribute("disabled",""),r&&n.setAttribute("readonly","");const l=u=>{this.value=n.value,this.dispatchEvent(new CustomEvent(u,{bubbles:!0,composed:!0,detail:{value:n.value}}))};n.addEventListener("input",u=>{u.stopPropagation(),l("input")}),n.addEventListener("change",u=>{u.stopPropagation(),l("change")});const h=this.root.querySelector(".clear"),_=()=>{h==null||h.toggleAttribute("hidden",n.value==="")};_(),h==null||h.addEventListener("click",()=>{n.value="",_(),l("input"),l("change"),n.focus()}),n.addEventListener("input",_)}};Ie.styles=m`
|
|
319
319
|
:host {
|
|
320
320
|
display: inline-block;
|
|
321
321
|
vertical-align: middle;
|
|
@@ -386,13 +386,13 @@
|
|
|
386
386
|
}
|
|
387
387
|
.clear:hover { color: var(--fx-color-danger); }
|
|
388
388
|
.clear[hidden] { display: none; }
|
|
389
|
-
`;let
|
|
389
|
+
`;let F=Ie;function Ht(){return b("fx-input",F)}Ht();const Fe=class Fe extends g{static get observedAttributes(){return["checked","disabled","size"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get checked(){return this.hasAttr("checked")}set checked(e){this.toggleAttr("checked",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}render(){this.setTemplate(`
|
|
390
390
|
<button class="switch" part="switch" type="button" role="switch"
|
|
391
391
|
aria-checked="${this.checked}" ${this.hasAttr("disabled")?"disabled":""}>
|
|
392
392
|
<span class="track" part="track"><span class="thumb" part="thumb"></span></span>
|
|
393
393
|
<span class="label" part="label"><slot></slot></span>
|
|
394
394
|
</button>
|
|
395
|
-
`);const
|
|
395
|
+
`);const e=this.root.querySelector(".switch");e&&e.addEventListener("click",()=>{this.hasAttr("disabled")||(this.checked=!this.checked,e.setAttribute("aria-checked",String(this.checked)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.checked}})))})}};Fe.styles=m`
|
|
396
396
|
:host {
|
|
397
397
|
display: inline-flex;
|
|
398
398
|
vertical-align: middle;
|
|
@@ -446,36 +446,36 @@
|
|
|
446
446
|
:host([size='lg']) .track { width: 48px; height: 26px; }
|
|
447
447
|
:host([size='lg']) .thumb { top: 4px; left: 4px; width: 18px; height: 18px; }
|
|
448
448
|
:host([size='lg'][checked]) .thumb { transform: translateX(22px); }
|
|
449
|
-
`;let
|
|
450
|
-
<span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${
|
|
449
|
+
`;let P=Fe;function Yt(){return b("fx-switch",P)}Yt();const Pe=class Pe extends g{constructor(){super(...arguments),this.selected=new Set}static get observedAttributes(){return["disabled","placeholder"]}get values(){const e=this.getAttr("values");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set values(e){this.setAttribute("values",e.join(","))}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get options(){return[...this.querySelectorAll("option")].map(e=>{var t,r,a,i,o;return{value:(a=(r=e.getAttribute("value"))!=null?r:(t=e.textContent)==null?void 0:t.trim())!=null?a:"",label:(o=(i=e.textContent)==null?void 0:i.trim())!=null?o:""}})}connectedCallback(){this.selected=new Set(this.values),super.connectedCallback(),this.observer=new MutationObserver(()=>this.render()),this.observer.observe(this,{childList:!0,subtree:!0,characterData:!0}),this.docListener=e=>{this.hasAttr("open")&&(e.composedPath().includes(this)||(this.removeAttribute("open"),this.render()))},document.addEventListener("click",this.docListener)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.observer)==null||e.disconnect(),this.docListener&&document.removeEventListener("click",this.docListener)}commit(){this.values=[...this.selected],this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{values:[...this.selected]}}))}toggleValue(e){this.selected.has(e)?this.selected.delete(e):this.selected.add(e),this.commit()}_navigateOptions(e){var i;e.preventDefault(),this.hasAttr("open")||(this.toggleAttribute("open"),this.render());const t=Array.from(this.root.querySelectorAll(".opt"));if(!t.length)return;const r=t.indexOf(this.root.activeElement);let a=0;e.key==="ArrowDown"?a=r===-1?0:Math.min(r+1,t.length-1):e.key==="ArrowUp"?a=r===-1?t.length-1:Math.max(r-1,0):e.key==="Home"?a=0:e.key==="End"&&(a=t.length-1),(i=t[a])==null||i.focus()}render(){var l,h,_,u;const e=this.hasAttr("open"),t=(h=(l=this.root.querySelector(".search"))==null?void 0:l.value)!=null?h:"",r=this.options;for(const p of[...this.selected])r.some(v=>v.value===p)||this.selected.delete(p);const a=r.filter(p=>this.selected.has(p.value)),i=this.getAttr("placeholder","Selecione…"),o=t?r.filter(p=>p.label.toLowerCase().includes(t.toLowerCase())):r;this.setTemplate(`
|
|
450
|
+
<span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${e}" aria-disabled="${this.disabled}">
|
|
451
451
|
<span class="lead">
|
|
452
|
-
${
|
|
453
|
-
<span class="chip" data-value="${
|
|
454
|
-
${
|
|
455
|
-
<span class="chip__x" role="button" aria-label="Remover ${
|
|
456
|
-
</span>`).join(""):`<span class="placeholder">${
|
|
452
|
+
${a.length?a.map(p=>`
|
|
453
|
+
<span class="chip" data-value="${c(p.value)}">
|
|
454
|
+
${c(p.label)}
|
|
455
|
+
<span class="chip__x" role="button" aria-label="Remover ${c(p.label)}">×</span>
|
|
456
|
+
</span>`).join(""):`<span class="placeholder">${c(i)}</span>`}
|
|
457
457
|
</span>
|
|
458
458
|
<span class="trigger-right">
|
|
459
|
-
${this.hasAttr("clearable")&&
|
|
459
|
+
${this.hasAttr("clearable")&&a.length?'<button type="button" class="icon-btn clear" part="clear" aria-label="Limpar seleção">×</button>':""}
|
|
460
460
|
<span class="caret">▼</span>
|
|
461
461
|
</span>
|
|
462
462
|
</span>
|
|
463
463
|
<div class="panel" part="panel" role="listbox" aria-multiselectable="true">
|
|
464
464
|
<div class="panel-header">
|
|
465
|
-
<span class="count">${
|
|
466
|
-
${this.hasAttr("clearable")&&
|
|
465
|
+
<span class="count">${a.length} selecionado${a.length===1?"":"s"}</span>
|
|
466
|
+
${this.hasAttr("clearable")&&a.length?'<button type="button" class="clear-all">Limpar tudo</button>':""}
|
|
467
467
|
</div>
|
|
468
|
-
${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${
|
|
468
|
+
${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${c(this.getAttr("search-placeholder","Pesquisar…"))}">`:""}
|
|
469
469
|
<ul class="list">
|
|
470
|
-
${
|
|
471
|
-
<li><button type="button" class="opt" role="option" data-value="${
|
|
472
|
-
aria-selected="${this.selected.has(
|
|
473
|
-
<span class="box" aria-hidden="true"></span>${
|
|
470
|
+
${o.map(p=>`
|
|
471
|
+
<li><button type="button" class="opt" role="option" data-value="${c(p.value)}"
|
|
472
|
+
aria-selected="${this.selected.has(p.value)}">
|
|
473
|
+
<span class="box" aria-hidden="true"></span>${c(p.label)}
|
|
474
474
|
</button></li>`).join("")}
|
|
475
|
-
${
|
|
475
|
+
${o.length===0?`<li class="empty">${c(this.getAttr("no-results","Nenhum resultado"))}</li>`:""}
|
|
476
476
|
</ul>
|
|
477
477
|
</div>
|
|
478
|
-
`),
|
|
478
|
+
`),e&&this.setAttribute("open","");const s=this.root.querySelector(".search");s&&(s.value=t,s.addEventListener("input",()=>{var f;const p=(f=s.selectionStart)!=null?f:s.value.length;this.render();const v=this.root.querySelector(".search");v&&(v.focus(),v.setSelectionRange(p,p))}),s.addEventListener("click",p=>p.stopPropagation()));const n=this.root.querySelector(".trigger");n&&(n.addEventListener("click",p=>{if(!this.disabled&&!p.target.closest(".clear")&&!p.target.closest(".chip__x")){if(this.toggleAttribute("open"),this.hasAttr("open")){const v=this.getBoundingClientRect();this.toggleAttribute("up",v.bottom+300>window.innerHeight&&v.top>300)}else this.removeAttribute("up");this.render()}}),n.addEventListener("keydown",p=>{var v;if(!this.disabled){if(p.key==="Enter"||p.key===" "){p.preventDefault(),n.dispatchEvent(new MouseEvent("click",{bubbles:!0}));return}if(p.key==="Escape"){this.hasAttr("open")&&(this.removeAttribute("open"),this.render(),(v=this.root.querySelector(".trigger"))==null||v.focus());return}(p.key==="ArrowDown"||p.key==="ArrowUp"||p.key==="Home"||p.key==="End")&&this._navigateOptions(p)}}),(_=this.root.querySelector(".clear"))==null||_.addEventListener("click",p=>{p.stopPropagation(),this.selected.clear(),this.commit()}),(u=this.root.querySelector(".clear-all"))==null||u.addEventListener("click",p=>{p.stopPropagation(),this.selected.clear(),this.commit()}),this.root.querySelectorAll(".chip").forEach(p=>{var v;(v=p.querySelector(".chip__x"))==null||v.addEventListener("click",f=>{f.stopPropagation(),this.toggleValue(p.dataset.value)})}),this.root.querySelectorAll(".opt").forEach(p=>{p.addEventListener("click",()=>this.toggleValue(p.dataset.value))}))}};Pe.styles=m`
|
|
479
479
|
:host {
|
|
480
480
|
display: inline-block;
|
|
481
481
|
vertical-align: middle;
|
|
@@ -690,14 +690,14 @@
|
|
|
690
690
|
.opt[aria-selected='true'] .box::after { content: '✓'; }
|
|
691
691
|
.empty { padding: var(--fx-space-md); color: var(--fx-text-muted); text-align: center; }
|
|
692
692
|
:host([disabled]) .trigger { opacity: 0.55; cursor: not-allowed; background: var(--fx-surface-surface-hover); }
|
|
693
|
-
`;let
|
|
693
|
+
`;let V=Pe;function Xt(){return b("fx-multiselect",V)}Xt();const $=(d,e,t)=>d*1e4+e*100+t;function E(d){const e=/^(\d{4})(?:-(\d{2}))?(?:-(\d{2}))?$/.exec(d.trim());if(!e)return null;const t=+e[1],r=e[2]?+e[2]:1,a=e[3]?+e[3]:null;return a!==null?{lo:$(t,r,a),hi:$(t,r,a)}:e[2]?{lo:$(t,r,1),hi:$(t,r,31)}:{lo:$(t,1,1),hi:$(t,12,31)}}const Ve=class Ve extends g{constructor(){super(...arguments),this.view="days",this.cursor={y:new Date().getFullYear(),m:new Date().getMonth()},this.pickStart=null,this.pickEnd=null}static get observedAttributes(){return["value","start","end","min","max","range","mode","values","locale","disabled"]}get mode(){const e=this.getAttr("mode");return e==="range"||e==="multiple"?e:this.hasAttr("range")?"range":"single"}set mode(e){this.setAttribute("mode",e)}get range(){return this.mode==="range"}set range(e){this.toggleAttr("range",!!e)}get values(){const e=this.getAttr("values");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set values(e){this.setAttribute("values",e.join(","))}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}bounds(){return{min:E(this.getAttr("min","")),max:E(this.getAttr("max",""))}}locale(){return this.getAttr("locale","pt-BR")}fmt(e,t){try{return new Intl.DateTimeFormat(this.locale(),e).format(t)}catch(r){return new Intl.DateTimeFormat("pt-BR",e).format(t)}}dayDisabled(e,t,r){const{min:a,max:i}=this.bounds(),o=$(e,t+1,r);return a!==null&&o<a.lo||i!==null&&o>i.hi}monthDisabled(e,t){const{min:r,max:a}=this.bounds(),i=$(e,t,1),o=$(e,t,31);return r!==null&&o<r.lo||a!==null&&i>a.hi}yearDisabled(e){const{min:t,max:r}=this.bounds(),a=$(e,1,1),i=$(e,12,31);return t!==null&&i<t.lo||r!==null&&a>r.hi}dayKeyOf(e){return $(e.getFullYear(),e.getMonth()+1,e.getDate())}keyToDate(e){return new Date(Math.floor(e/1e4),Math.floor(e/100)%100-1,e%100)}iso(e){const t=this.keyToDate(e),r=a=>String(a).padStart(2,"0");return`${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())}`}selection(){const e=new Set(this.values.map(r=>{var a,i;return(i=(a=E(r))==null?void 0:a.lo)!=null?i:0}).filter(Boolean));if(this.mode==="range"){let r=this.pickStart,a=this.pickEnd;const i=E(this.getAttr("start","")),o=E(this.getAttr("end",""));return r===null&&i&&(r=i.lo),a===null&&o&&(a=o.lo),{start:r,end:a,single:null,multi:e}}if(this.mode==="multiple")return{start:null,end:null,single:null,multi:e};const t=E(this.getAttr("value",""));return{start:null,end:null,single:t?t.lo:null,multi:e}}emit(){if(this.mode==="range"){const e={start:this.pickStart!==null?this.iso(this.pickStart):this.getAttr("start",""),end:this.pickEnd!==null?this.iso(this.pickEnd):this.getAttr("end","")};this.setAttribute("start",e.start),this.setAttribute("end",e.end),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:e}))}else if(this.mode==="multiple"){const e=this.values;this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{values:e}}))}else{const e=this.getAttr("value");this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:e}}))}}pickDay(e){if(this.mode==="range"){if(this.pickStart===null||this.pickEnd!==null){this.pickStart=e,this.pickEnd=null,this.setAttribute("start",this.iso(e)),this.removeAttribute("end"),this.render();return}e<this.pickStart?[this.pickStart,this.pickEnd]=[e,this.pickStart]:this.pickEnd=e,this.emit()}else if(this.mode==="multiple"){const t=new Set(this.values),r=this.iso(e);t.has(r)?t.delete(r):t.add(r),this.values=[...t].sort(),this.emit()}else this.value=this.iso(e),this.emit();this.render()}navigate(e){if(this.view==="days"){const t=new Date(this.cursor.y,this.cursor.m+e,1);this.cursor={y:t.getFullYear(),m:t.getMonth()}}else this.view==="months"?this.cursor.y+=e:this.cursor.y+=e*12;this.render()}render(){const e=this.dayKeyOf(new Date),t=this.selection(),r=this.locale(),a={days:this.fmt({month:"long",year:"numeric"},new Date(this.cursor.y,this.cursor.m,1)),months:String(this.cursor.y),years:`${Math.floor(this.cursor.y/12)*12} – ${Math.floor(this.cursor.y/12)*12+11}`};let i="";if(this.view==="days")i=[...Array(7)].map((l,h)=>this.fmt({weekday:"short"},new Date(2024,8,1+h))).map(l=>`<span class="wd">${l}</span>`).join("")+this.daysHtml(e,t,r);else if(this.view==="months")i=[...Array(12)].map((n,l)=>{const h=this.monthDisabled(this.cursor.y,l+1);return`<button type="button" class="cell" data-month="${l}" ${h?"disabled":""}>${this.fmt({month:"short"},new Date(this.cursor.y,l,1))}</button>`}).join("");else{const n=Math.floor(this.cursor.y/12)*12;i=[...Array(12)].map((l,h)=>{const _=n+h,u=this.yearDisabled(_);return`<button type="button" class="cell" data-year="${_}" ${u?"disabled":""}>${_}</button>`}).join("")}const o=this.view==="days"?'data-goto="months"':this.view==="months"?'data-goto="years"':"";this.setTemplate(`
|
|
694
694
|
<div class="head">
|
|
695
695
|
<button type="button" class="nav" data-nav="-1" aria-label="Anterior">‹</button>
|
|
696
|
-
<button type="button" class="title" part="title" ${
|
|
696
|
+
<button type="button" class="title" part="title" ${o}>${a[this.view]}</button>
|
|
697
697
|
<button type="button" class="nav" data-nav="1" aria-label="Próximo">›</button>
|
|
698
698
|
</div>
|
|
699
699
|
<div class="grid ${this.view}">${i}</div>
|
|
700
|
-
`),this.root.querySelectorAll("[data-nav]").forEach(n=>n.addEventListener("click",()=>this.navigate(Number(n.dataset.nav))));const
|
|
700
|
+
`),this.root.querySelectorAll("[data-nav]").forEach(n=>n.addEventListener("click",()=>this.navigate(Number(n.dataset.nav))));const s=this.root.querySelector("[data-goto]");s==null||s.addEventListener("click",()=>{this.view=s.dataset.goto,this.render()}),this.root.querySelectorAll("[data-day]").forEach(n=>n.addEventListener("click",()=>this.pickDay(Number(n.dataset.day)))),this.root.querySelectorAll("[data-month]").forEach(n=>n.addEventListener("click",()=>{this.cursor.m=Number(n.dataset.month),this.view="days",this.render()})),this.root.querySelectorAll("[data-year]").forEach(n=>n.addEventListener("click",()=>{this.cursor.y=Number(n.dataset.year),this.view="months",this.render()}))}daysHtml(e,t,r){const{y:a,m:i}=this.cursor,o=new Date(a,i,1).getDay(),s=new Date(a,i+1,0).getDate(),n=new Date(a,i,0).getDate();let l="";for(let h=o-1;h>=0;h--)l+=`<span class="cell muted">${n-h}</span>`;for(let h=1;h<=s;h++){const _=$(a,i+1,h),u=t.single===_||t.start===_||t.end===_||t.multi.has(_),p=t.start!==null&&t.end!==null&&_>t.start&&_<t.end,v=["cell",u?"sel":"",p?"in-range":"",_===e?"today":""].filter(Boolean).join(" ");l+=`<button type="button" class="${v}" data-day="${_}" ${this.dayDisabled(a,i,h)?"disabled":""}>${h}</button>`}return l}};Ve.styles=m`
|
|
701
701
|
:host {
|
|
702
702
|
display: inline-block;
|
|
703
703
|
font-family: var(--fx-font-family);
|
|
@@ -827,13 +827,13 @@
|
|
|
827
827
|
cursor: not-allowed;
|
|
828
828
|
pointer-events: none;
|
|
829
829
|
}
|
|
830
|
-
`;let
|
|
830
|
+
`;let R=Ve;function Ut(){return b("fx-calendar",R)}Ut();const Re=class Re extends g{constructor(){super(...arguments),this.time={h:0,m:0,s:0}}static get observedAttributes(){return["value","start","end","values","mode","min","max","placeholder","disabled","format","show-time","free-text"]}get mode(){const e=this.getAttr("mode","single");return["single","range","multiple"].includes(e)?e:"single"}set mode(e){this.setAttribute("mode",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get values(){const e=this.getAttr("values");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set values(e){this.setAttribute("values",e.join(","))}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}connectedCallback(){super.connectedCallback(),this.docListener=e=>{this.hasAttr("open")&&(e.composedPath().includes(this)||this.removeAttribute("open"))},document.addEventListener("click",this.docListener)}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener)}formatDate(e){if(!e)return"";const t=this.getAttr("format");if(!t)return e.split("T")[0];const[r,a]=e.split("T"),[i="",o="",s=""]=r.split("-"),[n="00",l="00",h="00"]=(a!=null?a:"").split(":");return t.replace(/yyyy/gi,"").replace(/MM/g,"").replace(/mm/g,"").replace(/dd/gi,"").replace(/HH/g,"").replace(/SS/gi,"").replace(/\u0001/g,i).replace(/\u0002/g,o).replace(/\u0003/g,s).replace(/\u0004/g,n).replace(/\u0005/g,l).replace(/\u0006/g,h)}displayText(){if(this.mode==="range"){const t=this.getAttr("start"),r=this.getAttr("end");if(this.hasAttr("show-time"),!t&&!r)return"";if(this.hasAttr("show-time")){const a=i=>i?`${this.formatDate(i)} ${this.timeText()}`:i?`${this.formatDate(i)} …`:"";return t&&r?`${a(t)} → ${a(r)}`:a(t)}return t&&r?`${this.formatDate(t)} → ${this.formatDate(r)}`:t?`${this.formatDate(t)} → …`:""}if(this.mode==="multiple")return this.values.map(t=>this.formatDate(t)).join(", ");const e=this.formatDate(this.value);return e&&this.hasAttr("show-time")?`${e} ${this.timeText()}`:e}timeText(){const e=t=>String(t).padStart(2,"0");return`${e(this.time.h)}:${e(this.time.m)}:${e(this.time.s)}`}loadTimeFromValue(){const t=(this.value||this.getAttr("start")||"").split("T")[1];if(!t)return;const[r,a,i]=t.split(":").map(o=>parseInt(o,10));this.time={h:r||0,m:a||0,s:i||0}}withTime(e){return e&&(this.hasAttr("show-time")?`${e}T${this.timeText()}`:e)}render(){var h,_;const e=this.disabled,t=this.hasAttr("clearable"),r=this.displayText(),a=r.length>0,i=this.hasAttr("show-time");this.loadTimeFromValue();let o=`min="${c(this.getAttr("min"))}" max="${c(this.getAttr("max"))}"`;if(this.mode==="range")o+=` range start="${c(this.getAttr("start"))}" end="${c(this.getAttr("end"))}"`;else if(this.mode==="multiple"){const u=this.values.map(p=>p.split("T")[0]).join(",");o+=` mode="multiple" values="${c(u)}"`}else{const u=(h=this.value.split("T")[0])!=null?h:"";o+=` value="${c(u)}"`}this.setTemplate(`
|
|
831
831
|
<div class="field" part="field">
|
|
832
|
-
<input class="display" part="display" type="text" ${this.hasAttr("free-text")&&!
|
|
833
|
-
placeholder="${
|
|
834
|
-
value="${
|
|
832
|
+
<input class="display" part="display" type="text" ${this.hasAttr("free-text")&&!e?"":"readonly"}
|
|
833
|
+
placeholder="${c(this.getAttr("placeholder","dd/mm/aaaa"))}"
|
|
834
|
+
value="${c(r)}" ${e?"disabled":""}>
|
|
835
835
|
<button type="button" class="clear" part="clear" aria-label="Limpar"
|
|
836
|
-
${
|
|
836
|
+
${t&&a?"":"hidden"}>
|
|
837
837
|
×
|
|
838
838
|
</button>
|
|
839
839
|
<span class="cal-icon" part="icon" aria-hidden="true">
|
|
@@ -845,14 +845,14 @@
|
|
|
845
845
|
</span>
|
|
846
846
|
</div>
|
|
847
847
|
<div class="pop" part="popover">
|
|
848
|
-
<fx-calendar ${
|
|
848
|
+
<fx-calendar ${o}></fx-calendar>
|
|
849
849
|
${i?`<div class="time-row" part="time">
|
|
850
850
|
<input class="t-h" type="number" min="0" max="23" value="${this.time.h}" aria-label="Hora"><span class="sep">:</span>
|
|
851
851
|
<input class="t-m" type="number" min="0" max="59" value="${this.time.m}" aria-label="Minuto"><span class="sep">:</span>
|
|
852
852
|
<input class="t-s" type="number" min="0" max="59" value="${this.time.s}" aria-label="Segundo">
|
|
853
853
|
</div>`:""}
|
|
854
854
|
</div>
|
|
855
|
-
`);const
|
|
855
|
+
`);const s=this.root.querySelector(".field");if(!s||e)return;s.addEventListener("click",u=>{if(!u.target.closest(".clear")&&!(this.hasAttr("free-text")&&u.target.classList.contains("display")))if(this.toggleAttribute("open"),this.hasAttr("open")){const p=this.getBoundingClientRect();this.toggleAttribute("up",p.bottom+340>window.innerHeight&&p.top>340)}else this.removeAttribute("up")}),(_=this.root.querySelector(".clear"))==null||_.addEventListener("click",u=>{u.stopPropagation(),this.removeAttribute("value"),this.removeAttribute("start"),this.removeAttribute("end"),this.removeAttribute("values"),this.removeAttribute("open"),this.render(),this.emitChange({})});const n=this.root.querySelector(".pop fx-calendar");n==null||n.addEventListener("change",u=>{var v;const p=(v=u.detail)!=null?v:{};(p.start!==void 0||p.end!==void 0)&&(p.start?this.setAttribute("start",this.withTime(p.start)):this.removeAttribute("start"),p.end?this.setAttribute("end",this.withTime(p.end)):this.removeAttribute("end")),p.values!==void 0&&(this.values=p.values.map(f=>this.withTime(f))),p.value!==void 0&&(p.value?this.setAttribute("value",this.withTime(p.value)):this.removeAttribute("value"),this.mode==="single"&&this.removeAttribute("open")),this.render(),this.emitChange(p)});const l=this.root.querySelector(".display");if(l&&this.hasAttr("free-text")&&!e&&(l.addEventListener("keydown",u=>{u.key==="Enter"&&(u.preventDefault(),this.commitTyped(l))}),l.addEventListener("blur",()=>this.commitTyped(l))),i){const u=()=>{const p=this.root.querySelector(".t-h"),v=this.root.querySelector(".t-m"),f=this.root.querySelector(".t-s"),x=(A,y)=>Math.min(y,Math.max(0,parseInt(A!=null?A:"0",10)||0));this.time={h:x(p==null?void 0:p.value,23),m:x(v==null?void 0:v.value,59),s:x(f==null?void 0:f.value,59)};const w=A=>A.split("T")[0]?`${A.split("T")[0]}T${this.timeText()}`:A;this.value&&this.setAttribute("value",w(this.value)),this.getAttr("start")&&this.setAttribute("start",w(this.getAttr("start"))),this.getAttr("end")&&this.setAttribute("end",w(this.getAttr("end"))),this.values.length&&(this.values=this.values.map(A=>w(A)));const S=this.root.querySelector(".display");S&&(S.value=this.displayText()),this.emitChange({value:this.value})};[".t-h",".t-m",".t-s"].forEach(p=>{var v;(v=this.root.querySelector(p))==null||v.addEventListener("input",u)})}}emitChange(e){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:e}))}parseTyped(e){var f,x;const t=e.trim();if(!t)return null;const r=this.getAttr("format","dd/mm/yyyy").toLowerCase(),a=["dd","mm","yyyy"].filter(w=>r.includes(w));if(a.length<3)return null;const i=t.split(new RegExp("[^0-9]+")).filter(Boolean);if(i.length!==3)return null;const o={};a.forEach((w,S)=>o[w]=i[S]);const s=`${o.yyyy}-${((f=o.mm)!=null?f:"").padStart(2,"0")}-${((x=o.dd)!=null?x:"").padStart(2,"0")}`,n=new Date(`${s}T12:00:00`);if(Number.isNaN(n.getTime()))return null;const[l,h,_]=s.split("-").map(w=>parseInt(w,10));if(n.getFullYear()!==l||n.getMonth()+1!==h||n.getDate()!==_)return null;const u=(w,S)=>w.split("T")[0].localeCompare(S.split("T")[0]),p=this.getAttr("min"),v=this.getAttr("max");return p&&u(s,p)<0||v&&u(s,v)>0?null:s}commitTyped(e){const t=this.parseTyped(e.value);if(!t){e.classList.add("invalid"),this.dispatchEvent(new CustomEvent("invalid",{bubbles:!0,composed:!0,detail:{text:e.value}})),e.value=this.displayText(),setTimeout(()=>e.classList.remove("invalid"),1500);return}if(this.mode==="single")this.setAttribute("value",this.withTime(t)),this.emitChange({value:this.value});else if(this.mode==="range"){if(!this.getAttr("start")||this.getAttr("start")&&this.getAttr("end"))this.setAttribute("start",this.withTime(t)),this.removeAttribute("end");else{const[r,a]=[this.getAttr("start").split("T")[0],t].sort();this.setAttribute("start",this.withTime(r)),this.setAttribute("end",this.withTime(a))}this.emitChange({start:this.getAttr("start"),end:this.getAttr("end")})}else{const r=this.values.filter(a=>a.split("T")[0]!==t);r.push(this.withTime(t)),this.values=r,this.emitChange({values:this.values})}this.render()}};Re.styles=m`
|
|
856
856
|
:host {
|
|
857
857
|
display: inline-block;
|
|
858
858
|
vertical-align: middle;
|
|
@@ -995,7 +995,7 @@
|
|
|
995
995
|
:host([disabled]) .display { cursor: not-allowed; }
|
|
996
996
|
:host([free-text]) .display { cursor: text; }
|
|
997
997
|
:host([free-text]) .display.invalid { border-bottom: 2px solid var(--fx-color-danger); }
|
|
998
|
-
`;let
|
|
998
|
+
`;let B=Re;function Jt(){return b("fx-datepicker",B)}Jt();const Be=class Be extends g{static get observedAttributes(){return["checked","disabled","indeterminate"]}get checked(){return this.hasAttr("checked")}set checked(e){this.toggleAttr("checked",!!e)}get indeterminate(){return this.hasAttr("indeterminate")}set indeterminate(e){this.toggleAttr("indeterminate",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}render(){const e=this.size==="sm"?"14px":this.size==="lg"?"22px":"18px";this.style.getPropertyValue("--fx-size-checkbox")||this.style.setProperty("--fx-size-checkbox",e),this.setTemplate(`
|
|
999
999
|
<span class="box" part="box" role="checkbox" tabindex="0"
|
|
1000
1000
|
aria-checked="${this.indeterminate?"mixed":this.checked}"
|
|
1001
1001
|
aria-disabled="${this.disabled}">
|
|
@@ -1004,7 +1004,7 @@
|
|
|
1004
1004
|
</span>
|
|
1005
1005
|
<span class="label" part="label"><slot></slot></span>
|
|
1006
1006
|
</span>
|
|
1007
|
-
`);const
|
|
1007
|
+
`);const t=this.root.querySelector(".box");t&&(t.addEventListener("click",()=>this.toggle()),t.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),this.toggle())}))}toggle(){this.disabled||(this.indeterminate=!1,this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.checked,value:this.getAttr("value")}})))}};Be.styles=m`
|
|
1008
1008
|
:host {
|
|
1009
1009
|
display: inline-flex;
|
|
1010
1010
|
vertical-align: middle;
|
|
@@ -1065,13 +1065,13 @@
|
|
|
1065
1065
|
cursor: not-allowed;
|
|
1066
1066
|
pointer-events: none;
|
|
1067
1067
|
}
|
|
1068
|
-
`;let
|
|
1068
|
+
`;let O=Be;function Wt(){return b("fx-checkbox",O)}Wt();const Oe=class Oe extends g{static get observedAttributes(){return["checked","disabled"]}get checked(){return this.hasAttr("checked")}set checked(e){this.toggleAttr("checked",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}render(){const e=this.size==="sm"?"14px":this.size==="lg"?"22px":"18px";this.style.getPropertyValue("--fx-size-radio")||this.style.setProperty("--fx-size-radio",e),this.setTemplate(`
|
|
1069
1069
|
<span class="box" part="box" role="radio" tabindex="0"
|
|
1070
1070
|
aria-checked="${this.checked}" aria-disabled="${this.disabled}">
|
|
1071
1071
|
<span class="control" part="control"><span class="dot" part="dot"></span></span>
|
|
1072
1072
|
<span class="label" part="label"><slot></slot></span>
|
|
1073
1073
|
</span>
|
|
1074
|
-
`);const
|
|
1074
|
+
`);const t=this.root.querySelector(".box");t&&(t.addEventListener("click",()=>this.select()),t.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),this.select())}))}select(){if(this.disabled||this.checked)return;const e=this.getAttr("name");e&&document.querySelectorAll(`fx-radio[name="${CSS.escape(e)}"]`).forEach(t=>{t.checked=!1}),this.checked=!0,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:!0,value:this.getAttr("value")}}))}};Oe.styles=m`
|
|
1075
1075
|
:host {
|
|
1076
1076
|
display: inline-flex;
|
|
1077
1077
|
vertical-align: middle;
|
|
@@ -1127,30 +1127,30 @@
|
|
|
1127
1127
|
cursor: not-allowed;
|
|
1128
1128
|
pointer-events: none;
|
|
1129
1129
|
}
|
|
1130
|
-
`;let K=kt;function le(){return k("fx-radio",K)}le();const C="pt-BR",ce={currency:l=>{if(l==null||l==="")return"";try{return new Intl.NumberFormat(C,{style:"currency",currency:"BRL"}).format(Number(l))}catch(t){return String(l)}},date:(l,t)=>{const e=Kt(l);if(!e)return String(l!=null?l:"");const r={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"}},s=t&&r[t]?r[t]:r.medium;try{return new Intl.DateTimeFormat(C,s).format(e)}catch(i){return e.toLocaleDateString(C)}},dateTime:l=>{const t=Kt(l);if(!t)return String(l!=null?l:"");try{return new Intl.DateTimeFormat(C,{dateStyle:"medium",timeStyle:"short"}).format(t)}catch(e){return t.toLocaleString(C)}},number:(l,t)=>{if(l==null||l==="")return"";try{const e={};if(t!==void 0){const r=Number(t);e.minimumFractionDigits=r,e.maximumFractionDigits=r}return new Intl.NumberFormat(C,e).format(Number(l))}catch(e){return String(l)}}};function Kt(l){if(l==null||l==="")return null;if(l instanceof Date)return isNaN(l.getTime())?null:l;if(typeof l=="number"){const t=new Date(l);return isNaN(t.getTime())?null:t}if(typeof l=="string"){const t=new Date(l);return isNaN(t.getTime())?null:t}return null}const de=l=>/[a-z_$]/i.test(l),he=l=>/[a-z0-9_$]/i.test(l);function ue(l){const t=[];let e=0;for(;e<l.length;){const r=l[e];if(/\s/.test(r)){e++;continue}if(r==="'"||r==='"'){const i=r;let a="";for(e++;e<l.length&&l[e]!==i;)l[e]==="\\"&&e+1<l.length?(a+=l[e+1],e+=2):(a+=l[e],e++);e++,t.push({type:"str",value:a});continue}if(r>="0"&&r<="9"){let i="";for(;e<l.length&&(l[e]>="0"&&l[e]<="9"||l[e]===".");)i+=l[e],e++;t.push({type:"num",value:i});continue}if(de(r)){let i="";for(;e<l.length&&he(l[e]);)i+=l[e],e++;i==="true"||i==="false"||i==="null"?t.push({type:"kw",value:i}):t.push({type:"id",value:i});continue}const s=l.slice(e,e+2);if(s==="=="||s==="!="||s===">="||s==="<="){t.push({type:"cmp",value:s}),e+=2;continue}if(r==="+"){t.push({type:"op",value:"+"}),e++;continue}if(r==="-"){t.push({type:"op",value:"-"}),e++;continue}if(r==="*"){t.push({type:"op",value:"*"}),e++;continue}if(r==="/"){t.push({type:"op",value:"/"}),e++;continue}if(r===">"){t.push({type:"cmp",value:">"}),e++;continue}if(r==="<"){t.push({type:"cmp",value:"<"}),e++;continue}if(r==="!"){t.push({type:"op",value:"!"}),e++;continue}if(r==="?"){t.push({type:"qm",value:"?"}),e++;continue}if(r===":"){t.push({type:"colon",value:":"}),e++;continue}if(r==="|"){t.push({type:"pipe",value:"|"}),e++;continue}if(r==="("){t.push({type:"lparen",value:"("}),e++;continue}if(r===")"){t.push({type:"rparen",value:")"}),e++;continue}if(r==="."){t.push({type:"dot",value:"."}),e++;continue}e++}return t}class pe{constructor(t,e){this.tokens=t,this.ctx=e,this.pos=0}peek(){return this.pos<this.tokens.length?this.tokens[this.pos]:null}next(){return this.pos<this.tokens.length?this.tokens[this.pos++]:null}matchType(t){var e;return((e=this.peek())==null?void 0:e.type)===t?this.next():null}parse(){return this.parsePipe()}parsePipe(){var e,r;let t=this.parseTernary();for(;((e=this.peek())==null?void 0:e.type)==="pipe";){this.next();const s=this.matchType("id");if(!s)break;let i;if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const a=this.peek();a&&(a.type==="str"||a.type==="num"||a.type==="id")&&(i=a.type==="str"?a.value:String(a.value),this.next())}t=this.applyPipe(s.value,i,t)}return t}parseTernary(){var e,r;const t=this.parseComparison();if(((e=this.peek())==null?void 0:e.type)==="qm"){this.next();const s=this.parsePipe();if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const i=this.parsePipe();return t?s:i}return s}return t}parseComparison(){const t=this.parseAdditive(),e=this.peek();if((e==null?void 0:e.type)==="cmp"){this.next();const r=this.parseAdditive();return this.compare(t,e.value,r)}return t}compare(t,e,r){const s=Rt(t),i=Rt(r);switch(e){case"==":return s==i;case"!=":return s!=i;case">":return s>i;case"<":return s<i;case">=":return s>=i;case"<=":return s<=i}return!1}parseAdditive(){let t=this.parseMultiplicative();for(;;){const e=this.peek();if((e==null?void 0:e.type)==="op"&&(e.value==="+"||e.value==="-")){this.next();const r=this.parseMultiplicative();t=e.value==="+"?this.add(t,r):this.subtract(t,r)}else break}return t}add(t,e){return typeof t=="string"||typeof e=="string"?String(t!=null?t:"")+String(e!=null?e:""):Number(t)+Number(e)}subtract(t,e){return Number(t)-Number(e)}parseMultiplicative(){let t=this.parseUnary();for(;;){const e=this.peek();if((e==null?void 0:e.type)==="op"&&(e.value==="*"||e.value==="/")){this.next();const r=this.parseUnary();t=e.value==="*"?Number(t)*Number(r):Number(t)/Number(r)}else break}return t}parseUnary(){const t=this.peek();if((t==null?void 0:t.type)==="op"&&(t.value==="+"||t.value==="-")){this.next();const e=Number(this.parseUnary());return t.value==="-"?-e:e}return(t==null?void 0:t.type)==="op"&&t.value==="!"?(this.next(),!this.parseUnary()):this.parsePrimary()}parsePrimary(){var e;const t=this.peek();if(t){if(t.type==="lparen"){this.next();const r=this.parsePipe();return this.matchType("rparen"),r}if(t.type==="str")return this.next(),t.value;if(t.type==="num")return this.next(),Number(t.value);if(t.type==="kw")return this.next(),t.value==="true"?!0:t.value==="false"?!1:null;if(t.type==="id"){this.next();let r=this.resolveId(t.value);for(;((e=this.peek())==null?void 0:e.type)==="dot";){this.next();const s=this.peek();if((s==null?void 0:s.type)==="id")this.next(),r=r==null?void 0:r[s.value];else break}return r}this.next()}}resolveId(t){switch(t){case"value":return this.ctx.value;case"row":return this.ctx.row;case"true":return!0;case"false":return!1;case"null":return null;default:return this.ctx.row[t]}}applyPipe(t,e,r){const s=ce[t];if(!s)return R(r);try{return s(r,e)}catch(i){return R(r)}}}function Rt(l){return typeof l=="number"?l:typeof l=="boolean"?l?1:0:String(l!=null?l:"")}function R(l){return l==null?"":typeof l=="object"?"[object Object]":String(l)}function fe(l,t){try{const e=ue(l),s=new pe(e,t).parse();return R(s)}catch(e){return""}}function ge(l,t,e){const r={value:t[e],row:t};return l.replace(/\{\{([^}]+)\}\}/g,(s,i)=>u(fe(be(i.trim()),r)))}function be(l){return l.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/g,"'")}const wt=class wt extends y{constructor(){super(...arguments),this._data=[],this.page=0,this.sortField="",this.sortDir=1,this.filters={},this.globalSearch=""}static get observedAttributes(){return["pagination","rows","rows-options","striped","empty-message","pagination-position","lazy","total","loading","loading-message"]}get data(){return this._data}set data(t){this._data=Array.isArray(t)?t:[],this.render()}get total(){var t;return(t=this._total)!=null?t:this._data.length}set total(t){this._total=t,this.setAttribute("total",String(t))}get rowsPerPage(){const t=Number(this.getAttr("rows","10"));return t>0?t:10}set rowsPerPage(t){this.setAttribute("rows",String(t))}get lazy(){return this.hasAttr("lazy")}get columns(){return[...this.querySelectorAll("fx-column")].map(t=>{var i,a,o,n;const e=t.querySelector("template"),r=e?void 0:t.innerHTML.trim(),s=(i=t.getAttribute("align"))!=null?i:"left";return{field:(a=t.getAttribute("field"))!=null?a:"",header:(n=(o=t.getAttribute("header"))!=null?o:t.getAttribute("field"))!=null?n:"",sortable:t.hasAttribute("sortable"),filterable:t.hasAttribute("filterable"),align:["left","center","right","justify","start","end"].includes(s)?s:"left",template:e!=null?e:void 0,directTemplate:r||void 0}})}get toolbarTemplate(){return this.querySelector('template[slot="toolbar"]')}connectedCallback(){this._parseDataAttribute(),super.connectedCallback(),this._columnObserver=new MutationObserver(()=>this.render()),this._columnObserver.observe(this,{childList:!0,subtree:!0})}disconnectedCallback(){var t;(t=this._columnObserver)==null||t.disconnect(),super.disconnectedCallback()}_parseDataAttribute(){if(!this._data.length)try{const e=this.getAttr("data");e&&(this._data=JSON.parse(e))}catch(e){}const t=this.getAttr("total");if(t){const e=Number(t);isNaN(e)||(this._total=e)}}computeRows(){let t=[...this._data];for(const[r,s]of Object.entries(this.filters)){if(!s)continue;const i=s.toLowerCase();t=t.filter(a=>{var o;return String((o=a[r])!=null?o:"").toLowerCase().includes(i)})}if(this.globalSearch){const r=this.globalSearch.toLowerCase(),s=this._getSearchFields();t=t.filter(i=>(s.length?s:Object.keys(i)).some(o=>{var n;return String((n=i[o])!=null?n:"").toLowerCase().includes(r)}))}const e=this.lazy?this.total:t.length;if(this.sortField&&t.sort((r,s)=>{const i=r[this.sortField],a=s[this.sortField];return typeof i=="number"&&typeof a=="number"?(i-a)*this.sortDir:String(i!=null?i:"").localeCompare(String(a!=null?a:""),"pt-BR")*this.sortDir}),this.hasAttr("pagination")&&!this.lazy){const r=this.page*this.rowsPerPage;t=t.slice(r,r+this.rowsPerPage)}return{rows:t,total:e}}_getSearchFields(){const t=this.root.querySelector("[data-search-fields]");if(!t)return[];const e=t.getAttribute("data-search-fields");return e===null?[]:e.split(",").map(r=>r.trim()).filter(Boolean)}cellHtml(t,e){var s,i,a;const r=(i=(s=t.template)==null?void 0:s.innerHTML)!=null?i:t.directTemplate;return r?ge(r,e,t.field):u(String((a=e[t.field])!=null?a:""))}render(){var m;const t=this.columns.filter(p=>p.field),{rows:e,total:r}=this.computeRows(),s=this.hasAttr("pagination"),i=Math.max(1,Math.ceil(r/this.rowsPerPage));this.page>=i&&(this.page=i-1);const a=this.toolbarTemplate,o=a?`<div class="toolbar" part="toolbar">${a.innerHTML}</div>`:"",n=t.map(p=>{const b=this.sortField===p.field,w=b?this.sortDir===1?"▲":"▼":p.sortable?"⇅":"",z=b?"active":"";return`<th part="header" class="${p.sortable?"sortable":""}" style="text-align:${p.align}" data-field="${u(p.field)}">${u(p.header)}${w?`<span class="sort-ind ${z}">${w}</span>`:""}</th>`}).join(""),c=t.some(p=>p.filterable)?`<tr class="filter-row">${t.map(p=>{var b;return`<th style="text-align:${p.align}">${p.filterable?`<input class="filter" data-field="${u(p.field)}" placeholder="${u("Filtrar…")}" value="${u((b=this.filters[p.field])!=null?b:"")}">`:""}</th>`}).join("")}</tr>`:"",h=e.length?e.map((p,b)=>`<tr part="row" data-index="${b}">${t.map(w=>`<td part="cell" style="text-align:${w.align}">${this.cellHtml(w,p)}</td>`).join("")}</tr>`).join(""):`<tr><td class="empty" colspan="${t.length||1}">${u(this.getAttr("empty-message","Nenhum registro encontrado"))}</td></tr>`,g=s?`
|
|
1130
|
+
`;let K=Oe;function Gt(){return b("fx-radio",K)}Gt();const L="pt-BR",Zt={currency:d=>{if(d==null||d==="")return"";try{return new Intl.NumberFormat(L,{style:"currency",currency:"BRL"}).format(Number(d))}catch(e){return String(d)}},date:(d,e)=>{const t=$t(d);if(!t)return String(d!=null?d:"");const r={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"}},a=e&&r[e]?r[e]:r.medium;try{return new Intl.DateTimeFormat(L,a).format(t)}catch(i){return t.toLocaleDateString(L)}},dateTime:d=>{const e=$t(d);if(!e)return String(d!=null?d:"");try{return new Intl.DateTimeFormat(L,{dateStyle:"medium",timeStyle:"short"}).format(e)}catch(t){return e.toLocaleString(L)}},number:(d,e)=>{if(d==null||d==="")return"";try{const t={};if(e!==void 0){const r=Number(e);t.minimumFractionDigits=r,t.maximumFractionDigits=r}return new Intl.NumberFormat(L,t).format(Number(d))}catch(t){return String(d)}}};function $t(d){if(d==null||d==="")return null;if(d instanceof Date)return isNaN(d.getTime())?null:d;if(typeof d=="number"){const e=new Date(d);return isNaN(e.getTime())?null:e}if(typeof d=="string"){const e=new Date(d);return isNaN(e.getTime())?null:e}return null}const Qt=d=>/[a-z_$]/i.test(d),er=d=>/[a-z0-9_$]/i.test(d);function tr(d){const e=[];let t=0;for(;t<d.length;){const r=d[t];if(/\s/.test(r)){t++;continue}if(r==="'"||r==='"'){const i=r;let o="";for(t++;t<d.length&&d[t]!==i;)d[t]==="\\"&&t+1<d.length?(o+=d[t+1],t+=2):(o+=d[t],t++);t++,e.push({type:"str",value:o});continue}if(r>="0"&&r<="9"){let i="";for(;t<d.length&&(d[t]>="0"&&d[t]<="9"||d[t]===".");)i+=d[t],t++;e.push({type:"num",value:i});continue}if(Qt(r)){let i="";for(;t<d.length&&er(d[t]);)i+=d[t],t++;i==="true"||i==="false"||i==="null"?e.push({type:"kw",value:i}):e.push({type:"id",value:i});continue}const a=d.slice(t,t+2);if(a==="=="||a==="!="||a===">="||a==="<="){e.push({type:"cmp",value:a}),t+=2;continue}if(r==="+"){e.push({type:"op",value:"+"}),t++;continue}if(r==="-"){e.push({type:"op",value:"-"}),t++;continue}if(r==="*"){e.push({type:"op",value:"*"}),t++;continue}if(r==="/"){e.push({type:"op",value:"/"}),t++;continue}if(r===">"){e.push({type:"cmp",value:">"}),t++;continue}if(r==="<"){e.push({type:"cmp",value:"<"}),t++;continue}if(r==="!"){e.push({type:"op",value:"!"}),t++;continue}if(r==="?"){e.push({type:"qm",value:"?"}),t++;continue}if(r===":"){e.push({type:"colon",value:":"}),t++;continue}if(r==="|"){e.push({type:"pipe",value:"|"}),t++;continue}if(r==="("){e.push({type:"lparen",value:"("}),t++;continue}if(r===")"){e.push({type:"rparen",value:")"}),t++;continue}if(r==="."){e.push({type:"dot",value:"."}),t++;continue}t++}return e}class rr{constructor(e,t){this.tokens=e,this.ctx=t,this.pos=0}peek(){return this.pos<this.tokens.length?this.tokens[this.pos]:null}next(){return this.pos<this.tokens.length?this.tokens[this.pos++]:null}matchType(e){var t;return((t=this.peek())==null?void 0:t.type)===e?this.next():null}parse(){return this.parsePipe()}parsePipe(){var t,r;let e=this.parseTernary();for(;((t=this.peek())==null?void 0:t.type)==="pipe";){this.next();const a=this.matchType("id");if(!a)break;let i;if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const o=this.peek();o&&(o.type==="str"||o.type==="num"||o.type==="id")&&(i=o.type==="str"?o.value:String(o.value),this.next())}e=this.applyPipe(a.value,i,e)}return e}parseTernary(){var t,r;const e=this.parseComparison();if(((t=this.peek())==null?void 0:t.type)==="qm"){this.next();const a=this.parsePipe();if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const i=this.parsePipe();return e?a:i}return a}return e}parseComparison(){const e=this.parseAdditive(),t=this.peek();if((t==null?void 0:t.type)==="cmp"){this.next();const r=this.parseAdditive();return this.compare(e,t.value,r)}return e}compare(e,t,r){const a=Et(e),i=Et(r);switch(t){case"==":return a==i;case"!=":return a!=i;case">":return a>i;case"<":return a<i;case">=":return a>=i;case"<=":return a<=i}return!1}parseAdditive(){let e=this.parseMultiplicative();for(;;){const t=this.peek();if((t==null?void 0:t.type)==="op"&&(t.value==="+"||t.value==="-")){this.next();const r=this.parseMultiplicative();e=t.value==="+"?this.add(e,r):this.subtract(e,r)}else break}return e}add(e,t){return typeof e=="string"||typeof t=="string"?String(e!=null?e:"")+String(t!=null?t:""):Number(e)+Number(t)}subtract(e,t){return Number(e)-Number(t)}parseMultiplicative(){let e=this.parseUnary();for(;;){const t=this.peek();if((t==null?void 0:t.type)==="op"&&(t.value==="*"||t.value==="/")){this.next();const r=this.parseUnary();e=t.value==="*"?Number(e)*Number(r):Number(e)/Number(r)}else break}return e}parseUnary(){const e=this.peek();if((e==null?void 0:e.type)==="op"&&(e.value==="+"||e.value==="-")){this.next();const t=Number(this.parseUnary());return e.value==="-"?-t:t}return(e==null?void 0:e.type)==="op"&&e.value==="!"?(this.next(),!this.parseUnary()):this.parsePrimary()}parsePrimary(){var t;const e=this.peek();if(e){if(e.type==="lparen"){this.next();const r=this.parsePipe();return this.matchType("rparen"),r}if(e.type==="str")return this.next(),e.value;if(e.type==="num")return this.next(),Number(e.value);if(e.type==="kw")return this.next(),e.value==="true"?!0:e.value==="false"?!1:null;if(e.type==="id"){this.next();let r=this.resolveId(e.value);for(;((t=this.peek())==null?void 0:t.type)==="dot";){this.next();const a=this.peek();if((a==null?void 0:a.type)==="id")this.next(),r=r==null?void 0:r[a.value];else break}return r}this.next()}}resolveId(e){switch(e){case"value":return this.ctx.value;case"row":return this.ctx.row;case"true":return!0;case"false":return!1;case"null":return null;default:return this.ctx.row[e]}}applyPipe(e,t,r){const a=Zt[e];if(!a)return H(r);try{return a(r,t)}catch(i){return H(r)}}}function Et(d){return typeof d=="number"?d:typeof d=="boolean"?d?1:0:String(d!=null?d:"")}function H(d){return d==null?"":typeof d=="object"?"[object Object]":String(d)}function ar(d,e){try{const t=tr(d),a=new rr(t,e).parse();return H(a)}catch(t){return""}}function ir(d,e,t){const r={value:e[t],row:e};return d.replace(/\{\{([^}]+)\}\}/g,(a,i)=>c(ar(or(i.trim()),r)))}function or(d){return d.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/g,"'")}const Ke=class Ke extends g{constructor(){super(...arguments),this._data=[],this.page=0,this.sortField="",this.sortDir=1,this.filters={},this.globalSearch=""}static get observedAttributes(){return["pagination","rows","rows-options","striped","empty-message","pagination-position","lazy","total","loading","loading-message"]}get data(){return this._data}set data(e){this._data=Array.isArray(e)?e:[],this.render()}get total(){var e;return(e=this._total)!=null?e:this._data.length}set total(e){this._total=e,this.setAttribute("total",String(e))}get rowsPerPage(){const e=Number(this.getAttr("rows","10"));return e>0?e:10}set rowsPerPage(e){this.setAttribute("rows",String(e))}get lazy(){return this.hasAttr("lazy")}get columns(){return[...this.querySelectorAll("fx-column")].map(e=>{var i,o,s,n;const t=e.querySelector("template"),r=t?void 0:e.innerHTML.trim(),a=(i=e.getAttribute("align"))!=null?i:"left";return{field:(o=e.getAttribute("field"))!=null?o:"",header:(n=(s=e.getAttribute("header"))!=null?s:e.getAttribute("field"))!=null?n:"",sortable:e.hasAttribute("sortable"),filterable:e.hasAttribute("filterable"),align:["left","center","right","justify","start","end"].includes(a)?a:"left",template:t!=null?t:void 0,directTemplate:r||void 0}})}get toolbarTemplate(){return this.querySelector('template[slot="toolbar"]')}connectedCallback(){this._parseDataAttribute(),super.connectedCallback(),this._columnObserver=new MutationObserver(()=>this.render()),this._columnObserver.observe(this,{childList:!0,subtree:!0})}disconnectedCallback(){var e;(e=this._columnObserver)==null||e.disconnect(),super.disconnectedCallback()}_parseDataAttribute(){if(!this._data.length)try{const t=this.getAttr("data");t&&(this._data=JSON.parse(t))}catch(t){}const e=this.getAttr("total");if(e){const t=Number(e);isNaN(t)||(this._total=t)}}computeRows(){let e=[...this._data];for(const[r,a]of Object.entries(this.filters)){if(!a)continue;const i=a.toLowerCase();e=e.filter(o=>{var s;return String((s=o[r])!=null?s:"").toLowerCase().includes(i)})}if(this.globalSearch){const r=this.globalSearch.toLowerCase(),a=this._getSearchFields();e=e.filter(i=>(a.length?a:Object.keys(i)).some(s=>{var n;return String((n=i[s])!=null?n:"").toLowerCase().includes(r)}))}const t=this.lazy?this.total:e.length;if(this.sortField&&e.sort((r,a)=>{const i=r[this.sortField],o=a[this.sortField];return typeof i=="number"&&typeof o=="number"?(i-o)*this.sortDir:String(i!=null?i:"").localeCompare(String(o!=null?o:""),"pt-BR")*this.sortDir}),this.hasAttr("pagination")&&!this.lazy){const r=this.page*this.rowsPerPage;e=e.slice(r,r+this.rowsPerPage)}return{rows:e,total:t}}_getSearchFields(){const e=this.root.querySelector("[data-search-fields]");if(!e)return[];const t=e.getAttribute("data-search-fields");return t===null?[]:t.split(",").map(r=>r.trim()).filter(Boolean)}cellHtml(e,t){var a,i,o;const r=(i=(a=e.template)==null?void 0:a.innerHTML)!=null?i:e.directTemplate;return r?ir(r,t,e.field):c(String((o=t[e.field])!=null?o:""))}render(){var v;const e=this.columns.filter(f=>f.field),{rows:t,total:r}=this.computeRows(),a=this.hasAttr("pagination"),i=Math.max(1,Math.ceil(r/this.rowsPerPage));this.page>=i&&(this.page=i-1);const o=this.toolbarTemplate,s=o?`<div class="toolbar" part="toolbar">${o.innerHTML}</div>`:"",n=e.map(f=>{const x=this.sortField===f.field,w=x?this.sortDir===1?"▲":"▼":f.sortable?"⇅":"",S=x?"active":"";return`<th part="header" class="${f.sortable?"sortable":""}" style="text-align:${f.align}" data-field="${c(f.field)}">${c(f.header)}${w?`<span class="sort-ind ${S}">${w}</span>`:""}</th>`}).join(""),l=e.some(f=>f.filterable)?`<tr class="filter-row">${e.map(f=>{var x;return`<th style="text-align:${f.align}">${f.filterable?`<input class="filter" data-field="${c(f.field)}" placeholder="${c("Filtrar…")}" value="${c((x=this.filters[f.field])!=null?x:"")}">`:""}</th>`}).join("")}</tr>`:"",h=t.length?t.map((f,x)=>`<tr part="row" data-index="${x}">${e.map(w=>`<td part="cell" style="text-align:${w.align}">${this.cellHtml(w,f)}</td>`).join("")}</tr>`).join(""):`<tr><td class="empty" colspan="${e.length||1}">${c(this.getAttr("empty-message","Nenhum registro encontrado"))}</td></tr>`,_=a?`
|
|
1131
1131
|
<div class="pager" part="pager">
|
|
1132
1132
|
<span class="info">Página ${this.page+1} de ${i} · ${r} registros</span>
|
|
1133
1133
|
<button type="button" class="pg-btn" data-pg="first" ${this.page===0?"disabled":""}>«</button>
|
|
1134
1134
|
<button type="button" class="pg-btn" data-pg="prev" ${this.page===0?"disabled":""}>‹</button>
|
|
1135
|
-
${Array.from({length:i},(
|
|
1135
|
+
${Array.from({length:i},(f,x)=>`<button type="button" class="pg-btn" data-pg="${x}" aria-current="${x===this.page}">${x+1}</button>`).join("")}
|
|
1136
1136
|
<button type="button" class="pg-btn" data-pg="next" ${this.page>=i-1?"disabled":""}>›</button>
|
|
1137
1137
|
<button type="button" class="pg-btn" data-pg="last" ${this.page>=i-1?"disabled":""}>»</button>
|
|
1138
|
-
<label class="info">${
|
|
1139
|
-
<fx-select class="rows-sel" size="sm" value="${this.rowsPerPage}" aria-label="Itens por página">${this.getAttr("rows-options","5,10,20,50").split(",").map(
|
|
1138
|
+
<label class="info">${c("Por página:")}
|
|
1139
|
+
<fx-select class="rows-sel" size="sm" value="${this.rowsPerPage}" aria-label="Itens por página">${this.getAttr("rows-options","5,10,20,50").split(",").map(f=>f.trim()).map(f=>`<option value="${c(f)}">${c(f)}</option>`).join("")}</fx-select>
|
|
1140
1140
|
</label>
|
|
1141
|
-
</div>`:"",
|
|
1142
|
-
${
|
|
1141
|
+
</div>`:"",p=this.hasAttr("loading")?`<div class="loading-overlay" part="loading-overlay"><div class="tbl-spinner" part="spinner"></div><span class="loading-text">${c(this.getAttr("loading-message","Carregando…"))}</span></div>`:"";this.setTemplate(`
|
|
1142
|
+
${s}
|
|
1143
1143
|
<div class="table-wrap">
|
|
1144
1144
|
<div class="scroll">
|
|
1145
1145
|
<table part="table">
|
|
1146
|
-
<thead><tr>${n}</tr>${
|
|
1146
|
+
<thead><tr>${n}</tr>${l}</thead>
|
|
1147
1147
|
<tbody>${h}</tbody>
|
|
1148
1148
|
</table>
|
|
1149
1149
|
</div>
|
|
1150
|
-
${
|
|
1150
|
+
${p}
|
|
1151
1151
|
</div>
|
|
1152
|
-
${
|
|
1153
|
-
`),this.root.querySelectorAll("th.sortable").forEach(
|
|
1152
|
+
${_}
|
|
1153
|
+
`),this.root.querySelectorAll("th.sortable").forEach(f=>{f.addEventListener("click",()=>{const x=f.dataset.field;this.sortField===x?this.sortDir=this.sortDir===1?-1:1:(this.sortField=x,this.sortDir=1),this.render(),this.dispatchEvent(new CustomEvent("sort-change",{bubbles:!0,composed:!0,detail:{field:this.sortField,direction:this.sortDir===1?"asc":"desc",lazy:this.lazy}}))})}),this.root.querySelectorAll(".filter").forEach(f=>{f.addEventListener("input",()=>{const x=f.dataset.field,w=f.value,S=f.selectionStart;this.filters[x]=w,this.page=0,this.render(),this.dispatchEvent(new CustomEvent("filter-change",{bubbles:!0,composed:!0,detail:{field:x,value:w,lazy:this.lazy}}));const A=this.root.querySelector(`.filter[data-field="${c(x)}"]`);A&&(A.focus(),A.setSelectionRange(S,S))}),f.addEventListener("click",x=>x.stopPropagation())}),this.root.querySelectorAll("[data-search-fields]").forEach(f=>{f.addEventListener("input",()=>{this.globalSearch=f.value,this.page=0;const x=f.selectionStart;this.render();const w=this.root.querySelector("[data-search-fields]");w&&(w.focus(),w.setSelectionRange(x,x))})}),this.root.querySelectorAll(".pg-btn").forEach(f=>{f.addEventListener("click",()=>{const x=f.dataset.pg;this.page=x==="first"?0:x==="prev"?Math.max(0,this.page-1):x==="next"?Math.min(i-1,this.page+1):x==="last"?i-1:Number(x),this.render(),this.dispatchEvent(new CustomEvent("page-change",{bubbles:!0,composed:!0,detail:{page:this.page+1,pages:i,rowsPerPage:this.rowsPerPage,total:r,lazy:this.lazy}}))})}),(v=this.root.querySelector("fx-select.rows-sel"))==null||v.addEventListener("change",f=>{var w;const x=Number((w=f.detail)==null?void 0:w.value);!x||x===this.rowsPerPage||(this.rowsPerPage=x,this.page=0,this.render())}),this.root.querySelectorAll("tbody tr[data-index]").forEach(f=>{f.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("row-click",{bubbles:!0,composed:!0,detail:{row:t[Number(f.dataset.index)],index:Number(f.dataset.index)}}))})}),this._restoreToolbarSearch()}_restoreToolbarSearch(){const e=this.root.querySelector("[data-search-fields]");e&&this.globalSearch&&(e.value=this.globalSearch)}};Ke.styles=m`
|
|
1154
1154
|
:host {
|
|
1155
1155
|
display: block;
|
|
1156
1156
|
font-family: var(--fx-font-family);
|
|
@@ -1352,16 +1352,16 @@
|
|
|
1352
1352
|
color: var(--fx-text-muted);
|
|
1353
1353
|
font-size: calc(var(--fx-font-size) - 1px);
|
|
1354
1354
|
}
|
|
1355
|
-
`;let
|
|
1355
|
+
`;let Y=Ke;function sr(){return b("fx-table",Y)}sr();const He=class He extends g{constructor(){super(...arguments),this.targetControl=null,this.observer=null,this.listenersReady=!1}static get observedAttributes(){return["variant","error","invalid","success","valid"]}render(){var s;const e=this.findControl(),r=this.findLabel(),a=r?(s=r.textContent)==null?void 0:s.replace(/\s+/g," ").trim():"",i=r&&r.getAttribute("for")||"",o=this.getAttribute("variant")==="over";this.setTemplate(`
|
|
1356
1356
|
<div class="wrapper" part="wrapper">
|
|
1357
|
-
${
|
|
1357
|
+
${o?`<label class="flabel" part="label" for="${i}">${a}</label>`:""}
|
|
1358
1358
|
<div class="field-box" part="field">
|
|
1359
1359
|
<slot></slot>
|
|
1360
|
-
${
|
|
1360
|
+
${o?"":`<label class="flabel" part="label" for="${i}">${a}</label>`}
|
|
1361
1361
|
</div>
|
|
1362
1362
|
<div class="error-message" part="error"></div>
|
|
1363
1363
|
</div>
|
|
1364
|
-
`),r&&r.setAttribute("hidden",""),this.attachEvents(),this.syncControlReference(
|
|
1364
|
+
`),r&&r.setAttribute("hidden",""),this.attachEvents(),this.syncControlReference(e),this.syncState(),this.applyError()}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.observer)==null||e.disconnect()}findControl(){var e;return(e=Array.from(this.children).find(t=>t.tagName.toLowerCase()!=="label"))!=null?e:null}findLabel(){var e;return(e=Array.from(this.children).find(t=>t.tagName.toLowerCase()==="label"))!=null?e:null}attachEvents(){const e=this.root.querySelector("slot");e&&e.addEventListener("slotchange",()=>{const t=this.findControl();this.syncControlReference(t),this.syncState(),this.applyError()}),!this.listenersReady&&(this.listenersReady=!0,this.addEventListener("focusin",()=>this.syncState()),this.addEventListener("focusout",()=>setTimeout(()=>this.syncState(),60)),this.addEventListener("input",()=>this.syncState()),this.addEventListener("change",()=>this.syncState()))}syncControlReference(e=this.targetControl){var t;e!==this.targetControl&&((t=this.observer)==null||t.disconnect(),this.observer=null,this.targetControl=e,e&&(this.observer=new MutationObserver(()=>this.syncState()),this.observer.observe(e,{attributes:!0,attributeFilter:["value","values","start","end","open"]})))}syncState(){var o,s,n;if(this.targetControl&&!this.targetControl.isConnected&&(this.targetControl=null,(o=this.observer)==null||o.disconnect(),this.observer=null),!this.targetControl){this.removeAttribute("active"),this.removeAttribute("focus");return}const e=this.targetControl,t=e.getAttribute?((s=e.getAttribute("value"))!=null?s:"").trim():"",r=e.getAttribute?((n=e.getAttribute("values"))!=null?n:"").trim():"",a=!!(typeof e.value=="string"&&e.value.trim()!==""||Array.isArray(e.values)&&e.values.length>0||t!==""||r!==""||e.hasAttribute&&(e.hasAttribute("open")||e.hasAttribute("start"))),i=this.isFocusedInside();a||i?(this.setAttribute("active",""),i?this.setAttribute("focus",""):this.removeAttribute("focus")):(this.removeAttribute("active"),this.removeAttribute("focus"))}applyError(){var r;const e=this.hasAttr("error")||this.hasAttr("invalid"),t=this.root.querySelector(".error-message");if(t&&(t.textContent=e?((r=this.getAttribute("error-text"))==null?void 0:r.trim())||"Valor inválido":""),this.targetControl&&typeof this.targetControl.setAttribute=="function"){const a=this.targetControl;e?(a.setAttribute("error",""),a.removeAttribute("success")):this.hasAttr("success")||this.hasAttr("valid")?(a.setAttribute("success",""),a.removeAttribute("error")):(a.removeAttribute("error"),a.removeAttribute("success"))}}isWithin(e){let t=e;for(;t&&t!==this;)t=t.parentElement;return t===this}isFocusedInside(){const e=document.activeElement;return!!(e&&this.isWithin(e))}};He.styles=m`
|
|
1365
1365
|
:host {
|
|
1366
1366
|
display: inline-block;
|
|
1367
1367
|
position: relative;
|
|
@@ -1473,11 +1473,11 @@
|
|
|
1473
1473
|
:host([invalid]) .error-message {
|
|
1474
1474
|
display: block;
|
|
1475
1475
|
}
|
|
1476
|
-
`;let
|
|
1477
|
-
${
|
|
1478
|
-
${
|
|
1479
|
-
${i?`maxlength="${
|
|
1480
|
-
></textarea>`);const
|
|
1476
|
+
`;let X=He;function nr(){return b("fx-floatlabel",X)}nr();const Ye=class Ye extends g{static get observedAttributes(){return["size","placeholder","disabled","readonly","rows","maxlength"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}render(){const e=this.getAttr("placeholder"),t=this.hasAttr("readonly"),r=this.hasAttr("disabled"),a=this.getAttr("rows"),i=this.getAttr("maxlength");this.setTemplate(`<textarea class="field" part="textarea"
|
|
1477
|
+
${e?`placeholder="${c(e)}"`:""}
|
|
1478
|
+
${a?`rows="${c(a)}"`:""}
|
|
1479
|
+
${i?`maxlength="${c(i)}"`:""}
|
|
1480
|
+
></textarea>`);const o=this.root.querySelector(".field");if(!o)return;o.value=this.getAttr("value"),r&&o.setAttribute("disabled",""),t&&o.setAttribute("readonly","");const s=n=>{this.value=o.value,this.dispatchEvent(new CustomEvent(n,{bubbles:!0,composed:!0,detail:{value:o.value}}))};o.addEventListener("input",n=>{n.stopPropagation(),s("input")}),o.addEventListener("change",n=>{n.stopPropagation(),s("change")})}};Ye.styles=m`
|
|
1481
1481
|
:host {
|
|
1482
1482
|
display: inline-block;
|
|
1483
1483
|
vertical-align: middle;
|
|
@@ -1524,18 +1524,18 @@
|
|
|
1524
1524
|
}
|
|
1525
1525
|
:host([size='sm']) .field { width: 220px; min-height: var(--fx-size-sm); padding: var(--fx-space-sm) var(--fx-space-md); }
|
|
1526
1526
|
:host([size='lg']) .field { width: 300px; min-height: calc(var(--fx-size-lg) + 80px); }
|
|
1527
|
-
`;let
|
|
1528
|
-
<div class="overlay" part="overlay" ${
|
|
1529
|
-
<div class="dialog" role="dialog" aria-modal="true" aria-label="${
|
|
1527
|
+
`;let U=Ye;function lr(){return b("fx-textarea",U)}lr();const Xe=class Xe extends g{constructor(){super(...arguments),this._previouslyFocused=null}static get observedAttributes(){return["open","size","heading"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){const e=this.open,t=this.getAttr("heading");if(this.setTemplate(`
|
|
1528
|
+
<div class="overlay" part="overlay" ${e?"":"hidden"}>
|
|
1529
|
+
<div class="dialog" role="dialog" aria-modal="true" aria-label="${c(t)}" tabindex="-1">
|
|
1530
1530
|
<header>
|
|
1531
|
-
<h2>${
|
|
1531
|
+
<h2>${c(t)}</h2>
|
|
1532
1532
|
<button type="button" class="close" part="close" aria-label="Fechar">×</button>
|
|
1533
1533
|
</header>
|
|
1534
1534
|
<div class="body"><slot></slot></div>
|
|
1535
1535
|
<footer part="footer"><slot name="footer"></slot></footer>
|
|
1536
1536
|
</div>
|
|
1537
1537
|
</div>
|
|
1538
|
-
`),!
|
|
1538
|
+
`),!e)return;const r=this.root.querySelector(".overlay"),a=this.root.querySelector(".close"),i=()=>{var s;this.open=!1,(s=this._cleanup)==null||s.call(this),this._cleanup=void 0,this._restoreFocus(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))};r==null||r.addEventListener("click",s=>{s.target===r&&i()}),a==null||a.addEventListener("click",i);const o=s=>{if(s.key==="Escape"){s.stopPropagation(),i();return}s.key==="Tab"&&this._trapFocus(s)};document.addEventListener("keydown",o),this._cleanup=()=>document.removeEventListener("keydown",o),requestAnimationFrame(()=>{var s;this._previouslyFocused=document.activeElement,(s=this.root.querySelector(".dialog"))==null||s.focus()}),this.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0}))}_trapFocus(e){const t=this.root.querySelector(".dialog");if(!t)return;const r=t.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!r.length)return;const a=r[0],i=r[r.length-1],o=this.root.activeElement;e.shiftKey&&(o===a||o===t)?(e.preventDefault(),i.focus()):!e.shiftKey&&o===i&&(e.preventDefault(),a.focus())}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._cleanup)==null||e.call(this),this._cleanup=void 0,this._restoreFocus()}};Xe.styles=m`
|
|
1539
1539
|
:host { display: contents; }
|
|
1540
1540
|
.overlay {
|
|
1541
1541
|
position: fixed;
|
|
@@ -1604,8 +1604,1163 @@
|
|
|
1604
1604
|
gap: var(--fx-space-sm);
|
|
1605
1605
|
}
|
|
1606
1606
|
footer[hidden] { display: none; }
|
|
1607
|
-
`;let
|
|
1607
|
+
`;let J=Xe;function cr(){return b("fx-dialog",J)}cr();const W="Fenix Icons",T=`
|
|
1608
|
+
.fx-icon {
|
|
1609
|
+
font-family: ${`var(--fx-icon-font, ${W})`};
|
|
1610
|
+
font-weight: normal;
|
|
1611
|
+
font-style: normal;
|
|
1612
|
+
line-height: 1;
|
|
1613
|
+
letter-spacing: normal;
|
|
1614
|
+
text-transform: none;
|
|
1615
|
+
display: inline-block;
|
|
1616
|
+
white-space: nowrap;
|
|
1617
|
+
word-wrap: normal;
|
|
1618
|
+
direction: ltr;
|
|
1619
|
+
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
|
|
1620
|
+
-webkit-font-smoothing: antialiased;
|
|
1621
|
+
text-rendering: optimizeLegibility;
|
|
1622
|
+
user-select: none;
|
|
1623
|
+
}
|
|
1624
|
+
.fx-icon.fx-icon-fill { font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
|
|
1625
|
+
.fx-icon.fx-icon-bold { font-variation-settings: 'FILL' 0, 'wght' 600, 'GRAD' 0, 'opsz' 24; }
|
|
1626
|
+
`;function q(d){return/^[a-z][a-z0-9_]*$/.test(d.trim())}const Ue=class Ue extends g{constructor(){super(...arguments),this._previouslyFocused=null,this._onReposition=()=>{if(!this.open)return;const e=this.root.querySelector(".popup");e&&!e.hidden&&this._position(e)}}static get observedAttributes(){return["open","target","message","icon","accept-label","reject-label","position"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){var h,_;const e=this.getAttr("message"),t=this.getAttr("icon"),r=q(t);r&&Promise.resolve().then(()=>Te);const a=this.getAttr("accept-label","Sim"),i=this.getAttr("reject-label","Não");if(this.setTemplate(`
|
|
1627
|
+
<div class="popup" part="popup" role="alertdialog" aria-modal="false" ${this.open?"":"hidden"}>
|
|
1628
|
+
<div class="message" part="message">
|
|
1629
|
+
${t?`<span class="icon${r?" fx-icon":""}" aria-hidden="true">${c(t)}</span>`:""}
|
|
1630
|
+
<p class="text"><slot>${c(e)}</slot></p>
|
|
1631
|
+
</div>
|
|
1632
|
+
<footer part="footer">
|
|
1633
|
+
<slot name="reject">
|
|
1634
|
+
<button type="button" class="reject" part="reject-button">${c(i)}</button>
|
|
1635
|
+
</slot>
|
|
1636
|
+
<slot name="accept">
|
|
1637
|
+
<button type="button" class="accept" part="accept-button">${c(a)}</button>
|
|
1638
|
+
</slot>
|
|
1639
|
+
</footer>
|
|
1640
|
+
</div>
|
|
1641
|
+
`),!this.open)return;const o=this.root.querySelector(".popup");if(!o)return;const s=u=>{var p;this.open=!1,(p=this._cleanup)==null||p.call(this),this._cleanup=void 0,this._restoreFocus(),this.dispatchEvent(new CustomEvent(u,{bubbles:!0,composed:!0}))};(h=this.root.querySelector(".reject"))==null||h.addEventListener("click",()=>s("reject")),(_=this.root.querySelector(".accept"))==null||_.addEventListener("click",()=>s("accept"));const n=u=>{u.key==="Escape"&&(u.stopPropagation(),s("reject"))},l=u=>{const p=u.composedPath(),v=this._anchor(),f=v?p.includes(v):!1;!p.includes(o)&&!f&&s("reject")};document.addEventListener("keydown",n),document.addEventListener("pointerdown",l,!0),this._cleanup=()=>{document.removeEventListener("keydown",n),document.removeEventListener("pointerdown",l,!0)},this._position(o),this._previouslyFocused=document.activeElement,requestAnimationFrame(()=>{var u;(u=this.root.querySelector("button.accept"))==null||u.focus()})}_anchor(){const e=this.getAttr("target");if(!e)return null;try{return document.querySelector(e)}catch(t){return null}}_position(e){const t=this._anchor();if(!t)return;e.hidden=!1;const r=t.getBoundingClientRect(),a=e.getBoundingClientRect(),i=8,o=8;let s;const n=this.getAttr("position","auto");n==="top"?s="top":n==="bottom"?s="bottom":s=r.bottom+i+a.height<=window.innerHeight-o?"bottom":"top";const l=Math.min(Math.max(o,r.left+r.width/2-a.width/2),window.innerWidth-a.width-o),h=s==="bottom"?r.bottom+i:r.top-i-a.height;e.dataset.side=s,e.style.left=`${Math.round(l)}px`,e.style.top=`${Math.round(Math.max(o,h))}px`;const _=Math.min(Math.max(r.left+r.width/2-l,16),a.width-16);e.style.setProperty("--fxcp-arrow-x",`${Math.round(_)}px`)}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}connectedCallback(){super.connectedCallback(),window.addEventListener("scroll",this._onReposition,!0),window.addEventListener("resize",this._onReposition)}disconnectedCallback(){var e;super.disconnectedCallback(),window.removeEventListener("scroll",this._onReposition,!0),window.removeEventListener("resize",this._onReposition),(e=this._cleanup)==null||e.call(this),this._cleanup=void 0,this._restoreFocus()}};Ue.styles=m`
|
|
1642
|
+
:host { display: contents; }
|
|
1643
|
+
.popup {
|
|
1644
|
+
position: fixed;
|
|
1645
|
+
margin: 0;
|
|
1646
|
+
background: var(--fx-surface-background);
|
|
1647
|
+
border: 1px solid var(--fx-border-default);
|
|
1648
|
+
border-radius: var(--fx-radius-md);
|
|
1649
|
+
box-shadow: var(--fx-shadow-lg);
|
|
1650
|
+
padding: var(--fx-space-md) var(--fx-space-lg);
|
|
1651
|
+
min-width: 220px;
|
|
1652
|
+
max-width: min(380px, calc(100vw - 24px));
|
|
1653
|
+
font-family: var(--fx-font-family);
|
|
1654
|
+
font-size: var(--fx-font-size);
|
|
1655
|
+
color: var(--fx-text-default);
|
|
1656
|
+
z-index: var(--fx-z-modal, 1100);
|
|
1657
|
+
animation: fxcp-pop var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease);
|
|
1658
|
+
}
|
|
1659
|
+
.popup[hidden] { display: none; }
|
|
1660
|
+
@keyframes fxcp-pop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
|
|
1661
|
+
/* seta indicadora */
|
|
1662
|
+
.popup::before {
|
|
1663
|
+
content: '';
|
|
1664
|
+
position: absolute;
|
|
1665
|
+
left: var(--fxcp-arrow-x, 50%);
|
|
1666
|
+
border: 7px solid transparent;
|
|
1667
|
+
}
|
|
1668
|
+
.popup[data-side='bottom']::before {
|
|
1669
|
+
top: -14px;
|
|
1670
|
+
border-bottom-color: var(--fx-border-default);
|
|
1671
|
+
}
|
|
1672
|
+
.popup[data-side='top']::before {
|
|
1673
|
+
bottom: -14px;
|
|
1674
|
+
border-top-color: var(--fx-border-default);
|
|
1675
|
+
}
|
|
1676
|
+
.popup::after {
|
|
1677
|
+
content: '';
|
|
1678
|
+
position: absolute;
|
|
1679
|
+
left: var(--fxcp-arrow-x, 50%);
|
|
1680
|
+
border: 6px solid transparent;
|
|
1681
|
+
}
|
|
1682
|
+
.popup[data-side='bottom']::after {
|
|
1683
|
+
top: -12px;
|
|
1684
|
+
border-bottom-color: var(--fx-surface-background);
|
|
1685
|
+
}
|
|
1686
|
+
.popup[data-side='top']::after {
|
|
1687
|
+
bottom: -12px;
|
|
1688
|
+
border-top-color: var(--fx-surface-background);
|
|
1689
|
+
}
|
|
1690
|
+
.message {
|
|
1691
|
+
display: flex;
|
|
1692
|
+
align-items: flex-start;
|
|
1693
|
+
gap: var(--fx-space-sm);
|
|
1694
|
+
}
|
|
1695
|
+
.icon { font-size: calc(var(--fx-font-size) + 4px); line-height: 1.2; }
|
|
1696
|
+
${T}
|
|
1697
|
+
.icon.fx-icon { font-size: calc(var(--fx-font-size) + 6px); color: var(--fx-color-primary); }
|
|
1698
|
+
.text { margin: 0; }
|
|
1699
|
+
footer {
|
|
1700
|
+
display: flex;
|
|
1701
|
+
justify-content: flex-end;
|
|
1702
|
+
gap: var(--fx-space-sm);
|
|
1703
|
+
margin-top: var(--fx-space-md);
|
|
1704
|
+
}
|
|
1705
|
+
footer button {
|
|
1706
|
+
font-family: var(--fx-font-family);
|
|
1707
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
1708
|
+
padding: var(--fx-space-xs) var(--fx-space-md);
|
|
1709
|
+
border-radius: var(--fx-radius-sm);
|
|
1710
|
+
border: 1px solid var(--fx-border-default);
|
|
1711
|
+
background: var(--fx-surface-background);
|
|
1712
|
+
color: var(--fx-text-default);
|
|
1713
|
+
cursor: pointer;
|
|
1714
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
1715
|
+
}
|
|
1716
|
+
footer button:hover { background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.04)); }
|
|
1717
|
+
footer button.accept {
|
|
1718
|
+
background: var(--fx-color-primary);
|
|
1719
|
+
border-color: var(--fx-color-primary);
|
|
1720
|
+
color: #fff;
|
|
1721
|
+
}
|
|
1722
|
+
footer button.accept:hover { filter: brightness(0.92); background: var(--fx-color-primary); }
|
|
1723
|
+
`;let G=Ue;function dr(){return b("fx-confirmpopup",G)}dr();const Je=class Je extends g{constructor(){super(...arguments),this._files=[],this._done=!1}static get observedAttributes(){return["mode","size","severity","label","icon","accept","multiple","disabled","show-progress","progress","value"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get progress(){return Math.min(100,Math.max(0,Number(this.getAttr("progress","0"))||0))}set progress(e){this.setAttribute("progress",String(e))}get files(){return this._files}set files(e){this._files=Array.from(e),this.value=this._files.map(t=>t.name).join(", "),this._syncFilesArea()}render(){const t=this.getAttr("mode","basic")==="advanced",r=this.getAttr("label","Escolher arquivo"),a=this.getAttr("icon"),i=this.getAttr("accept"),o=this.hasAttr("multiple"),s=this.hasAttr("disabled"),n=this.hasAttr("show-progress"),l=this.progress,h=`<input type="file" class="picker" ${i?`accept="${c(i)}"`:""} ${o?"multiple":""} ${s?"disabled":""} />`;this.setTemplate(`
|
|
1724
|
+
${t?`<div class="drop" part="dropzone" role="button" tabindex="0" aria-label="${c(r)}">
|
|
1725
|
+
${a?`<span class="icon" aria-hidden="true">${c(a)}</span>`:""}
|
|
1726
|
+
<span>${c(r)}</span>
|
|
1727
|
+
<span class="hint">ou arraste e solte aqui</span>
|
|
1728
|
+
</div>`:`<button type="button" class="btn" part="button">
|
|
1729
|
+
${a?`<span class="icon" aria-hidden="true">${c(a)}</span>`:""}
|
|
1730
|
+
<span>${c(r)}</span>
|
|
1731
|
+
</button>`}
|
|
1732
|
+
${h}
|
|
1733
|
+
<div class="files" part="files"></div>
|
|
1734
|
+
${n?`
|
|
1735
|
+
<div class="progress-row" part="progress">
|
|
1736
|
+
<div class="track" role="progressbar" aria-valuenow="${l}" aria-valuemin="0" aria-valuemax="100">
|
|
1737
|
+
<div class="bar" style="width: ${l}%"></div>
|
|
1738
|
+
</div>
|
|
1739
|
+
<span class="pct">${l}%</span>
|
|
1740
|
+
</div>`:""}
|
|
1741
|
+
`),this._bindPicker(),this._syncFilesArea(),!this._done&&n&&l>=100&&this._files.length&&(this._done=!0,this.dispatchEvent(new CustomEvent("complete",{bubbles:!0,composed:!0}))),l<100&&(this._done=!1)}_picker(){return this.root.querySelector(".picker")}_bindPicker(){var a;const e=this._picker();if(!e)return;const t=(a=this.root.querySelector(".btn"))!=null?a:this.root.querySelector(".drop");t==null||t.addEventListener("click",()=>e.click()),t==null||t.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),e.click())}),e.addEventListener("change",()=>{var i;return this._acceptFiles((i=e.files)!=null?i:[])});const r=this.root.querySelector(".drop");r&&(r.addEventListener("dragover",i=>{i.preventDefault(),r.classList.add("over")}),r.addEventListener("dragleave",()=>r.classList.remove("over")),r.addEventListener("drop",i=>{var o;i.preventDefault(),r.classList.remove("over"),(o=i.dataTransfer)!=null&&o.files.length&&this._acceptFiles(i.dataTransfer.files)}))}_acceptFiles(e){const t=this.hasAttr("multiple")?Array.from(e):[e[0]].filter(Boolean);this.files=t;const r=this._picker();r&&(r.value=""),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{files:t}}))}_fmtSize(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}_syncFilesArea(){var t,r;const e=(r=(t=this.root)==null?void 0:t.querySelector)==null?void 0:r.call(t,".files");e&&(e.innerHTML=this._files.map((a,i)=>`
|
|
1742
|
+
<div class="file" part="file">
|
|
1743
|
+
<span class="name">${c(a.name)}</span>
|
|
1744
|
+
<span class="size">${this._fmtSize(a.size)}</span>
|
|
1745
|
+
<button type="button" class="remove" data-i="${i}" part="remove" aria-label="Remover ${c(a.name)}">×</button>
|
|
1746
|
+
</div>`).join(""),e.querySelectorAll(".remove").forEach(a=>a.addEventListener("click",()=>{const i=this._files.splice(Number(a.dataset.i),1)[0];this.value=this._files.map(o=>o.name).join(", "),this.progress=0,this._syncFilesArea(),this.dispatchEvent(new CustomEvent("remove",{bubbles:!0,composed:!0,detail:{file:i}}))})))}};Je.styles=m`
|
|
1747
|
+
:host {
|
|
1748
|
+
display: inline-block;
|
|
1749
|
+
font-family: var(--fx-font-family);
|
|
1750
|
+
font-size: var(--fx-font-size);
|
|
1751
|
+
}
|
|
1752
|
+
:host([disabled]) { opacity: 0.55; pointer-events: none; }
|
|
1753
|
+
input[type='file'] { display: none; }
|
|
1754
|
+
|
|
1755
|
+
/* ---- botão (basic) ---- */
|
|
1756
|
+
.btn {
|
|
1757
|
+
display: inline-flex;
|
|
1758
|
+
align-items: center;
|
|
1759
|
+
justify-content: center;
|
|
1760
|
+
gap: var(--fx-space-sm);
|
|
1761
|
+
min-height: var(--fx-size-md);
|
|
1762
|
+
padding: var(--fx-space-md) var(--fx-space-lg);
|
|
1763
|
+
font-family: inherit;
|
|
1764
|
+
font-size: inherit;
|
|
1765
|
+
font-weight: var(--fx-font-weight);
|
|
1766
|
+
color: var(--fx-text-default);
|
|
1767
|
+
background-color: var(--fx-surface-background);
|
|
1768
|
+
border: 1px solid var(--fx-border-default);
|
|
1769
|
+
border-radius: var(--fx-radius-md);
|
|
1770
|
+
cursor: pointer;
|
|
1771
|
+
box-sizing: border-box;
|
|
1772
|
+
transition:
|
|
1773
|
+
border-color var(--fx-motion-duration-normal) var(--fx-motion-easing),
|
|
1774
|
+
box-shadow var(--fx-motion-duration-normal) var(--fx-motion-easing),
|
|
1775
|
+
background var(--fx-motion-duration-normal) var(--fx-motion-easing);
|
|
1776
|
+
}
|
|
1777
|
+
.btn:hover { border-color: var(--fx-border-hover); background: var(--fx-surface-surface-hover, rgba(0,0,0,0.03)); }
|
|
1778
|
+
.btn:focus-visible {
|
|
1779
|
+
outline: none;
|
|
1780
|
+
border-color: var(--fx-color-primary);
|
|
1781
|
+
box-shadow: var(--fx-effect-focus-ring, none);
|
|
1782
|
+
}
|
|
1783
|
+
/* Severities (como no <fx-button>) — aplicam-se ao botão do modo basic */
|
|
1784
|
+
:host([severity='primary']) .btn { background: var(--fx-color-primary); border-color: transparent; color: #fff; }
|
|
1785
|
+
:host([severity='secondary']) .btn { background: var(--fx-color-secondary); border-color: transparent; color: #fff; }
|
|
1786
|
+
:host([severity='success']) .btn { background: var(--fx-color-success); border-color: transparent; color: #fff; }
|
|
1787
|
+
:host([severity='warning']) .btn { background: var(--fx-color-warning); border-color: transparent; color: #fff; }
|
|
1788
|
+
:host([severity='danger']) .btn { background: var(--fx-color-danger); border-color: transparent; color: #fff; }
|
|
1789
|
+
:host([severity='info']) .btn { background: var(--fx-color-info); border-color: transparent; color: #fff; }
|
|
1790
|
+
:host([severity]) .btn:hover { filter: brightness(0.88); }
|
|
1791
|
+
:host([severity]) .btn:focus-visible { border-color: transparent; }
|
|
1792
|
+
:host([size='sm']) .btn { min-height: var(--fx-size-sm); padding: var(--fx-space-sm) var(--fx-space-md); font-size: calc(var(--fx-font-size) - 2px); }
|
|
1793
|
+
:host([size='lg']) .btn { min-height: var(--fx-size-lg); padding: var(--fx-space-lg) var(--fx-space-xl); font-size: calc(var(--fx-font-size) + 4px); }
|
|
1794
|
+
:host([size='sm']) .drop { min-height: 72px; }
|
|
1795
|
+
:host([size='lg']) .drop { min-height: 132px; }
|
|
1796
|
+
|
|
1797
|
+
/* ---- dropzone (advanced) ---- */
|
|
1798
|
+
.drop {
|
|
1799
|
+
display: flex;
|
|
1800
|
+
flex-direction: column;
|
|
1801
|
+
align-items: center;
|
|
1802
|
+
justify-content: center;
|
|
1803
|
+
gap: var(--fx-space-sm);
|
|
1804
|
+
min-height: 100px;
|
|
1805
|
+
padding: var(--fx-space-lg);
|
|
1806
|
+
border: 2px dashed var(--fx-border-default);
|
|
1807
|
+
border-radius: var(--fx-radius-md);
|
|
1808
|
+
color: var(--fx-text-muted);
|
|
1809
|
+
cursor: pointer;
|
|
1810
|
+
text-align: center;
|
|
1811
|
+
transition: border-color var(--fx-motion-duration-normal) var(--fx-motion-easing), background var(--fx-motion-duration-normal) var(--fx-motion-easing);
|
|
1812
|
+
}
|
|
1813
|
+
.drop:hover, .drop.over {
|
|
1814
|
+
border-color: var(--fx-color-primary);
|
|
1815
|
+
background: color-mix(in srgb, var(--fx-color-primary) 6%, transparent);
|
|
1816
|
+
}
|
|
1817
|
+
.drop .icon { font-size: calc(var(--fx-font-size) + 12px); line-height: 1; }
|
|
1818
|
+
.drop .hint { font-size: calc(var(--fx-font-size) - 2px); }
|
|
1819
|
+
|
|
1820
|
+
/* ---- ícone comum ---- */
|
|
1821
|
+
.icon { line-height: 1; }
|
|
1822
|
+
|
|
1823
|
+
/* ---- arquivo(s) selecionado(s) ---- */
|
|
1824
|
+
.files { display: flex; flex-direction: column; gap: var(--fx-space-xs); margin-top: var(--fx-space-sm); }
|
|
1825
|
+
.file {
|
|
1826
|
+
display: flex;
|
|
1827
|
+
align-items: center;
|
|
1828
|
+
gap: var(--fx-space-sm);
|
|
1829
|
+
padding: var(--fx-space-xs) var(--fx-space-sm);
|
|
1830
|
+
border: 1px solid var(--fx-border-default);
|
|
1831
|
+
border-radius: var(--fx-radius-sm);
|
|
1832
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
1833
|
+
color: var(--fx-text-default);
|
|
1834
|
+
}
|
|
1835
|
+
.file .name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
1836
|
+
.file .size { color: var(--fx-text-muted); white-space: nowrap; }
|
|
1837
|
+
.file .remove {
|
|
1838
|
+
border: none;
|
|
1839
|
+
background: transparent;
|
|
1840
|
+
color: var(--fx-text-muted);
|
|
1841
|
+
cursor: pointer;
|
|
1842
|
+
font-size: calc(var(--fx-font-size) + 2px);
|
|
1843
|
+
line-height: 1;
|
|
1844
|
+
padding: 0 var(--fx-space-xs);
|
|
1845
|
+
border-radius: var(--fx-radius-full);
|
|
1846
|
+
}
|
|
1847
|
+
.file .remove:hover { color: var(--fx-color-danger); }
|
|
1848
|
+
|
|
1849
|
+
/* ---- progresso ---- */
|
|
1850
|
+
.progress-row { display: flex; align-items: center; gap: var(--fx-space-sm); margin-top: var(--fx-space-sm); }
|
|
1851
|
+
.track {
|
|
1852
|
+
flex: 1;
|
|
1853
|
+
height: 6px;
|
|
1854
|
+
background: var(--fx-surface-surface-hover);
|
|
1855
|
+
border-radius: var(--fx-radius-full);
|
|
1856
|
+
overflow: hidden;
|
|
1857
|
+
}
|
|
1858
|
+
.bar {
|
|
1859
|
+
height: 100%;
|
|
1860
|
+
width: 0%;
|
|
1861
|
+
background: var(--fx-color-primary);
|
|
1862
|
+
border-radius: var(--fx-radius-full);
|
|
1863
|
+
transition: width var(--fx-motion-duration-normal) var(--fx-motion-easing);
|
|
1864
|
+
}
|
|
1865
|
+
:host([progress='100']) .bar { background: var(--fx-color-success); }
|
|
1866
|
+
.pct {
|
|
1867
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
1868
|
+
font-weight: 600;
|
|
1869
|
+
color: var(--fx-text-default);
|
|
1870
|
+
min-width: 34px;
|
|
1871
|
+
text-align: right;
|
|
1872
|
+
}
|
|
1873
|
+
`;let Z=Je;function pr(){return b("fx-fileupload",Z)}pr();const We=class We extends g{constructor(){super(...arguments),this._dragging=!1}static get observedAttributes(){return["min","max","step","size","disabled","show-value","label"]}get min(){return this._num("min",0)}get max(){return this._num("max",100)}get step(){return this._num("step",1)}get value(){return this._clamp(this._num("value",this.min))}set value(e){const t=this._snap(e);this.setAttribute("value",String(t)),this.isConnected&&this._syncVisual()}_num(e,t){const r=this.getAttribute(e);if(r===null||r==="")return t;const a=Number(r);return Number.isFinite(a)?a:t}_clamp(e){return Math.min(this.max,Math.max(this.min,e))}_snap(e){const t=this.step||1,r=Math.round((this._clamp(e)-this.min)/t)*t+this.min;return Number(this._clamp(r).toFixed(10))}_pct(){const e=this.max-this.min;return e<=0?0:(this.value-this.min)/e*100}render(){const e=this._pct(),t=this.getAttr("label"),r=this.hasAttr("show-value");this.setTemplate(`
|
|
1874
|
+
${t?`<div class="label" part="label"><span>${t}</span>${r?`<span>${this.value}</span>`:""}</div>`:""}
|
|
1875
|
+
<div class="track-wrap" part="track" tabindex="0" role="slider"
|
|
1876
|
+
aria-valuemin="${this.min}" aria-valuemax="${this.max}" aria-valuenow="${this.value}"
|
|
1877
|
+
aria-label="${t||"Slider"}" ${this.hasAttr("disabled")?'aria-disabled="true"':""}>
|
|
1878
|
+
<div class="track"><div class="fill" part="fill" style="width: ${e}%"></div></div>
|
|
1879
|
+
<div class="thumb" part="thumb" style="left: ${e}%"></div>
|
|
1880
|
+
${r?`<span class="value" style="left: ${e}%">${this.value}</span>`:""}
|
|
1881
|
+
</div>
|
|
1882
|
+
`),this._bindPointer(),this._bindKeyboard()}_wrap(){return this.root.querySelector(".track-wrap")}_bindPointer(){const e=this._wrap();if(!e)return;const t=i=>{const o=e.getBoundingClientRect(),s=o.width<=0?0:(i.clientX-o.left)/o.width;return this.min+s*(this.max-this.min)},r=i=>{this._dragging&&(this.value=t(i),this._syncVisual(),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value}})))},a=i=>{this._dragging&&(this._dragging=!1,e.classList.remove("dragging"),window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",a),this.value=t(i),this._syncVisual(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}})))};e.addEventListener("pointerdown",i=>{this.hasAttr("disabled")||(this._dragging=!0,e.classList.add("dragging"),e.focus(),this.value=t(i),this._syncVisual(),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value}})),window.addEventListener("pointermove",r),window.addEventListener("pointerup",a))})}_bindKeyboard(){const e=this._wrap();e&&e.addEventListener("keydown",t=>{if(this.hasAttr("disabled"))return;const r=t,a=(this.max-this.min)/10;let i=null;switch(r.key){case"ArrowRight":case"ArrowUp":i=this.value+this.step;break;case"ArrowLeft":case"ArrowDown":i=this.value-this.step;break;case"PageUp":i=this.value+a;break;case"PageDown":i=this.value-a;break;case"Home":i=this.min;break;case"End":i=this.max;break;default:return}r.preventDefault(),this.value=i,this._syncVisual(),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value}})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}}))})}_syncVisual(){const e=this._pct(),t=this._wrap();if(!t)return;const r=t.querySelector(".fill"),a=t.querySelector(".thumb"),i=t.querySelector(".value");r&&(r.style.width=`${e}%`),a&&(a.style.left=`${e}%`),i&&(i.style.left=`${e}%`,i.textContent=String(this.value)),t.setAttribute("aria-valuenow",String(this.value));const o=this.root.querySelector(".label span:last-child");o&&(o.textContent=String(this.value))}};We.styles=m`
|
|
1883
|
+
:host {
|
|
1884
|
+
display: block;
|
|
1885
|
+
font-family: var(--fx-font-family);
|
|
1886
|
+
font-size: var(--fx-font-size);
|
|
1887
|
+
--_track-h: 6px;
|
|
1888
|
+
--_thumb: 18px;
|
|
1889
|
+
}
|
|
1890
|
+
:host([size='sm']) { --_track-h: 4px; --_thumb: 14px; }
|
|
1891
|
+
:host([size='lg']) { --_track-h: 8px; --_thumb: 22px; }
|
|
1892
|
+
:host([disabled]) { opacity: 0.55; pointer-events: none; }
|
|
1893
|
+
|
|
1894
|
+
.label {
|
|
1895
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
1896
|
+
color: var(--fx-text-muted);
|
|
1897
|
+
margin-bottom: var(--fx-space-xs);
|
|
1898
|
+
display: flex;
|
|
1899
|
+
justify-content: space-between;
|
|
1900
|
+
gap: var(--fx-space-md);
|
|
1901
|
+
align-items: center;
|
|
1902
|
+
}
|
|
1903
|
+
.track-wrap {
|
|
1904
|
+
position: relative;
|
|
1905
|
+
display: flex;
|
|
1906
|
+
align-items: center;
|
|
1907
|
+
height: var(--_thumb);
|
|
1908
|
+
cursor: pointer;
|
|
1909
|
+
touch-action: none;
|
|
1910
|
+
}
|
|
1911
|
+
.track {
|
|
1912
|
+
width: 100%;
|
|
1913
|
+
height: var(--_track-h);
|
|
1914
|
+
border-radius: var(--fx-radius-full);
|
|
1915
|
+
background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.08));
|
|
1916
|
+
overflow: hidden;
|
|
1917
|
+
}
|
|
1918
|
+
.fill {
|
|
1919
|
+
height: 100%;
|
|
1920
|
+
background: var(--fx-color-primary);
|
|
1921
|
+
border-radius: var(--fx-radius-full);
|
|
1922
|
+
}
|
|
1923
|
+
.thumb {
|
|
1924
|
+
position: absolute;
|
|
1925
|
+
top: 50%;
|
|
1926
|
+
width: var(--_thumb);
|
|
1927
|
+
height: var(--_thumb);
|
|
1928
|
+
border-radius: var(--fx-radius-full);
|
|
1929
|
+
background: var(--fx-surface-background);
|
|
1930
|
+
border: 2px solid var(--fx-color-primary);
|
|
1931
|
+
box-shadow: var(--fx-shadow-sm);
|
|
1932
|
+
transform: translate(-50%, -50%);
|
|
1933
|
+
transition: box-shadow var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
1934
|
+
box-sizing: border-box;
|
|
1935
|
+
}
|
|
1936
|
+
.track-wrap:hover .thumb,
|
|
1937
|
+
.track-wrap.dragging .thumb { box-shadow: var(--fx-effect-focus-ring, none); }
|
|
1938
|
+
.track-wrap:focus-visible { outline: none; }
|
|
1939
|
+
.track-wrap:focus-visible .thumb {
|
|
1940
|
+
box-shadow: var(--fx-effect-focus-ring, none);
|
|
1941
|
+
}
|
|
1942
|
+
.value {
|
|
1943
|
+
position: absolute;
|
|
1944
|
+
bottom: calc(100% + 6px);
|
|
1945
|
+
transform: translateX(-50%);
|
|
1946
|
+
background: var(--fx-text-default, #1e293b);
|
|
1947
|
+
color: var(--fx-surface-background, #fff);
|
|
1948
|
+
font-size: calc(var(--fx-font-size) - 3px);
|
|
1949
|
+
font-weight: 600;
|
|
1950
|
+
padding: 2px var(--fx-space-xs);
|
|
1951
|
+
border-radius: var(--fx-radius-sm);
|
|
1952
|
+
white-space: nowrap;
|
|
1953
|
+
pointer-events: none;
|
|
1954
|
+
opacity: 0;
|
|
1955
|
+
transition: opacity var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
1956
|
+
}
|
|
1957
|
+
.track-wrap:hover .value,
|
|
1958
|
+
.track-wrap.dragging .value,
|
|
1959
|
+
.track-wrap:focus-visible .value { opacity: 1; }
|
|
1960
|
+
`;let Q=We;function hr(){return b("fx-slider",Q)}hr();const Ge=class Ge extends g{static get observedAttributes(){return["variant","size","removable","selectable","selected","disabled","icon"]}get selected(){return this.hasAttr("selected")}set selected(e){this.toggleAttr("selected",e)}render(){const e=this.getAttr("icon"),t=this.hasAttr("removable"),r=this.hasAttr("disabled"),a=(this.hasAttr("selectable")||this.hasAttr("href"))&&!r;this.setTemplate(`
|
|
1961
|
+
<span class="chip ${a?"clickable":""}" part="chip" role="${a?"button":"status"}"
|
|
1962
|
+
${a?`tabindex="0" aria-pressed="${this.selected}"`:""} ${r?'aria-disabled="true"':""}>
|
|
1963
|
+
${e?`<span class="icon" aria-hidden="true">${c(e)}</span>`:""}
|
|
1964
|
+
<slot></slot>
|
|
1965
|
+
<button type="button" class="remove" part="remove" aria-label="Remover" ${t?"":"hidden"}>×</button>
|
|
1966
|
+
</span>
|
|
1967
|
+
`);const i=this.root.querySelector(".chip"),o=this.root.querySelector(".remove");if(!(!i||!o)&&(o.addEventListener("click",s=>{s.stopPropagation(),this.dispatchEvent(new CustomEvent("remove",{bubbles:!0,composed:!0}))}),a)){const s=()=>{this.hasAttr("selectable")&&(this.selected=!this.selected,i.setAttribute("aria-pressed",String(this.selected))),this.dispatchEvent(new CustomEvent("chip-click",{bubbles:!0,composed:!0}))};i.addEventListener("click",s),i.addEventListener("keydown",n=>{const l=n;(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),s())})}}};Ge.styles=m`
|
|
1968
|
+
:host {
|
|
1969
|
+
display: inline-block;
|
|
1970
|
+
font-family: var(--fx-font-family);
|
|
1971
|
+
font-size: var(--fx-font-size);
|
|
1972
|
+
}
|
|
1973
|
+
.chip {
|
|
1974
|
+
display: inline-flex;
|
|
1975
|
+
align-items: center;
|
|
1976
|
+
gap: var(--fx-space-xs);
|
|
1977
|
+
padding: var(--fx-space-xs) var(--fx-space-md);
|
|
1978
|
+
min-height: var(--fx-size-sm);
|
|
1979
|
+
box-sizing: border-box;
|
|
1980
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
1981
|
+
font-weight: var(--fx-font-weight);
|
|
1982
|
+
color: var(--fx-text-default);
|
|
1983
|
+
background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.06));
|
|
1984
|
+
border: 1px solid transparent;
|
|
1985
|
+
border-radius: var(--fx-radius-full);
|
|
1986
|
+
user-select: none;
|
|
1987
|
+
transition:
|
|
1988
|
+
background var(--fx-motion-duration-fast) var(--fx-motion-easing),
|
|
1989
|
+
border-color var(--fx-motion-duration-fast) var(--fx-motion-easing),
|
|
1990
|
+
filter var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
1991
|
+
}
|
|
1992
|
+
:host([size='md']) .chip { min-height: var(--fx-size-md); padding: var(--fx-space-xs) var(--fx-space-lg); }
|
|
1993
|
+
:host([size='lg']) .chip { min-height: var(--fx-size-lg); font-size: var(--fx-font-size); padding: var(--fx-space-sm) var(--fx-space-xl); }
|
|
1994
|
+
|
|
1995
|
+
:host([variant='primary']) .chip { background: color-mix(in srgb, var(--fx-color-primary) 14%, transparent); color: var(--fx-color-primary); }
|
|
1996
|
+
:host([variant='secondary']) .chip { background: color-mix(in srgb, var(--fx-color-secondary) 14%, transparent); color: var(--fx-color-secondary); }
|
|
1997
|
+
:host([variant='success']) .chip { background: color-mix(in srgb, var(--fx-color-success) 14%, transparent); color: var(--fx-color-success); }
|
|
1998
|
+
:host([variant='warning']) .chip { background: color-mix(in srgb, var(--fx-color-warning) 14%, transparent); color: var(--fx-color-warning); }
|
|
1999
|
+
:host([variant='danger']) .chip { background: color-mix(in srgb, var(--fx-color-danger) 14%, transparent); color: var(--fx-color-danger); }
|
|
2000
|
+
:host([variant='info']) .chip { background: color-mix(in srgb, var(--fx-color-info) 14%, transparent); color: var(--fx-color-info); }
|
|
2001
|
+
|
|
2002
|
+
.chip.clickable { cursor: pointer; }
|
|
2003
|
+
.chip.clickable:hover { filter: brightness(0.95); }
|
|
2004
|
+
:host([selected]) .chip {
|
|
2005
|
+
background: var(--fx-color-primary);
|
|
2006
|
+
color: #fff;
|
|
2007
|
+
}
|
|
2008
|
+
:host([selected]) .chip:hover { filter: brightness(0.92); }
|
|
2009
|
+
:host([disabled]) .chip { opacity: 0.55; cursor: not-allowed; }
|
|
2010
|
+
.chip.clickable:active { transform: scale(0.97); }
|
|
2011
|
+
|
|
2012
|
+
.icon { line-height: 1; }
|
|
2013
|
+
.remove {
|
|
2014
|
+
display: inline-flex;
|
|
2015
|
+
align-items: center;
|
|
2016
|
+
justify-content: center;
|
|
2017
|
+
width: 16px;
|
|
2018
|
+
height: 16px;
|
|
2019
|
+
border: none;
|
|
2020
|
+
border-radius: var(--fx-radius-full);
|
|
2021
|
+
background: transparent;
|
|
2022
|
+
color: inherit;
|
|
2023
|
+
font-size: calc(var(--fx-font-size) + 2px);
|
|
2024
|
+
line-height: 1;
|
|
2025
|
+
cursor: pointer;
|
|
2026
|
+
padding: 0;
|
|
2027
|
+
}
|
|
2028
|
+
.remove:hover { background: rgba(0, 0, 0, 0.18); }
|
|
2029
|
+
.remove[hidden] { display: none; }
|
|
2030
|
+
`;let ee=Ge;function ur(){return b("fx-chip",ee)}ur();const Ze=class Ze extends g{static get observedAttributes(){return["size","shape","variant","src","alt"]}get variant(){return this.getAttr("variant","text")}get src(){return this.getAttr("src")}set src(e){this.setAttribute("src",e)}render(){const e=this.variant,t=this.getAttr("src"),r=this.getAttr("alt",""),a=e==="icon",i=e==="image"&&t;this.setTemplate(`
|
|
2031
|
+
<span class="avatar${i?" image":a?" icon-slot":" text"}" part="avatar" aria-label="${c(r)}" role="img">
|
|
2032
|
+
${i?`<img src="${c(t)}" alt="${c(r)}">`:a?'<slot name="icon" class="slot-icon"></slot>':"<slot></slot>"}
|
|
2033
|
+
</span>
|
|
2034
|
+
`)}};Ze.styles=m`
|
|
2035
|
+
:host {
|
|
2036
|
+
display: inline-block;
|
|
2037
|
+
font-family: var(--fx-font-family);
|
|
2038
|
+
font-size: var(--fx-font-size);
|
|
2039
|
+
--_size: var(--fx-size-md, 36px);
|
|
2040
|
+
--_bg: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.08));
|
|
2041
|
+
--_color: var(--fx-text-default, #1e293b);
|
|
2042
|
+
}
|
|
2043
|
+
:host([size='sm']) { --_size: var(--fx-size-sm, 24px); }
|
|
2044
|
+
:host([size='lg']) { --_size: var(--fx-size-lg, 48px); }
|
|
2045
|
+
|
|
2046
|
+
.avatar {
|
|
2047
|
+
display: inline-flex;
|
|
2048
|
+
align-items: center;
|
|
2049
|
+
justify-content: center;
|
|
2050
|
+
width: var(--_size);
|
|
2051
|
+
height: var(--_size);
|
|
2052
|
+
min-width: var(--_size);
|
|
2053
|
+
box-sizing: border-box;
|
|
2054
|
+
background: var(--_bg);
|
|
2055
|
+
color: var(--_color);
|
|
2056
|
+
font-weight: 700;
|
|
2057
|
+
font-size: calc(var(--_size) / 2.2);
|
|
2058
|
+
line-height: 1;
|
|
2059
|
+
overflow: hidden;
|
|
2060
|
+
text-decoration: none;
|
|
2061
|
+
/* border-radius definido por shape abaixo */
|
|
2062
|
+
}
|
|
2063
|
+
:host([shape='square']) .avatar { border-radius: var(--fx-radius-sm); }
|
|
2064
|
+
:host([shape='rounded']) .avatar { border-radius: var(--fx-radius-md); }
|
|
2065
|
+
:host([shape='circle']) .avatar, :host([shape='']) .avatar { border-radius: var(--fx-radius-full); }
|
|
2066
|
+
|
|
2067
|
+
.avatar img {
|
|
2068
|
+
width: 100%;
|
|
2069
|
+
height: 100%;
|
|
2070
|
+
object-fit: cover;
|
|
2071
|
+
display: block;
|
|
2072
|
+
}
|
|
2073
|
+
.avatar.text { font-size: calc(var(--_size) / 2.6); }
|
|
2074
|
+
.avatar .slot-icon { font-size: calc(var(--_size) / 2.4); }
|
|
2075
|
+
|
|
2076
|
+
/* grupo empilhado */
|
|
2077
|
+
:host(.avatar-group) { display: inline-flex; }
|
|
2078
|
+
:host(.avatar-group) > .avatar {
|
|
2079
|
+
border: 2px solid var(--fx-surface-background);
|
|
2080
|
+
margin-left: calc(var(--_size) / -3);
|
|
2081
|
+
z-index: 1;
|
|
2082
|
+
}
|
|
2083
|
+
:host(.avatar-group) > .avatar:last-child { margin-left: 0; }
|
|
2084
|
+
:host(.avatar-group) > .avatar:hover { z-index: 2; }
|
|
2085
|
+
`;let te=Ze;function fr(){return b("fx-avatar",te)}fr();const Qe=class Qe extends g{static get observedAttributes(){return["variant","size","padded","heading"]}render(){const e=this.getAttr("heading");this.setTemplate(`
|
|
2086
|
+
<div class="card" part="card">
|
|
2087
|
+
<header part="header" ${e?"":"hidden"}>${c(e)}<slot name="header"></slot></header>
|
|
2088
|
+
<div class="body" part="content"><slot></slot></div>
|
|
2089
|
+
<footer part="footer"><slot name="footer"></slot></footer>
|
|
2090
|
+
</div>
|
|
2091
|
+
`)}};Qe.styles=m`
|
|
2092
|
+
:host {
|
|
2093
|
+
display: block;
|
|
2094
|
+
font-family: var(--fx-font-family);
|
|
2095
|
+
font-size: var(--fx-font-size);
|
|
2096
|
+
box-sizing: border-box;
|
|
2097
|
+
}
|
|
2098
|
+
.card {
|
|
2099
|
+
background: var(--fx-surface-background);
|
|
2100
|
+
border: 1px solid var(--fx-border-default);
|
|
2101
|
+
border-radius: var(--fx-radius-lg);
|
|
2102
|
+
box-shadow: var(--fx-shadow-sm);
|
|
2103
|
+
display: flex;
|
|
2104
|
+
flex-direction: column;
|
|
2105
|
+
overflow: hidden;
|
|
2106
|
+
transition: box-shadow var(--fx-motion-duration-normal) var(--fx-motion-easing);
|
|
2107
|
+
}
|
|
2108
|
+
/* Elevado: sombra principal; Flat: sem sombra mas cor plana; Outline: sem sombra e borda sólida */
|
|
2109
|
+
:host([variant='elevated']) .card { box-shadow: var(--fx-shadow-md); }
|
|
2110
|
+
:host([variant='elevated']) .card:hover { box-shadow: var(--fx-shadow-xl); }
|
|
2111
|
+
:host([variant='flat']) .card { box-shadow: none; border-color: transparent; }
|
|
2112
|
+
:host([variant='outline']) .card { box-shadow: none; border-style: solid; border-width: 1px; }
|
|
2113
|
+
:host([variant='ghost']) .card { box-shadow: none; border-color: transparent; background: transparent; }
|
|
2114
|
+
|
|
2115
|
+
/* Tamanhos */
|
|
2116
|
+
:host([size='sm']) .card { border-radius: var(--fx-radius-sm); }
|
|
2117
|
+
:host([size='lg']) .card { border-radius: var(--fx-radius-xl); }
|
|
2118
|
+
|
|
2119
|
+
header {
|
|
2120
|
+
padding: var(--fx-space-md) var(--fx-space-xl);
|
|
2121
|
+
border-bottom: 1px solid var(--fx-border-default);
|
|
2122
|
+
font-weight: 600;
|
|
2123
|
+
color: var(--fx-text-default);
|
|
2124
|
+
font-size: calc(var(--fx-font-size) + 2px);
|
|
2125
|
+
}
|
|
2126
|
+
header[hidden] { display: none; }
|
|
2127
|
+
|
|
2128
|
+
.body {
|
|
2129
|
+
flex: 1 1 auto;
|
|
2130
|
+
}
|
|
2131
|
+
:host([padded]) .body { padding: var(--fx-space-lg) var(--fx-space-xl); }
|
|
2132
|
+
:host([padded]) .body:empty { padding: 0; }
|
|
2133
|
+
|
|
2134
|
+
footer {
|
|
2135
|
+
padding: var(--fx-space-md) var(--fx-space-xl);
|
|
2136
|
+
border-top: 1px solid var(--fx-border-default);
|
|
2137
|
+
display: flex;
|
|
2138
|
+
justify-content: flex-end;
|
|
2139
|
+
gap: var(--fx-space-sm);
|
|
2140
|
+
}
|
|
2141
|
+
footer[hidden] { display: none; }
|
|
2142
|
+
`;let re=Qe;function _r(){return b("fx-card",re)}_r();const et=class et extends g{constructor(){super(...arguments),this._items=[]}static get observedAttributes(){return["size","separator","label"]}render(){const e=this.getAttr("label","Breadcrumb");this.setTemplate(`
|
|
2143
|
+
<nav part="nav" aria-label="${c(e)}"></nav>
|
|
2144
|
+
`),this._decorateItems()}_decorateItems(){var r;const e=(r=this.shadowRoot)==null?void 0:r.querySelector("nav");if(!e)return;const t=this.getAttr("separator","/");this._items.length===0&&(this._items=Array.from(this.children).filter(a=>a.matches('[slot="item"]'))),e.innerHTML="",this._items.forEach((a,i)=>{const o=i===this._items.length-1;if(a.setAttribute("aria-current",o?"page":"false"),e.appendChild(a),o)return;const s=document.createElement("span");s.className="sep",s.setAttribute("part","separator"),s.setAttribute("aria-hidden","true"),s.textContent=t,e.appendChild(s)})}connectedCallback(){super.connectedCallback();const e=new MutationObserver(()=>{this.children.length>0&&(e.disconnect(),this._decorateItems())});e.observe(this,{childList:!0}),this.children.length>0&&this._decorateItems()}disconnectedCallback(){super.disconnectedCallback(),this._items=[]}};et.styles=m`
|
|
2145
|
+
:host {
|
|
2146
|
+
display: block;
|
|
2147
|
+
font-family: var(--fx-font-family);
|
|
2148
|
+
font-size: var(--fx-font-size);
|
|
2149
|
+
}
|
|
2150
|
+
nav {
|
|
2151
|
+
display: flex;
|
|
2152
|
+
align-items: center;
|
|
2153
|
+
flex-wrap: wrap;
|
|
2154
|
+
gap: var(--fx-space-xs);
|
|
2155
|
+
}
|
|
2156
|
+
:host([size='sm']) nav { font-size: calc(var(--fx-font-size) - 2px); }
|
|
2157
|
+
:host([size='lg']) nav { font-size: calc(var(--fx-font-size) + 2px); }
|
|
2158
|
+
|
|
2159
|
+
/* itens (movidos para o nav no shadow DOM) */
|
|
2160
|
+
nav [slot='item'] {
|
|
2161
|
+
display: inline-flex;
|
|
2162
|
+
align-items: center;
|
|
2163
|
+
gap: var(--fx-space-xs);
|
|
2164
|
+
color: var(--fx-text-muted);
|
|
2165
|
+
text-decoration: none;
|
|
2166
|
+
cursor: pointer;
|
|
2167
|
+
transition: color var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2168
|
+
}
|
|
2169
|
+
nav [slot='item']:hover { color: var(--fx-color-primary); }
|
|
2170
|
+
nav [slot='item'][aria-current='page'] {
|
|
2171
|
+
color: var(--fx-text-default);
|
|
2172
|
+
font-weight: 600;
|
|
2173
|
+
cursor: default;
|
|
2174
|
+
}
|
|
2175
|
+
nav [slot='item'][aria-current='page']:hover { color: var(--fx-text-default); }
|
|
2176
|
+
|
|
2177
|
+
.sep {
|
|
2178
|
+
color: var(--fx-text-muted);
|
|
2179
|
+
user-select: none;
|
|
2180
|
+
display: inline-flex;
|
|
2181
|
+
align-items: center;
|
|
2182
|
+
}
|
|
2183
|
+
`;let ae=et;function mr(){return b("fx-breadcrumb",ae)}mr();const tt=class tt extends g{constructor(){super(...arguments),this._previouslyFocused=null,this._onReposition=()=>{if(!this.open)return;const e=this.root.querySelector(".popup");e&&!e.hidden&&this._position(e)},this._onEnter=()=>{this.open=!0},this._onLeave=()=>{this.open=!1},this._onClick=()=>{this.open=!this.open}}static get observedAttributes(){return["open","target","trigger","position","dismissible"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){if(this.setTemplate(`
|
|
2184
|
+
<div class="popup" part="popover" role="dialog" aria-modal="false" ${this.open?"":"hidden"}>
|
|
2185
|
+
<header part="header" hidden><slot name="header"></slot></header>
|
|
2186
|
+
<div class="body" part="content"><slot></slot></div>
|
|
2187
|
+
<footer part="footer" hidden><slot name="footer"></slot></footer>
|
|
2188
|
+
</div>
|
|
2189
|
+
`),!this.open)return;const e=this.root.querySelector(".popup");if(!e)return;const t=()=>{var i;this.open=!1,(i=this._cleanup)==null||i.call(this),this._cleanup=void 0,this._restoreFocus(),this.dispatchEvent(new CustomEvent("hide",{bubbles:!0,composed:!0}))},r=i=>{i.key==="Escape"&&(i.stopPropagation(),t())},a=i=>{if(!this.hasAttr("dismissible"))return;const o=i.composedPath(),s=this._anchor(),n=s?o.includes(s):!1;!o.includes(e)&&!n&&t()};document.addEventListener("keydown",r),document.addEventListener("pointerdown",a,!0),this._cleanup=()=>{document.removeEventListener("keydown",r),document.removeEventListener("pointerdown",a,!0)},this._syncSlots(),this._position(e),this._previouslyFocused=document.activeElement,requestAnimationFrame(()=>e.focus({preventScroll:!0})),this.dispatchEvent(new CustomEvent("show",{bubbles:!0,composed:!0}))}_anchor(){const e=this.getAttr("target");if(!e)return null;try{return document.querySelector(e)}catch(t){return null}}_syncSlots(){const e=this.root.querySelector('slot[name="header"]'),t=this.root.querySelector('slot[name="footer"]'),r=this.root.querySelector("header"),a=this.root.querySelector("footer"),i=!!e&&e.assignedNodes().length>0,o=!!t&&t.assignedNodes().length>0;r==null||r.toggleAttribute("hidden",!i),a==null||a.toggleAttribute("hidden",!o)}_position(e){const t=this._anchor();if(!t)return;e.hidden=!1;const r=t.getBoundingClientRect(),a=e.getBoundingClientRect(),i=8,o=8;let s;const n=this.getAttr("position","auto");n==="top"?s="top":n==="bottom"?s="bottom":s=r.bottom+i+a.height<=window.innerHeight-o?"bottom":"top",s==="top"&&r.top-i-a.height<o&&r.bottom+i+a.height<=window.innerHeight-o?s="bottom":s==="bottom"&&r.bottom+i+a.height>window.innerHeight-o&&r.top-i-a.height>=o&&(s="top");const l=Math.min(Math.max(o,r.left+r.width/2-a.width/2),window.innerWidth-a.width-o),h=s==="bottom"?r.bottom+i:r.top-i-a.height;e.dataset.side=s,e.style.left=`${Math.round(l)}px`,e.style.top=`${Math.round(Math.max(o,h))}px`;const _=Math.min(Math.max(r.left+r.width/2-l,16),a.width-16);e.style.setProperty("--fxpp-arrow-x",`${Math.round(_)}px`)}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}connectedCallback(){super.connectedCallback(),window.addEventListener("scroll",this._onReposition,!0),window.addEventListener("resize",this._onReposition),this._bindTrigger()}disconnectedCallback(){var e,t;super.disconnectedCallback(),window.removeEventListener("scroll",this._onReposition,!0),window.removeEventListener("resize",this._onReposition),(e=this._triggerCleanup)==null||e.call(this),this._triggerCleanup=void 0,(t=this._cleanup)==null||t.call(this),this._cleanup=void 0,this._restoreFocus()}_bindTrigger(){const e=this._anchor();if(!e)return;this.getAttr("trigger","click")==="hover"?(e.addEventListener("mouseenter",this._onEnter),e.addEventListener("mouseleave",this._onLeave),this._triggerCleanup=()=>{e.removeEventListener("mouseenter",this._onEnter),e.removeEventListener("mouseleave",this._onLeave)}):(e.addEventListener("pointerdown",this._onClick),this._triggerCleanup=()=>e.removeEventListener("pointerdown",this._onClick))}};tt.styles=m`
|
|
2190
|
+
:host { display: contents; }
|
|
2191
|
+
.popup {
|
|
2192
|
+
position: fixed;
|
|
2193
|
+
margin: 0;
|
|
2194
|
+
background: var(--fx-surface-background);
|
|
2195
|
+
border: 1px solid var(--fx-border-default);
|
|
2196
|
+
border-radius: var(--fx-radius-md);
|
|
2197
|
+
box-shadow: var(--fx-shadow-lg);
|
|
2198
|
+
padding: 0;
|
|
2199
|
+
min-width: 220px;
|
|
2200
|
+
max-width: min(380px, calc(100vw - 24px));
|
|
2201
|
+
font-family: var(--fx-font-family);
|
|
2202
|
+
font-size: var(--fx-font-size);
|
|
2203
|
+
color: var(--fx-text-default);
|
|
2204
|
+
z-index: var(--fx-z-modal, 1100);
|
|
2205
|
+
animation: fxpp-pop var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease);
|
|
2206
|
+
overflow: hidden;
|
|
2207
|
+
}
|
|
2208
|
+
.popup[hidden] { display: none; }
|
|
2209
|
+
@keyframes fxpp-pop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
|
|
2210
|
+
.popup::before, .popup::after {
|
|
2211
|
+
content: '';
|
|
2212
|
+
position: absolute;
|
|
2213
|
+
border: 7px solid transparent;
|
|
2214
|
+
}
|
|
2215
|
+
.popup[data-side='bottom']::before {
|
|
2216
|
+
top: -14px; left: var(--fxpp-arrow-x, 50%);
|
|
2217
|
+
border-bottom-color: var(--fx-border-default);
|
|
2218
|
+
}
|
|
2219
|
+
.popup[data-side='bottom']::after {
|
|
2220
|
+
top: -12px; left: var(--fxpp-arrow-x, 50%);
|
|
2221
|
+
border-bottom-color: var(--fx-surface-background);
|
|
2222
|
+
}
|
|
2223
|
+
.popup[data-side='top']::before {
|
|
2224
|
+
bottom: -14px; left: var(--fxpp-arrow-x, 50%);
|
|
2225
|
+
border-top-color: var(--fx-border-default);
|
|
2226
|
+
}
|
|
2227
|
+
.popup[data-side='top']::after {
|
|
2228
|
+
bottom: -12px; left: var(--fxpp-arrow-x, 50%);
|
|
2229
|
+
border-top-color: var(--fx-surface-background);
|
|
2230
|
+
}
|
|
2231
|
+
header {
|
|
2232
|
+
padding: var(--fx-space-md) var(--fx-space-lg);
|
|
2233
|
+
border-bottom: 1px solid var(--fx-border-default);
|
|
2234
|
+
font-weight: 600;
|
|
2235
|
+
font-size: calc(var(--fx-font-size) + 1px);
|
|
2236
|
+
color: var(--fx-text-default);
|
|
2237
|
+
}
|
|
2238
|
+
header[hidden] { display: none; }
|
|
2239
|
+
.body { padding: var(--fx-space-md) var(--fx-space-lg); }
|
|
2240
|
+
footer {
|
|
2241
|
+
padding: var(--fx-space-md) var(--fx-space-lg);
|
|
2242
|
+
border-top: 1px solid var(--fx-border-default);
|
|
2243
|
+
display: flex;
|
|
2244
|
+
justify-content: flex-end;
|
|
2245
|
+
gap: var(--fx-space-sm);
|
|
2246
|
+
}
|
|
2247
|
+
footer[hidden] { display: none; }
|
|
2248
|
+
`;let ie=tt;function gr(){return b("fx-popover",ie)}gr();const rt=class rt extends g{constructor(){super(...arguments),this._titles=[],this._panels=[]}static get observedAttributes(){return["active","linear","show-numbers"]}get stepCount(){return this._titles.length}get active(){const e=Number(this.getAttr("active","0"));return Math.min(this.stepCount-1,Math.max(0,Number.isFinite(e)?e:0))}set active(e){this.setAttribute("active",String(Math.min(this.stepCount-1,Math.max(0,e))))}get isLast(){return this.active>=this.stepCount-1}goTo(e){const t=Math.min(this.stepCount-1,Math.max(0,e));this.hasAttr("linear")&&t>this.active+1||(this.active=t,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{index:this.active}})),this.isLast&&this.dispatchEvent(new CustomEvent("complete",{bubbles:!0,composed:!0})))}next(){this.goTo(this.active+1)}prev(){this.goTo(this.active-1)}render(){this._panels=Array.from(this.children).filter(a=>a.matches('[slot^="step-"]')),this._titles=this._panels.map((a,i)=>a.getAttribute("step-title")||`Paso ${i+1}`);const e=Math.min(this.active,Math.max(0,this._titles.length-1)),t=this._titles.map((a,i)=>{const o=i===e?"active":i<e?"done":"",s=i<e&&!this.hasAttr("show-numbers")?"✓":String(i+1);return`<span class="step ${o}" part="step" data-i="${i}"><span class="num">${s}</span>${c(a)}</span>`}).join(""),r=this._panels.map((a,i)=>`<section class="panel" part="panel" ${i===e?"":"hidden"}>${a.innerHTML}</section>`).join("");this.setTemplate(`
|
|
2249
|
+
<div class="steps" part="steps">${t}</div>
|
|
2250
|
+
<div class="panel-wrap">${r}</div>
|
|
2251
|
+
<div class="actions" part="actions">
|
|
2252
|
+
<button type="button" class="nav-btn prev" part="prev" ${e===0?"disabled":""}>Anterior</button>
|
|
2253
|
+
<button type="button" class="nav-btn primary next" part="next">${e===this._titles.length-1?"Concluir":"Próximo"}</button>
|
|
2254
|
+
</div>
|
|
2255
|
+
`),this._bindSteps()}_bindSteps(){var t,r;Array.from(this.root.querySelectorAll(".step")).forEach(a=>{const i=Number(a.dataset.i);a.addEventListener("click",()=>{this.hasAttr("linear")&&i>this.active+1||this.goTo(i)}),a.addEventListener("keydown",o=>{o.key==="Enter"&&(o.preventDefault(),this.goTo(i))})}),(t=this.root.querySelector(".nav-btn.prev"))==null||t.addEventListener("click",()=>this.prev()),(r=this.root.querySelector(".nav-btn.next"))==null||r.addEventListener("click",()=>this.next())}connectedCallback(){super.connectedCallback(),this._titles.length===0&&this.render()}};rt.styles=m`
|
|
2256
|
+
:host { display: block; font-family: var(--fx-font-family); font-size: var(--fx-font-size); }
|
|
2257
|
+
:host([linear]) .step-num.activated { cursor: not-allowed; }
|
|
2258
|
+
|
|
2259
|
+
.steps {
|
|
2260
|
+
display: flex;
|
|
2261
|
+
align-items: center;
|
|
2262
|
+
gap: var(--fx-space-md);
|
|
2263
|
+
flex-wrap: wrap;
|
|
2264
|
+
padding: var(--fx-space-md) var(--fx-space-lg);
|
|
2265
|
+
}
|
|
2266
|
+
.step {
|
|
2267
|
+
display: inline-flex;
|
|
2268
|
+
align-items: center;
|
|
2269
|
+
gap: var(--fx-space-sm);
|
|
2270
|
+
padding: var(--fx-space-xs) var(--fx-space-md);
|
|
2271
|
+
border-radius: var(--fx-radius-full);
|
|
2272
|
+
color: var(--fx-text-muted);
|
|
2273
|
+
font-weight: 600;
|
|
2274
|
+
user-select: none;
|
|
2275
|
+
cursor: pointer;
|
|
2276
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2277
|
+
}
|
|
2278
|
+
.step.active { background: var(--fx-color-primary); color: #fff; }
|
|
2279
|
+
.step.done { color: var(--fx-color-primary); }
|
|
2280
|
+
.step[hidden] { display: none; }
|
|
2281
|
+
.num {
|
|
2282
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
2283
|
+
width: 24px; height: 24px; min-width: 24px;
|
|
2284
|
+
border: 1.5px solid currentColor;
|
|
2285
|
+
border-radius: var(--fx-radius-full);
|
|
2286
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
2287
|
+
line-height: 1;
|
|
2288
|
+
}
|
|
2289
|
+
|
|
2290
|
+
.panel { padding: var(--fx-space-lg) var(--fx-space-xl); min-height: 80px; }
|
|
2291
|
+
.actions {
|
|
2292
|
+
display: flex;
|
|
2293
|
+
justify-content: space-between;
|
|
2294
|
+
gap: var(--fx-space-sm);
|
|
2295
|
+
padding: var(--fx-space-md) var(--fx-space-lg);
|
|
2296
|
+
border-top: 1px solid var(--fx-border-default);
|
|
2297
|
+
}
|
|
2298
|
+
.nav-btn {
|
|
2299
|
+
font-family: var(--fx-font-family);
|
|
2300
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
2301
|
+
padding: var(--fx-space-xs) var(--fx-space-lg);
|
|
2302
|
+
min-height: var(--fx-size-sm);
|
|
2303
|
+
border-radius: var(--fx-radius-sm);
|
|
2304
|
+
border: 1px solid var(--fx-border-default);
|
|
2305
|
+
background: var(--fx-surface-background);
|
|
2306
|
+
color: var(--fx-text-default);
|
|
2307
|
+
cursor: pointer;
|
|
2308
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2309
|
+
}
|
|
2310
|
+
.nav-btn:hover:not(:disabled) { background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.04)); }
|
|
2311
|
+
.nav-btn:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
2312
|
+
.nav-btn.primary {
|
|
2313
|
+
background: var(--fx-color-primary);
|
|
2314
|
+
border-color: var(--fx-color-primary);
|
|
2315
|
+
color: #fff;
|
|
2316
|
+
}
|
|
2317
|
+
.nav-btn.primary:hover:not(:disabled) { filter: brightness(0.92); background: var(--fx-color-primary); }
|
|
2318
|
+
`;let oe=rt;function br(){return b("fx-stepper",oe)}br();const at=class at extends g{static get observedAttributes(){return["value","max","readonly","disabled","allow-half","size"]}get value(){const e=Number(this.getAttr("value","0"));return Number.isFinite(e)?Math.min(this.max,Math.max(0,e)):0}set value(e){this.setAttribute("value",String(Math.min(this.max,Math.max(0,e)))),this._syncVisual()}get max(){const e=Number(this.getAttr("max","5")),t=Number.isFinite(e)?Math.round(e):5;return Math.min(10,Math.max(1,t))}set max(e){this.setAttribute("max",String(e))}render(){const e=this.max,t=Array.from({length:e},(r,a)=>a+1).map(r=>`<span class="star" data-n="${r}" part="star" title="${r} ${this._label(r)}">★</span>`).join("");this.setTemplate(`
|
|
2319
|
+
<span class="stars" part="stars" role="radiogroup">
|
|
2320
|
+
${t}
|
|
2321
|
+
</span>
|
|
2322
|
+
`),this._bindStars(),this._syncVisual()}_starNodes(){return Array.from(this.root.querySelectorAll(".star"))}_label(e){return e===1?"estrella":"estrellas"}_syncVisual(){const e=this.value;this._starNodes().forEach(t=>{const r=Number(t.dataset.n);t.classList.toggle("filled",e>=r)})}_bindStars(){this._starNodes().forEach(t=>{const r=Number(t.dataset.n);t.addEventListener("click",()=>{if(this.hasAttr("readonly")||this.hasAttr("disabled"))return;let a=r;this.hasAttr("allow-half")&&(a+=-.5),this.value=a,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}}))}),t.addEventListener("mouseenter",()=>{this.hasAttr("readonly")||this.hasAttr("disabled")||this._hover(r)}),t.addEventListener("mouseleave",()=>this._syncVisual())})}_hover(e){this._starNodes().forEach(t=>{const r=Number(t.dataset.n);t.classList.toggle("hovered",r<=e)})}};at.styles=m`
|
|
2323
|
+
:host {
|
|
2324
|
+
display: inline-flex;
|
|
2325
|
+
font-family: var(--fx-font-family);
|
|
2326
|
+
font-size: var(--fx-font-size);
|
|
2327
|
+
--_star: calc(var(--fx-font-size) + 8px);
|
|
2328
|
+
}
|
|
2329
|
+
:host([size='sm']) { --_star: calc(var(--fx-font-size) + 4px); }
|
|
2330
|
+
:host([size='lg']) { --_star: calc(var(--fx-font-size) + 14px); }
|
|
2331
|
+
:host([disabled]) { opacity: 0.55; }
|
|
2332
|
+
:host([disabled]) .stars { pointer-events: none; }
|
|
2333
|
+
:host([readonly]) .stars { pointer-events: none; }
|
|
2334
|
+
|
|
2335
|
+
.stars {
|
|
2336
|
+
display: inline-flex;
|
|
2337
|
+
align-items: center;
|
|
2338
|
+
gap: 2px;
|
|
2339
|
+
cursor: pointer;
|
|
2340
|
+
}
|
|
2341
|
+
.star {
|
|
2342
|
+
position: relative;
|
|
2343
|
+
display: inline-flex;
|
|
2344
|
+
width: var(--_star);
|
|
2345
|
+
height: var(--_star);
|
|
2346
|
+
font-size: var(--_star);
|
|
2347
|
+
line-height: 1;
|
|
2348
|
+
color: var(--fx-text-muted);
|
|
2349
|
+
cursor: pointer;
|
|
2350
|
+
user-select: none;
|
|
2351
|
+
transition: transform var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2352
|
+
}
|
|
2353
|
+
.star:hover { transform: scale(1.1); }
|
|
2354
|
+
.star[hidden] { display: none; }
|
|
2355
|
+
.star.filled { color: var(--fx-color-warning); }
|
|
2356
|
+
.star.hovered { color: var(--fx-color-warning); }
|
|
2357
|
+
`;let se=at;function vr(){return b("fx-rating",se)}vr();const it=class it extends g{constructor(){super(...arguments),this._onOutside=e=>{const t=e.composedPath();this.root.querySelectorAll(".dropdown.open").forEach(r=>{t.includes(r)||r.classList.remove("open")})}}static get observedAttributes(){return["orientation","size","dense","titles"]}get orientation(){return this.getAttr("orientation","horizontal")}get items(){return Array.from(this.children).filter(e=>e.matches('[slot="item"]')).map(e=>e)}render(){const e=this.getAttr("titles"),t=e?e.split(",").map(i=>i.trim()):[],a=this.items.map((i,o)=>{var _;const s=t[o]||((_=i.textContent)==null?void 0:_.trim())||`Item ${o+1}`,n=i.matches("[submenu]"),l=i.hasAttribute("disabled"),h=`
|
|
2358
|
+
<span class="item" part="item" data-i="${o}" ${l?'aria-disabled="true"':""}>
|
|
2359
|
+
${c(s)}${n?'<span class="caret">▾</span>':""}
|
|
2360
|
+
</span>`;return n?`
|
|
2361
|
+
<span class="submenu-wrap" part="submenu-wrap">
|
|
2362
|
+
${h}
|
|
2363
|
+
<div class="dropdown" part="submenu"><slot name="submenu-${o}"></slot></div>
|
|
2364
|
+
</span>`:h}).join("");this.setTemplate(`
|
|
2365
|
+
<nav part="menu" aria-label="Menu">
|
|
2366
|
+
${a}
|
|
2367
|
+
</nav>
|
|
2368
|
+
`),this._bindItems()}_bindItems(){Array.from(this.root.querySelectorAll(".item")).forEach(t=>{const r=Number(t.dataset.i);t.addEventListener("click",()=>{var o,s,n,l;if(t.getAttribute("aria-disabled")==="true")return;const a=this.items[r];if(a==null?void 0:a.hasAttribute("submenu")){this.root.querySelectorAll(".dropdown.open").forEach(h=>{var _;h!==((_=t.parentElement)==null?void 0:_.querySelector(".dropdown"))&&h.classList.remove("open")}),(s=(o=t.parentElement)==null?void 0:o.querySelector(".dropdown"))==null||s.classList.toggle("open");return}this._setActive(t),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{index:r,label:(l=(n=t.textContent)==null?void 0:n.trim())!=null?l:""}}))}),t.addEventListener("keydown",a=>{const i=a;(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),t.click())})})}connectedCallback(){super.connectedCallback(),document.addEventListener("pointerdown",this._onOutside)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("pointerdown",this._onOutside)}_setActive(e){Array.from(this.root.querySelectorAll(".item")).forEach(t=>{t.classList.toggle("active",t===e)})}};it.styles=m`
|
|
2369
|
+
:host { display: block; font-family: var(--fx-font-family); font-size: var(--fx-font-size); }
|
|
2370
|
+
:host([orientation='vertical']) { border: 1px solid var(--fx-border-default); border-radius: var(--fx-radius-md); }
|
|
2371
|
+
nav {
|
|
2372
|
+
display: flex;
|
|
2373
|
+
align-items: center;
|
|
2374
|
+
gap: var(--fx-space-xs);
|
|
2375
|
+
flex-wrap: wrap;
|
|
2376
|
+
background: var(--fx-surface-background);
|
|
2377
|
+
}
|
|
2378
|
+
:host([orientation='vertical']) nav { flex-direction: column; align-items: stretch; }
|
|
2379
|
+
.item {
|
|
2380
|
+
display: inline-flex;
|
|
2381
|
+
align-items: center;
|
|
2382
|
+
gap: var(--fx-space-xs);
|
|
2383
|
+
padding: var(--fx-space-sm) var(--fx-space-md);
|
|
2384
|
+
min-height: var(--fx-size-sm);
|
|
2385
|
+
border-radius: var(--fx-radius-sm);
|
|
2386
|
+
color: var(--fx-text-default);
|
|
2387
|
+
cursor: pointer;
|
|
2388
|
+
user-select: none;
|
|
2389
|
+
white-space: nowrap;
|
|
2390
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2391
|
+
}
|
|
2392
|
+
:host([size='sm']) .item { min-height: var(--fx-size-sm); padding: var(--fx-space-xs) var(--fx-space-sm); font-size: calc(var(--fx-font-size) - 2px); }
|
|
2393
|
+
:host([size='lg']) .item { min-height: var(--fx-size-lg); padding: var(--fx-space-md) var(--fx-space-lg); font-size: calc(var(--fx-font-size) + 1px); }
|
|
2394
|
+
.item:hover { background: var(--fx-surface-surface-hover, rgba(0,0,0,0.06)); }
|
|
2395
|
+
.item.active { background: var(--fx-color-primary); color: #fff; font-weight: 600; }
|
|
2396
|
+
.item[aria-disabled='true'] { opacity: 0.5; cursor: not-allowed; }
|
|
2397
|
+
.item[aria-disabled='true']:hover { background: none; }
|
|
2398
|
+
.item .caret { font-size: calc(var(--fx-font-size) - 2px); color: var(--fx-text-muted); }
|
|
2399
|
+
|
|
2400
|
+
/* submenú ancorado ao item */
|
|
2401
|
+
.submenu-wrap { position: relative; display: inline-flex; }
|
|
2402
|
+
:host([orientation='vertical']) .submenu-wrap { width: 100%; }
|
|
2403
|
+
.dropdown {
|
|
2404
|
+
position: absolute;
|
|
2405
|
+
left: 0;
|
|
2406
|
+
top: calc(100% + 4px);
|
|
2407
|
+
min-width: 180px;
|
|
2408
|
+
background: var(--fx-surface-background);
|
|
2409
|
+
border: 1px solid var(--fx-border-default);
|
|
2410
|
+
border-radius: var(--fx-radius-sm);
|
|
2411
|
+
box-shadow: var(--fx-shadow-lg);
|
|
2412
|
+
padding: var(--fx-space-xs);
|
|
2413
|
+
z-index: var(--fx-z-dropdown, 1060);
|
|
2414
|
+
display: none;
|
|
2415
|
+
flex-direction: column;
|
|
2416
|
+
}
|
|
2417
|
+
.dropdown.open { display: flex; }
|
|
2418
|
+
:host([orientation='vertical']) .dropdown { left: 100%; top: 0; }
|
|
2419
|
+
`;let ne=it;function xr(){return b("fx-menu",ne)}xr();const ot=class ot extends g{static get observedAttributes(){return["multiple","size"]}get value(){const e=this.getAttr("value");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set value(e){this.setAttribute("value",e.join(","))}get multiple(){return this.hasAttr("multiple")}get options(){return Array.from(this.children).filter(e=>e.matches('[slot="option"]')).map(e=>e)}render(){const e=this.options,t=this.value,r=e.map((a,i)=>{var n,l;const o=(n=a.getAttribute("value"))!=null?n:"",s=t.includes(o);return`<button type="button" class="option ${s?"active":""}" part="option" data-v="${c(o)}" aria-pressed="${s}">${c(((l=a.textContent)==null?void 0:l.trim())||`Opción ${i+1}`)}</button>`}).join("");this.setTemplate(`
|
|
2420
|
+
<div class="options" part="options" role="group" aria-label="Toggle buttons">
|
|
2421
|
+
${r}
|
|
2422
|
+
</div>
|
|
2423
|
+
`),this._bindOptions()}_bindOptions(){Array.from(this.root.querySelectorAll(".option")||[]).forEach(e=>{e.addEventListener("click",()=>this._toggle(e)),e.addEventListener("keydown",t=>{const r=t;(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),this._toggle(e))})})}_toggle(e){var a;const t=(a=e.dataset.v)!=null?a:"";let r=this.value;this.multiple?r.includes(t)?r=r.filter(i=>i!==t):r.push(t):r=r.includes(t)?[]:[t],this.value=r,this.root.querySelectorAll(".option").forEach(i=>{var s;const o=r.includes((s=i.dataset.v)!=null?s:"");i.classList.toggle("active",o),i.setAttribute("aria-pressed",String(o))}),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:r}}))}};ot.styles=m`
|
|
2424
|
+
:host { display: inline-flex; font-family: var(--fx-font-family); font-size: var(--fx-font-size); gap: var(--fx-space-xs); }
|
|
2425
|
+
.option {
|
|
2426
|
+
display: inline-flex;
|
|
2427
|
+
align-items: center;
|
|
2428
|
+
justify-content: center;
|
|
2429
|
+
gap: var(--fx-space-xs);
|
|
2430
|
+
min-height: var(--fx-size-md);
|
|
2431
|
+
padding: var(--fx-space-sm) var(--fx-space-lg);
|
|
2432
|
+
font-weight: var(--fx-font-weight);
|
|
2433
|
+
color: var(--fx-text-default);
|
|
2434
|
+
background: var(--fx-surface-background);
|
|
2435
|
+
border: 1px solid var(--fx-border-default);
|
|
2436
|
+
border-radius: var(--fx-radius-md);
|
|
2437
|
+
cursor: pointer;
|
|
2438
|
+
user-select: none;
|
|
2439
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), border-color var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2440
|
+
}
|
|
2441
|
+
:host([size='sm']) .option { min-height: var(--fx-size-sm); padding: var(--fx-space-xs) var(--fx-space-md); font-size: calc(var(--fx-font-size) - 2px); }
|
|
2442
|
+
:host([size='lg']) .option { min-height: var(--fx-size-lg); padding: var(--fx-space-md) var(--fx-space-xl); font-size: calc(var(--fx-font-size) + 2px); }
|
|
2443
|
+
.option:hover { border-color: var(--fx-color-primary); }
|
|
2444
|
+
.option.active {
|
|
2445
|
+
background: var(--fx-color-primary);
|
|
2446
|
+
border-color: var(--fx-color-primary);
|
|
2447
|
+
color: #fff;
|
|
2448
|
+
}
|
|
2449
|
+
.option.active:hover { filter: brightness(0.92); }
|
|
2450
|
+
`;let le=ot;function yr(){return b("fx-toggle-button-group",le)}yr();const st=class st extends g{static get observedAttributes(){return["icon","heading","description"]}render(){const e=this.getAttr("icon","📭"),t=this.getAttr("heading"),r=this.getAttr("description");this.setTemplate(`
|
|
2451
|
+
<div class="wrap" part="wrap">
|
|
2452
|
+
<span class="icon" part="icon" aria-hidden="true">${c(e)}</span>
|
|
2453
|
+
<h4 part="heading" ${t?"":"hidden"}>${c(t)}</h4>
|
|
2454
|
+
<p part="description" ${r?"":"hidden"}>${c(r)}</p>
|
|
2455
|
+
<slot name="icon"></slot>
|
|
2456
|
+
<span class="action"><slot name="action"></slot></span>
|
|
2457
|
+
</div>
|
|
2458
|
+
`)}};st.styles=m`
|
|
2459
|
+
:host {
|
|
2460
|
+
display: flex;
|
|
2461
|
+
justify-content: center;
|
|
2462
|
+
font-family: var(--fx-font-family);
|
|
2463
|
+
font-size: var(--fx-font-size);
|
|
2464
|
+
}
|
|
2465
|
+
.wrap {
|
|
2466
|
+
display: flex;
|
|
2467
|
+
flex-direction: column;
|
|
2468
|
+
align-items: center;
|
|
2469
|
+
gap: var(--fx-space-sm);
|
|
2470
|
+
padding: var(--fx-space-2xl, 48px) var(--fx-space-xl);
|
|
2471
|
+
text-align: center;
|
|
2472
|
+
max-width: 420px;
|
|
2473
|
+
}
|
|
2474
|
+
.icon {
|
|
2475
|
+
font-size: calc(var(--fx-font-size) + 28px);
|
|
2476
|
+
line-height: 1;
|
|
2477
|
+
color: var(--fx-text-muted);
|
|
2478
|
+
}
|
|
2479
|
+
.icon[hidden] { display: none; }
|
|
2480
|
+
h4 {
|
|
2481
|
+
margin: 0;
|
|
2482
|
+
font-size: calc(var(--fx-font-size) + 3px);
|
|
2483
|
+
font-weight: 600;
|
|
2484
|
+
color: var(--fx-text-default);
|
|
2485
|
+
}
|
|
2486
|
+
h4[hidden] { display: none; }
|
|
2487
|
+
p {
|
|
2488
|
+
margin: 0;
|
|
2489
|
+
font-size: calc(var(--fx-font-size) - 1px);
|
|
2490
|
+
color: var(--fx-text-muted);
|
|
2491
|
+
line-height: 1.5;
|
|
2492
|
+
}
|
|
2493
|
+
p[hidden] { display: none; }
|
|
2494
|
+
.action { margin-top: var(--fx-space-sm); }
|
|
2495
|
+
.action:empty { display: none; }
|
|
2496
|
+
`;let ce=st;function wr(){return b("fx-empty-state",ce)}wr();const nt=class nt extends g{constructor(){super(...arguments),this._prevScore=-1}static get observedAttributes(){return["value","label","size"]}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}_score(){const e=this.value;if(!e)return 0;let t=0;return e.length>=6&&t++,e.length>=10&&t++,/[A-Z]/.test(e)&&/[a-z]/.test(e)&&t++,/\d/.test(e)&&/[^A-Za-z0-9]/.test(e)&&t++,Math.min(4,t)}_labelFor(e){return["Muito fraca","Fraca","Razoável","Forte","Muito forte"][e]}render(){this._paint()}_paint(){const e=this._score(),t=this.getAttr("label","Força da senha");this.setTemplate(`
|
|
2497
|
+
<div class="label" part="label">
|
|
2498
|
+
<span>${t}</span>
|
|
2499
|
+
<strong>${e>0?this._labelFor(e):""}</strong>
|
|
2500
|
+
</div>
|
|
2501
|
+
<div class="bars" part="bars" role="progressbar" aria-valuemin="0" aria-valuemax="4" aria-valuenow="${e}">
|
|
2502
|
+
${Array.from({length:4},(r,a)=>`<span class="bar ${a<e?"on":""}" part="bar"></span>`).join("")}
|
|
2503
|
+
</div>
|
|
2504
|
+
`),this.dataset.score=String(e)}attributeChangedCallback(){if(this.isConnected){const e=this._prevScore;this._paint();const t=this._score();t!==e&&(this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{score:t,value:this.value}})),this._prevScore=t)}}};nt.styles=m`
|
|
2505
|
+
:host {
|
|
2506
|
+
display: block;
|
|
2507
|
+
font-family: var(--fx-font-family);
|
|
2508
|
+
font-size: var(--fx-font-size);
|
|
2509
|
+
}
|
|
2510
|
+
.label {
|
|
2511
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
2512
|
+
color: var(--fx-text-muted);
|
|
2513
|
+
margin-bottom: var(--fx-space-xs);
|
|
2514
|
+
display: flex;
|
|
2515
|
+
justify-content: space-between;
|
|
2516
|
+
gap: var(--fx-space-md);
|
|
2517
|
+
}
|
|
2518
|
+
.label strong { color: var(--_color); }
|
|
2519
|
+
.bars {
|
|
2520
|
+
display: flex;
|
|
2521
|
+
gap: 4px;
|
|
2522
|
+
--_color: var(--fx-text-muted);
|
|
2523
|
+
}
|
|
2524
|
+
.bar {
|
|
2525
|
+
flex: 1;
|
|
2526
|
+
height: 6px;
|
|
2527
|
+
border-radius: var(--fx-radius-full);
|
|
2528
|
+
background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.08));
|
|
2529
|
+
transition: background var(--fx-motion-duration-normal) var(--fx-motion-easing);
|
|
2530
|
+
}
|
|
2531
|
+
.bar.on { background: var(--_color); }
|
|
2532
|
+
:host([size='sm']) .bar { height: 4px; }
|
|
2533
|
+
:host([size='lg']) .bar { height: 8px; }
|
|
2534
|
+
/* cores por nível via data-score no host */
|
|
2535
|
+
:host([data-score='1']) { --_color: var(--fx-color-danger); }
|
|
2536
|
+
:host([data-score='2']) { --_color: var(--fx-color-warning); }
|
|
2537
|
+
:host([data-score='3']) { --_color: var(--fx-color-info); }
|
|
2538
|
+
:host([data-score='4']) { --_color: var(--fx-color-success); }
|
|
2539
|
+
`;let de=nt;function kr(){return b("fx-password-strength",de)}kr();const lt=class lt extends g{static get observedAttributes(){return["marker","size","orientation"]}render(){this.setTemplate('<ol class="tl" part="timeline"></ol>'),this._decorate()}_decorate(){var a;const e=(a=this.shadowRoot)==null?void 0:a.querySelector("ol");if(!e)return;const t=this.getAttr("marker","●"),r=Array.from(this.querySelectorAll('[slot="item"]'));r.length&&(e.innerHTML=r.map(i=>{var l,h;const o=(l=i.getAttribute("time"))!=null?l:"",s=(h=i.getAttribute("title"))!=null?h:"",n=[o?`<span class="time">${c(o)}</span>`:"",s?`<span class="title">${c(s)}</span>`:""].join("");return`<li class="event" part="event"><span class="dot" part="marker" aria-hidden="true">${c(t)}</span><div class="head">${n}</div><div class="content">${i.innerHTML}</div></li>`}).join(""))}connectedCallback(){super.connectedCallback(),this._observer=new MutationObserver(()=>this._decorate()),this._observer.observe(this,{childList:!0,subtree:!1}),this._decorate()}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._observer)==null||e.disconnect(),this._observer=void 0}};lt.styles=m`
|
|
2540
|
+
:host {
|
|
2541
|
+
display: block;
|
|
2542
|
+
font-family: var(--fx-font-family);
|
|
2543
|
+
font-size: var(--fx-font-size);
|
|
2544
|
+
--_marker: calc(var(--fx-font-size) - 1px);
|
|
2545
|
+
}
|
|
2546
|
+
:host([size='sm']) { --_marker: calc(var(--fx-font-size) - 3px); }
|
|
2547
|
+
:host([size='lg']) { --_marker: calc(var(--fx-font-size) + 2px); }
|
|
2548
|
+
|
|
2549
|
+
.tl {
|
|
2550
|
+
list-style: none;
|
|
2551
|
+
margin: 0;
|
|
2552
|
+
padding: 0;
|
|
2553
|
+
position: relative;
|
|
2554
|
+
}
|
|
2555
|
+
/* linha vertical centralizada no eixo dos marcadores */
|
|
2556
|
+
.tl::before {
|
|
2557
|
+
content: '';
|
|
2558
|
+
position: absolute;
|
|
2559
|
+
left: calc(var(--_marker) / 2 - 1px);
|
|
2560
|
+
top: calc(var(--_marker) / 2);
|
|
2561
|
+
bottom: 6px;
|
|
2562
|
+
width: 2px;
|
|
2563
|
+
background: var(--fx-border-default);
|
|
2564
|
+
}
|
|
2565
|
+
.event {
|
|
2566
|
+
position: relative;
|
|
2567
|
+
padding: 0 0 var(--fx-space-lg) calc(var(--_marker) + var(--fx-space-lg));
|
|
2568
|
+
}
|
|
2569
|
+
.event:last-child { padding-bottom: 0; }
|
|
2570
|
+
/* marcador circular centralizado no eixo da linha */
|
|
2571
|
+
.dot {
|
|
2572
|
+
position: absolute;
|
|
2573
|
+
left: 0;
|
|
2574
|
+
top: 0;
|
|
2575
|
+
width: var(--_marker);
|
|
2576
|
+
height: var(--_marker);
|
|
2577
|
+
display: inline-flex;
|
|
2578
|
+
align-items: center;
|
|
2579
|
+
justify-content: center;
|
|
2580
|
+
font-size: calc(var(--_marker) * 0.55);
|
|
2581
|
+
color: var(--fx-color-primary);
|
|
2582
|
+
line-height: 1;
|
|
2583
|
+
}
|
|
2584
|
+
.head {
|
|
2585
|
+
display: flex;
|
|
2586
|
+
align-items: baseline;
|
|
2587
|
+
gap: var(--fx-space-sm);
|
|
2588
|
+
flex-wrap: wrap;
|
|
2589
|
+
min-height: var(--_marker);
|
|
2590
|
+
}
|
|
2591
|
+
.time {
|
|
2592
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
2593
|
+
color: var(--fx-text-muted);
|
|
2594
|
+
white-space: nowrap;
|
|
2595
|
+
}
|
|
2596
|
+
.title {
|
|
2597
|
+
font-weight: 600;
|
|
2598
|
+
color: var(--fx-text-default);
|
|
2599
|
+
}
|
|
2600
|
+
.content {
|
|
2601
|
+
margin-top: 2px;
|
|
2602
|
+
color: var(--fx-text-default);
|
|
2603
|
+
line-height: 1.5;
|
|
2604
|
+
}
|
|
2605
|
+
.event[hidden] { display: none; }
|
|
2606
|
+
|
|
2607
|
+
/* ---- modo horizontal ---- */
|
|
2608
|
+
:host([orientation='horizontal']) .tl {
|
|
2609
|
+
display: flex;
|
|
2610
|
+
}
|
|
2611
|
+
:host([orientation='horizontal']) .tl::before {
|
|
2612
|
+
left: calc(var(--_marker) / 2 - 1px);
|
|
2613
|
+
right: calc(var(--_marker) / 2);
|
|
2614
|
+
top: calc(var(--_marker) / 2 - 1px);
|
|
2615
|
+
bottom: auto;
|
|
2616
|
+
width: auto;
|
|
2617
|
+
height: 2px;
|
|
2618
|
+
}
|
|
2619
|
+
:host([orientation='horizontal']) .event {
|
|
2620
|
+
flex: 1;
|
|
2621
|
+
display: flex;
|
|
2622
|
+
flex-direction: column;
|
|
2623
|
+
padding: 0 var(--fx-space-lg) 0 0;
|
|
2624
|
+
}
|
|
2625
|
+
:host([orientation='horizontal']) .event:last-child { padding-right: 0; }
|
|
2626
|
+
:host([orientation='horizontal']) .event .dot {
|
|
2627
|
+
position: static;
|
|
2628
|
+
margin-bottom: var(--fx-space-sm);
|
|
2629
|
+
}
|
|
2630
|
+
`;let pe=lt;function Ar(){return b("fx-timeline",pe)}Ar();const ct=class ct extends g{constructor(){super(...arguments),this._slides=[]}static get observedAttributes(){return["active","autoplay","loop","show-arrows","show-indicators"]}get active(){const e=Number(this.getAttr("active","0"));return Math.min(this.slideCount-1,Math.max(0,Number.isFinite(e)?e:0))}set active(e){this.setAttribute("active",String(Math.min(this.slideCount-1,Math.max(0,e))))}get slideCount(){return this._slides.length}render(){this._slides=Array.from(this.children).filter(t=>t.matches('[slot="slide"]'));const e=this._slides.map((t,r)=>`<div class="slide" part="slide" data-i="${r}" ${r===this.active?"":"hidden"}>${t.innerHTML}</div>`).join("");this.setTemplate(`
|
|
2631
|
+
<div class="viewport" part="viewport">
|
|
2632
|
+
${e}
|
|
2633
|
+
<button type="button" class="arrow prev" part="arrow" aria-label="Anterior" ${this.hasAttr("show-arrows")?"":"hidden"}>‹</button>
|
|
2634
|
+
<button type="button" class="arrow next" part="arrow" aria-label="Próximo" ${this.hasAttr("show-arrows")?"":"hidden"}>›</button>
|
|
2635
|
+
</div>
|
|
2636
|
+
<div class="indicators" part="indicators" ${this.hasAttr("show-indicators")?"":"hidden"}>
|
|
2637
|
+
${this._slides.map((t,r)=>`<button type="button" class="dot ${r===this.active?"on":""}" data-i="${r}" aria-label="Slide ${r+1}"></button>`).join("")}
|
|
2638
|
+
</div>
|
|
2639
|
+
`),this._bind(),this._restartAutoplay()}attributeChangedCallback(e,t,r){if(!(!this.isConnected||t===r)){if(e==="active"&&this._slides.length){this._go(this.active,!1),this._restartAutoplay();return}this.render()}}_go(e,t=!0){const r=this._slides.length;if(!r)return;let a;this.hasAttr("loop")?a=(e%r+r)%r:a=Math.min(r-1,Math.max(0,e)),String(a)!==this.getAttribute("active")&&(this.active=a,this.root.querySelectorAll(".slide").forEach(i=>{i.toggleAttribute("hidden",Number(i.dataset.i)!==a)}),this.root.querySelectorAll(".dot").forEach(i=>{i.classList.toggle("on",Number(i.dataset.i)===a)}),t&&this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{index:a}})))}next(){this._go(this.active+1)}prev(){this._go(this.active-1)}_bind(){var e,t;(e=this.root.querySelector(".arrow.prev"))==null||e.addEventListener("click",()=>this.prev()),(t=this.root.querySelector(".arrow.next"))==null||t.addEventListener("click",()=>this.next()),this.root.querySelectorAll(".dot").forEach(r=>{r.addEventListener("click",()=>this._go(Number(r.dataset.i)))})}_restartAutoplay(){this._timer&&(clearInterval(this._timer),this._timer=void 0);const e=Number(this.getAttr("autoplay","0"));e>0&&(this._timer=setInterval(()=>this._go(this.active+1),e))}disconnectedCallback(){super.disconnectedCallback(),this._timer&&(clearInterval(this._timer),this._timer=void 0)}};ct.styles=m`
|
|
2640
|
+
:host {
|
|
2641
|
+
display: block;
|
|
2642
|
+
font-family: var(--fx-font-family);
|
|
2643
|
+
font-size: var(--fx-font-size);
|
|
2644
|
+
}
|
|
2645
|
+
.viewport {
|
|
2646
|
+
position: relative;
|
|
2647
|
+
overflow: hidden;
|
|
2648
|
+
border-radius: var(--fx-radius-lg);
|
|
2649
|
+
border: 1px solid var(--fx-border-default);
|
|
2650
|
+
background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.04));
|
|
2651
|
+
}
|
|
2652
|
+
.slide {
|
|
2653
|
+
min-height: 200px;
|
|
2654
|
+
display: flex;
|
|
2655
|
+
align-items: center;
|
|
2656
|
+
justify-content: center;
|
|
2657
|
+
padding: var(--fx-space-xl);
|
|
2658
|
+
box-sizing: border-box;
|
|
2659
|
+
color: var(--fx-text-default);
|
|
2660
|
+
}
|
|
2661
|
+
.slide[hidden] { display: none; }
|
|
2662
|
+
.arrow {
|
|
2663
|
+
position: absolute;
|
|
2664
|
+
top: 50%;
|
|
2665
|
+
transform: translateY(-50%);
|
|
2666
|
+
width: 34px;
|
|
2667
|
+
height: 34px;
|
|
2668
|
+
border: 1px solid var(--fx-border-default);
|
|
2669
|
+
border-radius: var(--fx-radius-full);
|
|
2670
|
+
background: color-mix(in srgb, var(--fx-surface-background, #fff) 82%, transparent);
|
|
2671
|
+
color: var(--fx-text-default);
|
|
2672
|
+
font-size: calc(var(--fx-font-size) + 4px);
|
|
2673
|
+
cursor: pointer;
|
|
2674
|
+
display: inline-flex;
|
|
2675
|
+
align-items: center;
|
|
2676
|
+
justify-content: center;
|
|
2677
|
+
backdrop-filter: blur(2px);
|
|
2678
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), border-color var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing), transform var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2679
|
+
}
|
|
2680
|
+
.arrow:hover {
|
|
2681
|
+
background: var(--fx-color-primary);
|
|
2682
|
+
border-color: var(--fx-color-primary);
|
|
2683
|
+
color: #fff;
|
|
2684
|
+
transform: translateY(-50%) scale(1.08);
|
|
2685
|
+
}
|
|
2686
|
+
.arrow[hidden] { display: none; }
|
|
2687
|
+
.arrow.prev { left: var(--fx-space-md); }
|
|
2688
|
+
.arrow.next { right: var(--fx-space-md); }
|
|
2689
|
+
.indicators {
|
|
2690
|
+
display: flex;
|
|
2691
|
+
justify-content: center;
|
|
2692
|
+
gap: 6px;
|
|
2693
|
+
padding: var(--fx-space-md) 0 var(--fx-space-xs);
|
|
2694
|
+
}
|
|
2695
|
+
.indicators[hidden] { display: none; }
|
|
2696
|
+
.dot {
|
|
2697
|
+
width: 8px;
|
|
2698
|
+
height: 8px;
|
|
2699
|
+
border-radius: var(--fx-radius-full);
|
|
2700
|
+
border: none;
|
|
2701
|
+
padding: 0;
|
|
2702
|
+
background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.15));
|
|
2703
|
+
cursor: pointer;
|
|
2704
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), width var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2705
|
+
}
|
|
2706
|
+
.dot.on { background: var(--fx-color-primary); width: 20px; }
|
|
2707
|
+
`;let he=ct;function zr(){return b("fx-carousel",he)}zr();const dt=class dt extends g{constructor(){super(...arguments),this._expanded=new Set,this._selected=null}static get observedAttributes(){return["data","expand-all","size"]}render(){this.setTemplate(`<ul part="tree">${this._renderNodes(this.data,"")}</ul>`),this._bind()}_path(e,t){return t?`${t}.${e}`:`${e}`}_renderNodes(e,t){const r=this.hasAttr("expand-all");return e.map((a,i)=>{const o=this._path(i,t),s=Array.isArray(a.children)&&a.children.length>0,n=r||this._expanded.has(o),l=this._selected===o?" selected":"",h=s?`<ul class="children" ${n?"":"hidden"}>${this._renderNodes(a.children,o)}</ul>`:"";return`<li><span class="row${l}" data-path="${o}" role="treeitem" tabindex="0"><span class="caret ${s?n?"open":"":"leaf"}" data-toggle="${s?o:""}">▸</span>${a.icon?`<span class="icon">${c(a.icon)}</span>`:""}<span class="label">${c(a.label)}</span></span>${h}</li>`}).join("")}get data(){try{const e=JSON.parse(this.getAttr("data","[]"));return Array.isArray(e)?e:[]}catch(e){return[]}}set data(e){this.setAttribute("data",JSON.stringify(e))}_bind(){this.root.querySelectorAll(".caret[data-toggle]").forEach(e=>{const t=e.dataset.toggle;t&&e.addEventListener("click",r=>{r.stopPropagation(),this._toggle(t,e)})}),this.root.querySelectorAll(".row").forEach(e=>{var r;const t=(r=e.dataset.path)!=null?r:"";e.addEventListener("click",()=>{this._selected=t,this.root.querySelectorAll(".row").forEach(a=>a.classList.toggle("selected",a===e)),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{node:this._findNode(t)}}))}),e.addEventListener("keydown",a=>{a.key==="Enter"&&e.click()})})}_toggle(e,t){var i;this._expanded.has(e)?this._expanded.delete(e):this._expanded.add(e);const r=this._expanded.has(e);t.classList.toggle("open",r);const a=t.closest("li");(i=a==null?void 0:a.querySelector(":scope > ul.children"))==null||i.toggleAttribute("hidden",!r)}_findNode(e){var a;let t=this.data,r;for(const i of e.split(".")){if(r=t[Number(i)],!r)return;t=(a=r.children)!=null?a:[]}return r}setAllExpanded(e){e?this.setAttribute("expand-all",""):(this.removeAttribute("expand-all"),this._expanded.clear()),this.render()}};dt.styles=m`
|
|
2708
|
+
:host {
|
|
2709
|
+
display: block;
|
|
2710
|
+
font-family: var(--fx-font-family);
|
|
2711
|
+
font-size: var(--fx-font-size);
|
|
2712
|
+
}
|
|
2713
|
+
ul { list-style: none; margin: 0; padding: 0; }
|
|
2714
|
+
ul ul { padding-left: var(--fx-space-xl); }
|
|
2715
|
+
li { margin: 2px 0; }
|
|
2716
|
+
.row {
|
|
2717
|
+
display: inline-flex;
|
|
2718
|
+
align-items: center;
|
|
2719
|
+
gap: var(--fx-space-xs);
|
|
2720
|
+
padding: var(--fx-space-xs) var(--fx-space-sm);
|
|
2721
|
+
border-radius: var(--fx-radius-sm);
|
|
2722
|
+
color: var(--fx-text-default);
|
|
2723
|
+
cursor: pointer;
|
|
2724
|
+
user-select: none;
|
|
2725
|
+
width: 100%;
|
|
2726
|
+
box-sizing: border-box;
|
|
2727
|
+
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2728
|
+
}
|
|
2729
|
+
.row:hover { background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.05)); }
|
|
2730
|
+
.row.selected { background: color-mix(in srgb, var(--fx-color-primary) 12%, transparent); color: var(--fx-color-primary); font-weight: 600; }
|
|
2731
|
+
.caret {
|
|
2732
|
+
display: inline-flex;
|
|
2733
|
+
align-items: center;
|
|
2734
|
+
justify-content: center;
|
|
2735
|
+
width: 16px;
|
|
2736
|
+
min-width: 16px;
|
|
2737
|
+
font-size: calc(var(--fx-font-size) - 2px);
|
|
2738
|
+
color: var(--fx-text-muted);
|
|
2739
|
+
cursor: pointer;
|
|
2740
|
+
transition: transform var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
2741
|
+
user-select: none;
|
|
2742
|
+
}
|
|
2743
|
+
.caret.open { transform: rotate(90deg); }
|
|
2744
|
+
.caret.leaf { visibility: hidden; }
|
|
2745
|
+
.icon { line-height: 1; }
|
|
2746
|
+
.children[hidden] { display: none; }
|
|
2747
|
+
:host([size='sm']) .row { padding: 2px var(--fx-space-xs); font-size: calc(var(--fx-font-size) - 2px); }
|
|
2748
|
+
:host([size='lg']) .row { padding: var(--fx-space-sm) var(--fx-space-md); font-size: calc(var(--fx-font-size) + 1px); }
|
|
2749
|
+
`;let ue=dt;function Sr(){return b("fx-tree",ue)}Sr();const Lt={success:"var(--fx-color-success, #10b981)",error:"var(--fx-color-danger, #f43f5e)",info:"var(--fx-color-info, #0ea5e9)",warning:"var(--fx-color-warning, #f59e0b)"},Ct={success:"✓",error:"✕",warning:"!",info:"i"},$r=`
|
|
1608
2750
|
:host { display: contents; }
|
|
2751
|
+
.fx-icon {
|
|
2752
|
+
font-family: var(--fx-icon-font, 'Fenix Icons');
|
|
2753
|
+
font-weight: normal;
|
|
2754
|
+
font-style: normal;
|
|
2755
|
+
line-height: 1;
|
|
2756
|
+
letter-spacing: normal;
|
|
2757
|
+
display: inline-block;
|
|
2758
|
+
white-space: nowrap;
|
|
2759
|
+
direction: ltr;
|
|
2760
|
+
font-variation-settings: 'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24;
|
|
2761
|
+
-webkit-font-smoothing: antialiased;
|
|
2762
|
+
user-select: none;
|
|
2763
|
+
}
|
|
1609
2764
|
.card {
|
|
1610
2765
|
display: flex; align-items: flex-start; gap: 10px;
|
|
1611
2766
|
min-width: 260px; max-width: 360px;
|
|
@@ -1638,19 +2793,19 @@
|
|
|
1638
2793
|
color: var(--fx-text-muted, #64748b); font-size: 15px; padding: 2px 4px; border-radius: 4px;
|
|
1639
2794
|
}
|
|
1640
2795
|
.close:hover { color: var(--fx-color-danger, #f43f5e); background: var(--fx-surface-surface-hover, rgba(0,0,0,.05)); }
|
|
1641
|
-
`;class
|
|
1642
|
-
<style>${
|
|
2796
|
+
`;class Er extends HTMLElement{constructor(){super();jt(this,D);this.timer=null,this.attachShadow({mode:"open"})}static get observedAttributes(){return["kind","title","message","duration","icon"]}connectedCallback(){var a;this.shadowRoot.firstChild||It(this,D,Ft).call(this);const t=Number((a=this.getAttribute("duration"))!=null?a:"4000"),r=t===0?0:Math.max(Number.isNaN(t)?4e3:t,1e3);!Number.isNaN(r)&&r>0&&!this.timer&&(this.timer=setTimeout(()=>this.dismiss(),r))}disconnectedCallback(){this.timer&&clearTimeout(this.timer),this.timer=null}dismiss(){this.timer&&clearTimeout(this.timer),this.timer=null;const t=this.shadowRoot.querySelector(".card");t?(t.classList.add("leaving"),setTimeout(()=>this.remove(),200)):this.remove()}}D=new WeakSet,Ft=function(){var _,u,p,v;const t=this.getAttribute("kind")||"info",r=(_=this.getAttribute("title"))!=null?_:"",a=(u=this.getAttribute("message"))!=null?u:"",i=(p=Lt[t])!=null?p:Lt.info,o=this.getAttribute("icon"),s=!!o&&/^[a-z][a-z0-9_]*$/.test(o);s&&Promise.resolve().then(()=>Te);const n=s?o:(v=Ct[t])!=null?v:Ct.info;this.shadowRoot.innerHTML=`
|
|
2797
|
+
<style>${$r}</style>
|
|
1643
2798
|
<div class="card" style="--kind:${i}" role="status" part="card">
|
|
1644
|
-
<span class="icon
|
|
2799
|
+
<span class="icon${s?" fx-icon":""}">${n}</span>
|
|
1645
2800
|
<div class="body">
|
|
1646
2801
|
${r?'<div class="title"></div>':""}
|
|
1647
|
-
${
|
|
2802
|
+
${a?'<div class="msg"></div>':""}
|
|
1648
2803
|
</div>
|
|
1649
2804
|
<button class="close" aria-label="Fechar">✕</button>
|
|
1650
|
-
</div>`;const
|
|
2805
|
+
</div>`;const l=this.shadowRoot.querySelector(".title"),h=this.shadowRoot.querySelector(".msg");l&&(l.textContent=r),h&&(h.textContent=a),this.shadowRoot.querySelector(".close").addEventListener("click",()=>this.dismiss())};function Lr(d){let e=document.querySelector(`[data-fx-toast-region="${d}"]`);if(!e){e=document.createElement("div"),e.setAttribute("data-fx-toast-region",d);const[t,r]=d.split("-"),a=e.style;a.position="fixed",a[t]="16px",r==="center"?(a.left="50%",a.transform="translateX(-50%)"):a[r]="16px",a.display="flex",a.flexDirection="column",a.gap="8px",a.zIndex="1100",a.pointerEvents="none",new MutationObserver(()=>{e.querySelectorAll("*").forEach(i=>i.style.pointerEvents="auto")}).observe(e,{childList:!0}),document.body.appendChild(e)}return e}class Cr{constructor(){this.seq=0,this.map=new Map,this.success=(e,t,r)=>this.push("success",e,t,r),this.error=(e,t,r)=>this.push("error",e,t,r),this.info=(e,t,r)=>this.push("info",e,t,r),this.warning=(e,t,r)=>this.push("warning",e,t,r)}push(e,t,r,a){var l,h,_;const i=++this.seq,o=typeof r=="string"?r:r==null?void 0:r.message,s={...typeof r=="object"&&r?r:void 0,...a},n=document.createElement("fx-toast");return n.setAttribute("kind",e),n.setAttribute("title",t),o&&n.setAttribute("message",o),n.setAttribute("position",(l=s.position)!=null?l:"top-right"),n.setAttribute("duration",String((h=s.duration)!=null?h:4e3)),Lr((_=s.position)!=null?_:"top-right").appendChild(n),this.map.set(i,n),i}close(e){var t;(t=this.map.get(e))==null||t.dismiss(),this.map.delete(e)}}const Tr=new Cr;globalThis.FenixToast=Tr;function qr(){customElements.get("fx-toast")||customElements.define("fx-toast",Er)}qr();const pt=class pt extends g{static get observedAttributes(){return["content","position"]}render(){const e=this.getAttr("content");this.setTemplate(`
|
|
1651
2806
|
<slot></slot>
|
|
1652
|
-
<span class="bubble" part="bubble" role="tooltip">${
|
|
1653
|
-
`)}};
|
|
2807
|
+
<span class="bubble" part="bubble" role="tooltip">${c(e)}</span>
|
|
2808
|
+
`)}};pt.styles=m`
|
|
1654
2809
|
:host {
|
|
1655
2810
|
position: relative;
|
|
1656
2811
|
display: inline-flex;
|
|
@@ -1711,14 +2866,14 @@
|
|
|
1711
2866
|
top: 50%; left: auto; right: 100%; transform: translateY(-50%);
|
|
1712
2867
|
border: 5px solid transparent; border-right-color: var(--fx-text-default, #1e293b);
|
|
1713
2868
|
}
|
|
1714
|
-
`;let
|
|
2869
|
+
`;let fe=pt;function Dr(){return b("fx-tooltip",fe)}Dr();const ht=class ht extends g{static get observedAttributes(){return["value"]}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}render(){var r;const e=Array.from(this.querySelectorAll("fx-tab")),t=this.value||((r=e[0])==null?void 0:r.getAttribute("tab"))||"";this.setTemplate(`
|
|
1715
2870
|
<div class="list" role="tablist">
|
|
1716
|
-
${
|
|
1717
|
-
data-tab="${
|
|
1718
|
-
${
|
|
2871
|
+
${e.map(a=>{var s,n,l;const i=(s=a.getAttribute("tab"))!=null?s:"",o=a.hasAttribute("disabled");return`<button type="button" class="tab" role="tab" part="tab"
|
|
2872
|
+
data-tab="${c(i)}" aria-selected="${i===t}"
|
|
2873
|
+
${o?'aria-disabled="true" data-disabled="true"':""}>${c((l=(n=a.textContent)==null?void 0:n.trim())!=null?l:"")}</button>`}).join("")}
|
|
1719
2874
|
</div>
|
|
1720
2875
|
<slot></slot>
|
|
1721
|
-
`),this.panels.forEach(
|
|
2876
|
+
`),this.panels.forEach(a=>{a.getAttribute("tab")===t?a.removeAttribute("hidden"):a.setAttribute("hidden","")}),this.root.querySelectorAll(".tab").forEach(a=>{a.addEventListener("click",()=>{var i;a.hasAttribute("data-disabled")||(this.value=(i=a.dataset.tab)!=null?i:"",this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}})))})})}get panels(){const e=Array.from(this.querySelectorAll("fx-tab-panel"));if(e.length)return e;const t=[];let r=this.nextElementSibling;for(;r&&!r.matches("fx-tabs");)r.matches("fx-tab-panel")?t.push(r):t.push(...Array.from(r.querySelectorAll(":scope > fx-tab-panel"))),r=r.nextElementSibling;return t}};ht.styles=m`
|
|
1722
2877
|
:host {
|
|
1723
2878
|
display: block;
|
|
1724
2879
|
font-family: var(--fx-font-family);
|
|
@@ -1769,19 +2924,19 @@
|
|
|
1769
2924
|
::slotted(fx-tab) {
|
|
1770
2925
|
display: none !important;
|
|
1771
2926
|
}
|
|
1772
|
-
`;let
|
|
2927
|
+
`;let _e=ht;const ut=class ut extends g{constructor(){super(...arguments),this._initialized=!1}static get observedAttributes(){return["tab"]}get tab(){return this.getAttr("tab")}set tab(e){this.setAttribute("tab",e)}get visible(){return!this.hasAttr("hidden")}set visible(e){this.toggleAttr("hidden",!e)}render(){var e;if(this.setTemplate("<slot></slot>"),!this._initialized){const t=(e=this.closest("fx-tabs"))!=null?e:(()=>{let a=this.previousElementSibling;for(;a;){if(a.matches("fx-tabs"))return a;a=a.previousElementSibling}return null})(),r=t&&t.getAttribute("value")||"";this.getAttribute("tab")!==r&&this.setAttribute("hidden",""),this._initialized=!0}}};ut.styles=m`
|
|
1773
2928
|
:host { display: block; padding: var(--fx-space-lg) 0; font-family: var(--fx-font-family); color: var(--fx-text-default); }
|
|
1774
2929
|
:host([hidden]) { display: none; }
|
|
1775
|
-
`;let
|
|
1776
|
-
${r?`<div class="caption" part="caption">${
|
|
2930
|
+
`;let me=ut;function Mr(){return b("fx-tabs",_e)}function Nr(){return b("fx-tab-panel",me)}Mr(),Nr();const ft=class ft extends g{constructor(){super(...arguments),this._done=!1}static get observedAttributes(){return["value","indeterminate","variant","label","hide-label","size"]}get value(){return Number(this.getAttr("value","0"))||0}set value(e){this.setAttribute("value",String(Math.min(100,Math.max(0,e))))}render(){const e=Math.min(100,Math.max(0,this.value)),t=this.hasAttr("indeterminate"),r=this.getAttr("label"),a=!t&&!this.hasAttr("hide-label");this.setTemplate(`
|
|
2931
|
+
${r?`<div class="caption" part="caption">${c(r)}</div>`:""}
|
|
1777
2932
|
<div class="row">
|
|
1778
2933
|
<div class="track" part="track" role="progressbar"
|
|
1779
|
-
aria-valuenow="${
|
|
1780
|
-
<div class="bar" part="bar" style="width: ${
|
|
2934
|
+
aria-valuenow="${e}" aria-valuemin="0" aria-valuemax="100">
|
|
2935
|
+
<div class="bar" part="bar" style="width: ${t?"40%":`${e}%`}"></div>
|
|
1781
2936
|
</div>
|
|
1782
|
-
${
|
|
2937
|
+
${a?`<span class="pct">${e}%</span>`:""}
|
|
1783
2938
|
</div>
|
|
1784
|
-
`),!this._done&&!this.hasAttr("indeterminate")&&
|
|
2939
|
+
`),!this._done&&!this.hasAttr("indeterminate")&&e>=100&&(this._done=!0,this.dispatchEvent(new CustomEvent("complete",{bubbles:!0,composed:!0}))),e<100&&(this._done=!1)}};ft.styles=m`
|
|
1785
2940
|
:host {
|
|
1786
2941
|
display: block;
|
|
1787
2942
|
font-family: var(--fx-font-family);
|
|
@@ -1831,9 +2986,9 @@
|
|
|
1831
2986
|
color: var(--fx-text-muted);
|
|
1832
2987
|
margin-bottom: var(--fx-space-xs);
|
|
1833
2988
|
}
|
|
1834
|
-
`;let
|
|
2989
|
+
`;let ge=ft;function jr(){return b("fx-progress",ge)}jr();const _t=class _t extends g{static get observedAttributes(){return["variant","width","height","lines"]}safeSize(e){const t=e.trim();return/^-?\d*\.?\d+(px|em|rem|%|vw|vh|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/.test(t)?t:""}render(){const e=this.getAttr("variant","text"),t=this.safeSize(this.getAttr("width")),r=this.safeSize(this.getAttr("height")),a=`${t?`width:${t};`:""}${r?`height:${r};`:""}`;if(e==="circle"){const o=r||t||"40px",s=a.includes("height")?a:`width:${o};height:${o};`;this.setTemplate(`<div class="bone circle" part="bone" style="${s}"></div>`);return}if(e==="rect"){const o=a||"width:100%;height:80px;";this.setTemplate(`<div class="bone" part="bone" style="${o}"></div>`);return}const i=Number(this.getAttr("lines","3"))||3;this.setTemplate(`
|
|
1835
2990
|
${Array.from({length:i},()=>'<div class="bone text"></div>').join("")}
|
|
1836
|
-
`)}};
|
|
2991
|
+
`)}};_t.styles=m`
|
|
1837
2992
|
:host { display: block; width: 100%; min-width: 80px; font-family: var(--fx-font-family); }
|
|
1838
2993
|
.bone {
|
|
1839
2994
|
background: linear-gradient(
|
|
@@ -1851,16 +3006,16 @@
|
|
|
1851
3006
|
.text { height: 12px; width: 100%; margin-bottom: var(--fx-space-sm); }
|
|
1852
3007
|
.text:last-of-type { width: 60%; margin-bottom: 0; }
|
|
1853
3008
|
.circle { border-radius: var(--fx-radius-full); }
|
|
1854
|
-
`;let
|
|
3009
|
+
`;let be=_t;function Ir(){return b("fx-skeleton",be)}Ir();const mt=class mt extends g{static get observedAttributes(){return["variant","title","dismissible","icon"]}render(){var o,s;const e=this.getAttr("variant","info"),t=this.getAttr("title"),r=this.getAttr("icon");q(r)&&Promise.resolve().then(()=>Te);const i=r?`<span class="icon${q(r)?" fx-icon":""}" part="icon" aria-hidden="true">${c(r)}</span>`:`<span class="icon">${(o={info:"ℹ",success:"✓",warning:"⚠",danger:"✕"}[e])!=null?o:"ℹ"}</span>`;this.setTemplate(`
|
|
1855
3010
|
<div class="alert" part="alert" role="alert">
|
|
1856
|
-
|
|
3011
|
+
${i}
|
|
1857
3012
|
<div class="content">
|
|
1858
|
-
${
|
|
3013
|
+
${t?`<div class="title">${c(t)}</div>`:""}
|
|
1859
3014
|
<div class="body"><slot></slot></div>
|
|
1860
3015
|
</div>
|
|
1861
3016
|
${this.hasAttr("dismissible")?'<button type="button" class="close" aria-label="Fechar">×</button>':""}
|
|
1862
3017
|
</div>
|
|
1863
|
-
`),(
|
|
3018
|
+
`),(s=this.root.querySelector(".close"))==null||s.addEventListener("click",()=>{this.hidden=!0,this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))})}};mt.styles=m`
|
|
1864
3019
|
:host {
|
|
1865
3020
|
display: block;
|
|
1866
3021
|
font-family: var(--fx-font-family);
|
|
@@ -1884,6 +3039,8 @@
|
|
|
1884
3039
|
}
|
|
1885
3040
|
:host([hidden]) { display: none; }
|
|
1886
3041
|
.icon { color: var(--_color); font-weight: bold; line-height: 1.4; }
|
|
3042
|
+
${T}
|
|
3043
|
+
.icon.fx-icon { font-size: 20px; line-height: 1.2; }
|
|
1887
3044
|
.content { flex: 1; }
|
|
1888
3045
|
.title { font-weight: 600; }
|
|
1889
3046
|
.body { margin-top: 2px; }
|
|
@@ -1893,16 +3050,16 @@
|
|
|
1893
3050
|
line-height: 1; padding: 0; border-radius: var(--fx-radius-full);
|
|
1894
3051
|
}
|
|
1895
3052
|
.close:hover { color: var(--_color); }
|
|
1896
|
-
`;let
|
|
3053
|
+
`;let ve=mt;function Fr(){return b("fx-alert",ve)}Fr();const gt=class gt extends g{constructor(){super(...arguments),this._listenersAttached=!1}static get observedAttributes(){return["label","position","open"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){const e=this.getAttr("label","Ações"),t=Array.from(this.querySelectorAll("fx-dropdown-item"));this.setTemplate(`
|
|
1897
3054
|
<span class="trigger" role="button" tabindex="0" part="trigger"
|
|
1898
3055
|
aria-haspopup="menu" aria-expanded="${this.open}">
|
|
1899
|
-
${
|
|
3056
|
+
${c(e)} ▾
|
|
1900
3057
|
</span>
|
|
1901
3058
|
<div class="panel" role="menu" part="panel">
|
|
1902
|
-
${
|
|
3059
|
+
${t.length?"":'<div class="empty">Nenhuma ação</div>'}
|
|
1903
3060
|
<slot></slot>
|
|
1904
3061
|
</div>
|
|
1905
|
-
`);const r=this.root.querySelector(".trigger");r==null||r.addEventListener("click",
|
|
3062
|
+
`);const r=this.root.querySelector(".trigger");r==null||r.addEventListener("click",a=>{a.stopPropagation(),document.querySelectorAll("fx-dropdown[open]").forEach(i=>{i!==this&&(i.open=!1)}),this.open=!this.open}),r==null||r.addEventListener("keydown",a=>{a.key==="Enter"||a.key===" "?(a.preventDefault(),this.open=!this.open):a.key==="Escape"&&(this.open=!1)}),this._attachDelegatedListeners()}_attachDelegatedListeners(){this._listenersAttached||(this._listenersAttached=!0,this.addEventListener("click",e=>{var r;const t=e.composedPath().find(a=>{var i;return((i=a.tagName)==null?void 0:i.toLowerCase())==="fx-dropdown-item"});t&&(this.open=!1,this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{value:(r=t.getAttribute("value"))!=null?r:""}})))}),this.docListener=e=>{this.contains(e.target)||(this.open=!1)},document.addEventListener("click",this.docListener))}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener),this.docListener=void 0}};gt.styles=m`
|
|
1906
3063
|
:host {
|
|
1907
3064
|
position: relative;
|
|
1908
3065
|
display: inline-block;
|
|
@@ -1935,7 +3092,7 @@
|
|
|
1935
3092
|
:host(:not([position])) .panel { left: 0; right: auto; }
|
|
1936
3093
|
::slotted(fx-dropdown-item) { display: block; }
|
|
1937
3094
|
.empty { color: var(--fx-text-muted); font-size: calc(var(--fx-font-size) - 2px); padding: var(--fx-space-sm); }
|
|
1938
|
-
`;let
|
|
3095
|
+
`;let xe=gt;const bt=class bt extends g{static get observedAttributes(){return["value"]}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}render(){this.setTemplate('<button type="button" class="item" part="item" role="menuitem"><slot></slot></button>')}};bt.styles=m`
|
|
1939
3096
|
:host {
|
|
1940
3097
|
display: block;
|
|
1941
3098
|
font-family: var(--fx-font-family);
|
|
@@ -1956,13 +3113,13 @@
|
|
|
1956
3113
|
transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
|
|
1957
3114
|
}
|
|
1958
3115
|
.item:hover { background: color-mix(in srgb, var(--fx-color-primary) 12%, var(--fx-surface-background)); color: var(--fx-color-primary); }
|
|
1959
|
-
`;let
|
|
3116
|
+
`;let ye=bt;function Pr(){return b("fx-dropdown",xe)}function Vr(){return b("fx-dropdown-item",ye)}Pr(),Vr();const vt=class vt extends g{constructor(){super(...arguments),this._onKeydown=()=>{},this._previouslyFocused=null,this._close=()=>{this.open&&(this.open=!1,this._restoreFocus(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0})))}}static get observedAttributes(){return["open","title","position"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}get title(){return this.getAttr("title")}set title(e){this.setAttribute("title",e)}get position(){const e=this.getAttr("position");return["left","right","top","bottom"].includes(e)?e:"right"}set position(e){this.setAttribute("position",e)}render(){var t,r;const e=this.getAttr("title");this.setTemplate(`
|
|
1960
3117
|
<div class="overlay" part="overlay"></div>
|
|
1961
|
-
<div class="panel" part="panel" role="dialog" aria-modal="true" aria-label="${
|
|
1962
|
-
${
|
|
3118
|
+
<div class="panel" part="panel" role="dialog" aria-modal="true" aria-label="${c(e||"Drawer")}" tabindex="-1">
|
|
3119
|
+
${e!==""?`<div class="header" part="header"><span class="title">${c(e)}</span><button type="button" class="close" part="close" aria-label="Fechar">✕</button></div>`:""}
|
|
1963
3120
|
<div class="body" part="body"><slot></slot></div>
|
|
1964
3121
|
</div>
|
|
1965
|
-
`),(
|
|
3122
|
+
`),(t=this.root.querySelector(".overlay"))==null||t.addEventListener("click",this._close),(r=this.root.querySelector(".close"))==null||r.addEventListener("click",this._close),this.open&&requestAnimationFrame(()=>{var a;this._previouslyFocused===null&&(this._previouslyFocused=document.activeElement),(a=this.root.querySelector(".panel"))==null||a.focus()})}connectedCallback(){var e;(e=super.connectedCallback)==null||e.call(this),this._onKeydown=t=>{t.key==="Escape"&&this.open?this._close():t.key==="Tab"&&this.open&&this._trapFocus(t)},document.addEventListener("keydown",this._onKeydown)}disconnectedCallback(){var e;document.removeEventListener("keydown",this._onKeydown),this._restoreFocus(),(e=super.disconnectedCallback)==null||e.call(this)}_trapFocus(e){const t=this.root.querySelector(".panel");if(!t)return;const r=t.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!r.length)return;const a=r[0],i=r[r.length-1],o=this.root.activeElement;e.shiftKey&&(o===a||o===t)?(e.preventDefault(),i.focus()):!e.shiftKey&&o===i&&(e.preventDefault(),a.focus())}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}};vt.styles=m`
|
|
1966
3123
|
:host {
|
|
1967
3124
|
display: contents;
|
|
1968
3125
|
font-family: var(--fx-font-family);
|
|
@@ -2080,18 +3237,18 @@
|
|
|
2080
3237
|
padding: var(--fx-space-md);
|
|
2081
3238
|
flex: 1;
|
|
2082
3239
|
}
|
|
2083
|
-
`;let
|
|
2084
|
-
<span class="info">${this.total?`${i}-${
|
|
2085
|
-
<button type="button" class="nav" part="prev" data-go="${
|
|
2086
|
-
${
|
|
2087
|
-
${
|
|
2088
|
-
${
|
|
2089
|
-
<button type="button" class="nav" part="next" data-go="${
|
|
3240
|
+
`;let we=vt;function Rr(){return b("fx-drawer",we)}Rr();const xt=class xt extends g{static get observedAttributes(){return["page","total","rows","rows-options","position"]}get page(){return Number(this.getAttr("page","1"))||1}set page(e){this.setAttribute("page",String(e))}get total(){return Number(this.getAttr("total","0"))||0}set total(e){this.setAttribute("total",String(e))}get rows(){return Number(this.getAttr("rows","10"))||10}set rows(e){this.setAttribute("rows",String(e))}get pages(){return Math.max(1,Math.ceil(this.total/this.rows))}render(){const e=this.pages,t=Math.min(Math.max(1,this.page),e),r=(this.getAttr("rows-options","5,10,20,50")||"").split(",").map(l=>l.trim()).filter(Boolean),a=[];for(let l=Math.max(1,t-2);l<=Math.min(e,t+2);l++)a.push(l);const i=s(t,this.rows),o=Math.min(t*this.rows,this.total);this.setTemplate(`
|
|
3241
|
+
<span class="info">${this.total?`${i}-${o} de ${this.total}`:"0 itens"}</span>
|
|
3242
|
+
<button type="button" class="nav" part="prev" data-go="${t-1}" ${t<=1?"disabled":""}>‹</button>
|
|
3243
|
+
${a[0]!==1&&e>5?'<button type="button" class="nav" data-go="1">1</button>':""}
|
|
3244
|
+
${a.map(l=>`<button type="button" class="nav ${l===t?"active":""}" data-go="${l}">${l}</button>`).join("")}
|
|
3245
|
+
${a[a.length-1]!==e&&e>5?`<button type="button" class="nav" data-go="${e}">${e}</button>`:""}
|
|
3246
|
+
<button type="button" class="nav" part="next" data-go="${t+1}" ${t>=e?"disabled":""}>›</button>
|
|
2090
3247
|
${r.length?`
|
|
2091
3248
|
<fx-select class="rows-sel" part="rows" size="sm" value="${this.rows}" aria-label="Itens por página">
|
|
2092
|
-
${r.map(
|
|
3249
|
+
${r.map(l=>`<option value="${c(l)}">${c(l)}</option>`).join("")}
|
|
2093
3250
|
</fx-select>`:""}
|
|
2094
|
-
`);function
|
|
3251
|
+
`);function s(l,h){return(l-1)*h+1}this.root.querySelectorAll(".nav[data-go]").forEach(l=>{l.addEventListener("click",()=>{const h=Number(l.dataset.go);h>=1&&h<=e&&h!==t&&(this.page=h,this.emit())})});const n=this.root.querySelector("fx-select.rows-sel");n==null||n.addEventListener("change",l=>{var _;const h=Number((_=l.detail)==null?void 0:_.value);!h||h===this.rows||(this.rows=h,this.page=1,this.emit())})}emit(){this.dispatchEvent(new CustomEvent("page-change",{bubbles:!0,composed:!0,detail:{page:this.page,rows:this.rows}}))}};xt.styles=m`
|
|
2095
3252
|
:host {
|
|
2096
3253
|
display: flex;
|
|
2097
3254
|
align-items: center;
|
|
@@ -2134,11 +3291,11 @@
|
|
|
2134
3291
|
border-radius: var(--fx-radius-sm) !important;
|
|
2135
3292
|
font-size: calc(var(--fx-font-size) - 2px) !important;
|
|
2136
3293
|
}
|
|
2137
|
-
`;let
|
|
3294
|
+
`;let ke=xt;function Br(){return b("fx-pagination",ke)}Br();const yt=class yt extends g{static get observedAttributes(){return["size","placeholder","source","disabled","min-chars"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get source(){try{const e=JSON.parse(this.getAttr("source","[]"));return Array.isArray(e)?e.map(String):[]}catch(e){return[]}}set source(e){this.setAttribute("source",typeof e=="string"?e:JSON.stringify(e))}connectedCallback(){super.connectedCallback(),this.docListener=e=>{this.contains(e.target)||this.toggleAttr("open",!1)},document.addEventListener("click",this.docListener)}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener),this.docListener=void 0}render(){const e=this.getAttr("placeholder");this.setTemplate(`
|
|
2138
3295
|
<input class="field" part="input" type="text"
|
|
2139
|
-
${
|
|
3296
|
+
${e?`placeholder="${c(e)}"`:""} autocomplete="off"/>
|
|
2140
3297
|
<div class="list" part="list" role="listbox"></div>
|
|
2141
|
-
`);const
|
|
3298
|
+
`);const t=this.root.querySelector(".field");if(!t)return;t.value=this.value,this.hasAttr("disabled")&&t.setAttribute("disabled","");const r=this.root.querySelector(".list"),a=Number(this.getAttr("min-chars","1"))||1,i=()=>{if(!r)return;const o=t.value.toLowerCase(),s=this.source.filter(n=>n.toLowerCase().includes(o)).slice(0,8);r.innerHTML=s.length?s.map(n=>`<button type="button" class="opt" role="option" data-v="${c(n)}">${c(n)}</button>`).join(""):'<div class="empty">Nenhum resultado</div>',r.querySelectorAll(".opt").forEach(n=>{n.addEventListener("click",()=>{var l;t.value=(l=n.dataset.v)!=null?l:"",this.value=t.value,this.toggleAttr("open",!1),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{value:this.value}}))})}),this.toggleAttr("open",!0)};t.addEventListener("input",()=>{this.value=t.value,i()}),t.addEventListener("focus",()=>{t.value.length>=a&&i()}),t.addEventListener("keydown",o=>{var h;if(o.key==="Escape"){this.toggleAttr("open",!1);return}if(o.key!=="ArrowDown"&&o.key!=="ArrowUp")return;o.preventDefault(),this.hasAttr("open")||i();const s=Array.from(this.root.querySelectorAll(".opt"));if(!s.length)return;const n=s.indexOf(this.root.activeElement),l=o.key==="ArrowDown"?n===-1?0:Math.min(n+1,s.length-1):n===-1?s.length-1:Math.max(n-1,0);(h=s[l])==null||h.focus()})}};yt.styles=m`
|
|
2142
3299
|
:host {
|
|
2143
3300
|
position: relative;
|
|
2144
3301
|
display: inline-block;
|
|
@@ -2200,22 +3357,22 @@
|
|
|
2200
3357
|
}
|
|
2201
3358
|
.opt:hover { background: color-mix(in srgb, var(--fx-color-primary) 12%, var(--fx-surface-background)); color: var(--fx-color-primary); }
|
|
2202
3359
|
.empty { color: var(--fx-text-muted); font-size: calc(var(--fx-font-size) - 2px); padding: var(--fx-space-sm) var(--fx-space-md); }
|
|
2203
|
-
`;let
|
|
3360
|
+
`;let Ae=yt;function Or(){return b("fx-autocomplete",Ae)}Or();const wt=class wt extends g{constructor(){super(...arguments),this._isDragging=!1,this._startY=0,this._startValue=0,this._onMouseMove=e=>{if(!this._isDragging)return;const t=this._startY-e.clientY,r=(this.max-this.min)/100;this.emitChange(this._startValue+t*r)},this._onMouseUp=()=>{this._isDragging=!1,document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp)}}static get observedAttributes(){return["value","min","max","step","size","stroke-width","value-color","range-color","readonly","disabled","value-template"]}get value(){return this.clampValue(Number(this.getAttr("value","0"))||0)}set value(e){if(this.readonly||this.disabled)return;const t=this.clampValue(e),r=this.clampValue(Number(this.getAttr("value","0"))||0);t!==r&&(this.setAttribute("value",String(t)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:t}})))}get min(){return Number(this.getAttr("min","0"))||0}set min(e){this.setAttribute("min",String(e))}get max(){return Number(this.getAttr("max","100"))||100}set max(e){this.setAttribute("max",String(e))}get step(){return Number(this.getAttr("step","1"))||1}set step(e){this.setAttribute("step",String(e))}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get strokeWidth(){return Number(this.getAttr("stroke-width","8"))||8}set strokeWidth(e){this.setAttribute("stroke-width",String(e))}get valueColor(){return this.getAttr("value-color","")}set valueColor(e){this.setAttribute("value-color",e)}get rangeColor(){return this.getAttr("range-color","")}set rangeColor(e){this.setAttribute("range-color",e)}get readonly(){return this.hasAttr("readonly")}set readonly(e){this.toggleAttr("readonly",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get valueTemplate(){return this.getAttr("value-template","{value}")}set valueTemplate(e){this.setAttribute("value-template",e)}render(){const e=this.min,t=this.max,r=this.clampValue(this.value),a=t-e,i=a>0?(r-e)/a:0,o=this.getSizeNum(),s=this.strokeWidth,n=(o-s)/2,l=2*Math.PI*n,h=l*(1-i),_=this.valueColor?this.safeColor(this.valueColor):"",u=this.rangeColor?this.safeColor(this.rangeColor):"",p=_?`--_value-color: ${_};`:"",v=u?`--_range-color: ${u};`:"",f=this.valueTemplate.replace("{value}",String(Math.round(r)));this.setTemplate(`
|
|
2204
3361
|
<div class="knob" part="knob" tabindex="${this.disabled?"-1":"0"}"
|
|
2205
|
-
role="slider" aria-valuenow="${r}" aria-valuemin="${
|
|
3362
|
+
role="slider" aria-valuenow="${r}" aria-valuemin="${e}" aria-valuemax="${t}"
|
|
2206
3363
|
aria-readonly="${this.readonly}" aria-disabled="${this.disabled}"
|
|
2207
|
-
style="${
|
|
2208
|
-
<svg viewBox="0 0 ${
|
|
3364
|
+
style="${p}${v}">
|
|
3365
|
+
<svg viewBox="0 0 ${o} ${o}" part="svg">
|
|
2209
3366
|
<circle class="track" part="track"
|
|
2210
|
-
cx="${
|
|
3367
|
+
cx="${o/2}" cy="${o/2}" r="${n}" />
|
|
2211
3368
|
<circle class="value" part="value"
|
|
2212
|
-
cx="${
|
|
2213
|
-
stroke-dasharray="${
|
|
3369
|
+
cx="${o/2}" cy="${o/2}" r="${n}"
|
|
3370
|
+
stroke-dasharray="${l}"
|
|
2214
3371
|
stroke-dashoffset="${h}" />
|
|
2215
3372
|
</svg>
|
|
2216
|
-
<div class="label" part="label">${
|
|
3373
|
+
<div class="label" part="label">${c(f)}</div>
|
|
2217
3374
|
</div>
|
|
2218
|
-
`),this.attachListeners()}getSizeNum(){const
|
|
3375
|
+
`),this.attachListeners()}getSizeNum(){const e=this.size;return e==="sm"?60:e==="lg"?140:100}safeColor(e){const t=e.trim();return/^#[0-9a-fA-F]{3,8}$/.test(t)||/^(rgb|rgba|hsl|hsla)\([\d\s.,%()]+\)$/i.test(t)||/^var\(--[\w-]+(,\s*[^)]*)?\)$/.test(t)||/^[a-zA-Z]+$/.test(t)?t:""}clampValue(e){const t=this.min,r=this.max,a=this.step;let i=Math.min(r,Math.max(t,e));return a>0&&(i=Math.round((i-t)/a)*a+t,i=Math.min(r,Math.max(t,i))),i}emitChange(e){const t=this.clampValue(e);t!==this.value&&(this.value=t,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:t}})))}attachListeners(){const e=this.root.querySelector(".knob");e&&(e.addEventListener("mousedown",t=>{this.readonly||this.disabled||(t.preventDefault(),this._isDragging=!0,this._startY=t.clientY,this._startValue=this.value,e.focus(),document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mouseup",this._onMouseUp))}),e.addEventListener("touchstart",t=>{this.readonly||this.disabled||(t.preventDefault(),this._isDragging=!0,this._startY=t.touches[0].clientY,this._startValue=this.value,e.focus())},{passive:!1}),e.addEventListener("touchmove",t=>{if(!this._isDragging||this.readonly||this.disabled)return;t.preventDefault();const r=this._startY-t.touches[0].clientY,a=(this.max-this.min)/100;this.emitChange(this._startValue+r*a)},{passive:!1}),e.addEventListener("touchend",()=>{this._isDragging=!1}),e.addEventListener("keydown",t=>{if(this.readonly||this.disabled)return;const r=this.step;switch(t.key){case"ArrowUp":case"ArrowRight":t.preventDefault(),this.emitChange(this.value+r);break;case"ArrowDown":case"ArrowLeft":t.preventDefault(),this.emitChange(this.value-r);break;case"Home":t.preventDefault(),this.emitChange(this.min);break;case"End":t.preventDefault(),this.emitChange(this.max);break;case"PageUp":t.preventDefault(),this.emitChange(this.value+r*10);break;case"PageDown":t.preventDefault(),this.emitChange(this.value-r*10);break}}))}disconnectedCallback(){document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),super.disconnectedCallback()}};wt.styles=m`
|
|
2219
3376
|
:host {
|
|
2220
3377
|
display: inline-flex;
|
|
2221
3378
|
align-items: center;
|
|
@@ -2281,13 +3438,13 @@
|
|
|
2281
3438
|
.knob:focus-visible svg {
|
|
2282
3439
|
filter: drop-shadow(var(--fx-effect-focus-ring, 0 0 0 3px color-mix(in srgb, var(--fx-color-primary) 22%, transparent)));
|
|
2283
3440
|
}
|
|
2284
|
-
`;let
|
|
3441
|
+
`;let ze=wt;function Kr(){return b("fx-knob",ze)}Kr();const kt=class kt extends g{constructor(){super(...arguments),this._data=[],this._filteredData=null,this._selection=[],this._filterValue="",this._draggedIndex=null,this._listenersAttached=!1,this._optionTemplate=null}static get observedAttributes(){return["data","data-key","filter","filter-by","filter-placeholder","breakpoint","controls-location","dragdrop","striped","selection-mode","show-select-all"]}set data(e){this._data=e,this._filteredData=null,this.render()}get data(){return this._data}set selection(e){this._selection=e,this.render()}get selection(){return this._selection}get dataKey(){return this.getAttr("data-key","")}set dataKey(e){this.setAttribute("data-key",e)}get filter(){return this.hasAttr("filter")}set filter(e){this.toggleAttr("filter",e)}get filterBy(){return this.getAttr("filter-by","label")}set filterBy(e){this.setAttribute("filter-by",e)}get filterPlaceholder(){return this.getAttr("filter-placeholder","Buscar...")}set filterPlaceholder(e){this.setAttribute("filter-placeholder",e)}get breakpoint(){return this.getAttr("breakpoint","960px")}set breakpoint(e){this.setAttribute("breakpoint",e)}get dragdrop(){return this.hasAttr("dragdrop")}set dragdrop(e){this.toggleAttr("dragdrop",e)}get striped(){return this.hasAttr("striped")}set striped(e){this.toggleAttr("striped",e)}get selectionMode(){const e=this.getAttr("selection-mode","");return e==="single"||e==="multiple"?e:""}set selectionMode(e){this.setAttribute("selection-mode",e)}get showSelectAll(){return this.hasAttr("show-select-all")}set showSelectAll(e){this.toggleAttr("show-select-all",e)}get filterValue(){return this._filterValue}set filterValue(e){this._filterValue=e,this._applyFilter(),this._updateListDisplay()}setOptionTemplate(e){this._optionTemplate=e,this.render()}connectedCallback(){this._parseDataAttribute(),super.connectedCallback()}attributeChangedCallback(e,t,r){this.getAttr("data","")!==""&&this._parseDataAttribute(),super.attributeChangedCallback(e,t,r)}_parseDataAttribute(){const e=this.getAttr("data","");if(e)try{this._data=JSON.parse(e),this._filteredData=null}catch(t){this._data=[]}}_applyFilter(){if(!this._filterValue){this._filteredData=null;return}const e=this.filterBy.split(",").map(t=>t.trim());this._filteredData=this._data.filter(t=>e.some(r=>{const a=t[r];return a==null?!1:String(a).toLowerCase().includes(this._filterValue.toLowerCase())}))}_getDisplayData(){return this._filteredData||this._data}_getItemKey(e,t){return this.dataKey&&e[this.dataKey]!=null?String(e[this.dataKey]):e.id!=null?String(e.id):e.key!=null?String(e.key):e.label!=null?String(e.label):e.name!=null?String(e.name):e.value!=null?String(e.value):String(t)}_getItemLabel(e){const t=["label","name","title","text","value"];for(const r of t)if(e[r]!=null)return String(e[r]);return JSON.stringify(e)}_isSelected(e){return this._selection.some(t=>this._getItemKey(t,-1)===this._getItemKey(e,-1))}_moveItem(e,t){const r=this._getActualIndex(e),a=this._getActualIndex(t);if(r===-1||a===-1)return;const i=this._data.splice(r,1)[0];this._data.splice(a,0,i),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_getActualIndex(e){if(this._filteredData){const t=this._filteredData[e];return this._data.findIndex(r=>this._getItemKey(r,-1)===this._getItemKey(t,-1))}return e}_emitReorder(){this.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,composed:!0,detail:{items:[...this._data]}}))}_emitSelectionChange(){this.dispatchEvent(new CustomEvent("selection-change",{bubbles:!0,composed:!0,detail:{selection:[...this._selection]}}))}_toggleSelection(e){const t=this._getItemKey(e,-1),r=this._selection.findIndex(a=>this._getItemKey(a,-1)===t);r>=0?this._selection.splice(r,1):this.selectionMode==="multiple"?this._selection.push(e):this._selection=[e],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_selectAll(){const e=this._getDisplayData();this._selection=[...e],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_deselectAll(){this._selection=[],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_toggleSelectAll(){const e=this._getDisplayData();this._selection.length===e.length?this._deselectAll():this._selectAll()}render(){const e=this._getDisplayData(),t=this.selectionMode,r=this.selectionMode==="multiple",a=r&&e.length>0&&this._selection.length===e.length;this.setTemplate(`
|
|
2285
3442
|
<div class="container" part="container">
|
|
2286
3443
|
${this.filter?`
|
|
2287
3444
|
<div class="filter-wrapper" part="filter-wrapper">
|
|
2288
3445
|
<input type="text" class="filter-input" part="filter-input"
|
|
2289
3446
|
placeholder="${this.filterPlaceholder}"
|
|
2290
|
-
value="${
|
|
3447
|
+
value="${c(this._filterValue)}"
|
|
2291
3448
|
aria-label="Filtrar lista" />
|
|
2292
3449
|
</div>
|
|
2293
3450
|
`:""}
|
|
@@ -2315,7 +3472,7 @@
|
|
|
2315
3472
|
<div class="select-all-bar" part="select-all-bar">
|
|
2316
3473
|
<label>
|
|
2317
3474
|
<input type="checkbox" class="select-all-checkbox"
|
|
2318
|
-
${
|
|
3475
|
+
${a?"checked":""}
|
|
2319
3476
|
aria-label="Selecionar todos" />
|
|
2320
3477
|
Selecionar Todos
|
|
2321
3478
|
</label>
|
|
@@ -2325,21 +3482,21 @@
|
|
|
2325
3482
|
<ul class="list" part="list" role="listbox"
|
|
2326
3483
|
aria-multiselectable="${r}"
|
|
2327
3484
|
tabindex="0">
|
|
2328
|
-
${
|
|
3485
|
+
${e.length===0?`
|
|
2329
3486
|
<li class="empty-message" part="empty-message">
|
|
2330
3487
|
${this.filter?"Nenhum resultado encontrado":"Nenhum item disponivel"}
|
|
2331
3488
|
</li>
|
|
2332
|
-
`:
|
|
2333
|
-
<li class="list-item${
|
|
2334
|
-
data-index="${
|
|
2335
|
-
role="option" aria-selected="${
|
|
3489
|
+
`:e.map((i,o)=>{const s=this._getItemKey(i,o),n=this._getItemLabel(i),l=this._isSelected(i),h=this._optionTemplate?this._optionTemplate(i):c(n);return`
|
|
3490
|
+
<li class="list-item${l?" selected":""}" part="list-item"
|
|
3491
|
+
data-index="${o}" data-key="${c(s)}"
|
|
3492
|
+
role="option" aria-selected="${l}"
|
|
2336
3493
|
${this.dragdrop?'draggable="true"':""}
|
|
2337
3494
|
tabindex="0">
|
|
2338
3495
|
${this.dragdrop?'<span class="drag-handle" part="drag-handle" aria-label="Arrastar">⋮⋮</span>':""}
|
|
2339
|
-
${
|
|
3496
|
+
${t?`
|
|
2340
3497
|
<input type="checkbox" class="checkbox" part="checkbox"
|
|
2341
|
-
${
|
|
2342
|
-
aria-label="Selecionar ${
|
|
3498
|
+
${l?"checked":""}
|
|
3499
|
+
aria-label="Selecionar ${c(n)}" />
|
|
2343
3500
|
`:""}
|
|
2344
3501
|
<span class="item-content" part="item-content">${h}</span>
|
|
2345
3502
|
</li>
|
|
@@ -2348,8 +3505,8 @@
|
|
|
2348
3505
|
</div>
|
|
2349
3506
|
</div>
|
|
2350
3507
|
</div>
|
|
2351
|
-
`),this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list")),this._updateControlsState()}_attachListeners(){if(this._listenersAttached)return;this._listenersAttached=!0;const
|
|
2352
|
-
${
|
|
3508
|
+
`),this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list")),this._updateControlsState()}_attachListeners(){if(this._listenersAttached)return;this._listenersAttached=!0;const e=this.root;e.addEventListener("input",r=>{const a=r.target;a.classList.contains("filter-input")&&(this.filterValue=a.value)}),e.addEventListener("change",r=>{r.target.classList.contains("select-all-checkbox")&&this._toggleSelectAll()}),e.addEventListener("click",r=>{const i=r.target.closest(".control-btn");i&&this._handleMoveAction(i.dataset.action)});let t=null;e.addEventListener("dragstart",r=>{const a=r.target.closest(".list-item");a&&(this._draggedIndex=Number(a.dataset.index),a.classList.add("dragging"),r.dataTransfer.effectAllowed="move")}),e.addEventListener("dragend",r=>{r.target.classList.remove("dragging"),this._draggedIndex=null,e.querySelectorAll(".drag-over").forEach(i=>i.classList.remove("drag-over")),t=null}),e.addEventListener("dragover",r=>{r.preventDefault();const a=r.target.closest(".list-item");!a||a.classList.contains("dragging")||(t&&t.classList.remove("drag-over"),a.classList.add("drag-over"),t=a)}),e.addEventListener("drop",r=>{if(r.preventDefault(),this._draggedIndex===null)return;const a=r.target.closest(".list-item");if(!a)return;const i=Number(a.dataset.index);a.classList.remove("drag-over"),t=null,this._moveItem(this._draggedIndex,i),this._draggedIndex=null}),this._updateControlsState()}_attachItemListeners(e){e&&(e.addEventListener("click",t=>{const r=t.target,a=r.closest(".list-item");if(!a)return;if(r.classList.contains("checkbox")){t.stopPropagation();const o=Number(a.dataset.index);this._toggleSelection(this._getDisplayData()[o]);return}const i=Number(a.dataset.index);this._toggleSelection(this._getDisplayData()[i])}),e.addEventListener("keydown",t=>{const r=t.target;if(!r.classList.contains("list-item"))return;const a=Array.from(e.querySelectorAll(".list-item")),i=a.indexOf(r);switch(t.key){case"ArrowUp":t.preventDefault(),i>0&&a[i-1].focus();break;case"ArrowDown":t.preventDefault(),i<a.length-1&&a[i+1].focus();break;case" ":case"Enter":if(t.preventDefault(),this.selectionMode){const s=Number(r.dataset.index);this._toggleSelection(this._getDisplayData()[s])}break}}))}_updateListDisplay(){const e=this.root.querySelector(".list-wrapper");if(!e){this.render();return}const t=this._getDisplayData(),r=this.selectionMode,a=this.selectionMode==="multiple",i=a&&t.length>0&&this._selection.length===t.length;e.innerHTML=`
|
|
3509
|
+
${a&&this.showSelectAll?`
|
|
2353
3510
|
<div class="select-all-bar" part="select-all-bar">
|
|
2354
3511
|
<label>
|
|
2355
3512
|
<input type="checkbox" class="select-all-checkbox"
|
|
@@ -2361,15 +3518,15 @@
|
|
|
2361
3518
|
</div>
|
|
2362
3519
|
`:""}
|
|
2363
3520
|
<ul class="list" part="list" role="listbox"
|
|
2364
|
-
aria-multiselectable="${
|
|
3521
|
+
aria-multiselectable="${a}"
|
|
2365
3522
|
tabindex="0">
|
|
2366
|
-
${
|
|
3523
|
+
${t.length===0?`
|
|
2367
3524
|
<li class="empty-message" part="empty-message">
|
|
2368
3525
|
${this.filter?"Nenhum resultado encontrado":"Nenhum item disponivel"}
|
|
2369
3526
|
</li>
|
|
2370
|
-
`:
|
|
3527
|
+
`:t.map((o,s)=>{const n=this._getItemKey(o,s),l=this._getItemLabel(o),h=this._isSelected(o),_=this._optionTemplate?this._optionTemplate(o):c(l);return`
|
|
2371
3528
|
<li class="list-item${h?" selected":""}" part="list-item"
|
|
2372
|
-
data-index="${
|
|
3529
|
+
data-index="${s}" data-key="${c(n)}"
|
|
2373
3530
|
role="option" aria-selected="${h}"
|
|
2374
3531
|
${this.dragdrop?'draggable="true"':""}
|
|
2375
3532
|
tabindex="0">
|
|
@@ -2377,13 +3534,13 @@
|
|
|
2377
3534
|
${r?`
|
|
2378
3535
|
<input type="checkbox" class="checkbox" part="checkbox"
|
|
2379
3536
|
${h?"checked":""}
|
|
2380
|
-
aria-label="Selecionar ${
|
|
3537
|
+
aria-label="Selecionar ${c(l)}" />
|
|
2381
3538
|
`:""}
|
|
2382
|
-
<span class="item-content" part="item-content">${
|
|
3539
|
+
<span class="item-content" part="item-content">${_}</span>
|
|
2383
3540
|
</li>
|
|
2384
3541
|
`}).join("")}
|
|
2385
3542
|
</ul>
|
|
2386
|
-
`,this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list"))}_handleMoveAction(
|
|
3543
|
+
`,this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list"))}_handleMoveAction(e){if(!this._selection.length)return;const t=this._getDisplayData(),r=this._selection.map(a=>t.findIndex(i=>this._getItemKey(i,-1)===this._getItemKey(a,-1))).filter(a=>a>=0).sort((a,i)=>a-i);if(r.length!==0)switch(e){case"top":this._moveSelectedToStart(r);break;case"up":this._moveSelectedByOne(r,-1);break;case"down":this._moveSelectedByOne(r,1);break;case"bottom":this._moveSelectedToEnd(r);break}}_moveSelectedToStart(e){const t=[],r=[];for(const i of e){const o=this._getActualIndex(i);t.push(this._data[o]),r.push(o)}r.sort((i,o)=>o-i).forEach(i=>this._data.splice(i,1));const a=this._getActualIndex(0);this._data.splice(a,0,...t),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_moveSelectedToEnd(e){const t=[],r=[];for(const o of e){const s=this._getActualIndex(o);t.push(this._data[s]),r.push(s)}r.sort((o,s)=>s-o).forEach(o=>this._data.splice(o,1));const a=this._getDisplayData(),i=this._getActualIndex(a.length-1);this._data.splice(i+1,0,...t),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_moveSelectedByOne(e,t){if(this._getDisplayData().length===0)return;const a=e.map(s=>this._getActualIndex(s)).filter(s=>s>=0).sort((s,n)=>s-n);if(a.length===0||t<0&&a[0]<=0||t>0&&a[a.length-1]>=this._data.length-1)return;const i=a.map(s=>this._data[s]);for(let s=a.length-1;s>=0;s--)this._data.splice(a[s],1);let o;t<0?o=a[0]-1:o=a[a.length-1]-a.length+1+1,o=Math.max(0,Math.min(o,this._data.length)),this._data.splice(o,0,...i),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_updateControlsState(){const e=this._getDisplayData(),t=this._selection.map(a=>e.findIndex(i=>this._getItemKey(i,-1)===this._getItemKey(a,-1))).filter(a=>a>=0);this.root.querySelectorAll(".control-btn").forEach(a=>{const i=a.dataset.action;let o=t.length===0;if(!o)switch(i){case"top":case"up":o=t[0]===0;break;case"bottom":case"down":o=t[t.length-1]===e.length-1;break}a.disabled=o})}};kt.styles=m`
|
|
2387
3544
|
|
|
2388
3545
|
:host {
|
|
2389
3546
|
display: block;
|
|
@@ -2458,7 +3615,7 @@
|
|
|
2458
3615
|
@media (max-width: 640px) { .main-row { flex-direction: column; } .controls-bar { flex-direction: row; flex-wrap: wrap; justify-content: center; position: relative; } .control-group { flex-direction: row; } .control-group + .control-group { margin-top: 0; margin-left: 4px; padding-top: 0; padding-left: 4px; border-top: none; border-left: 1px solid var(--orderlist-border); } button.control-btn { width: 44px; height: 40px; } button.control-btn::after { display: none; } .list { max-height: 300px; } }
|
|
2459
3616
|
@keyframes slideIn { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } }
|
|
2460
3617
|
.list-item { animation: slideIn 0.2s ease-out; }
|
|
2461
|
-
`;let ot=Pt;function Fe(){return k("fx-orderlist",ot)}Fe();const Ft=class Ft extends y{constructor(){super(...arguments),this._source=[],this._filteredSource=null,this._target=[],this._filteredTarget=null,this._sourceSelection=[],this._targetSelection=[],this._sourceFilterValue="",this._targetFilterValue="",this._filterListenersAttached=!1,this._optionTemplate=null}static get observedAttributes(){return["source","target","source-key","target-key","filter","filter-by","filter-placeholder","dragdrop","striped","selection-mode","show-select-all","source-label","target-label"]}set source(t){this._source=t,this._filteredSource=null,this.render()}get source(){return this._source}set target(t){this._target=t,this._filteredTarget=null,this.render()}get target(){return this._target}set sourceSelection(t){this._sourceSelection=t,this.render()}get sourceSelection(){return this._sourceSelection}set targetSelection(t){this._targetSelection=t,this.render()}get targetSelection(){return this._targetSelection}get sourceKey(){return this.getAttr("source-key","")}set sourceKey(t){this.setAttribute("source-key",t)}get targetKey(){return this.getAttr("target-key","")}set targetKey(t){this.setAttribute("target-key",t)}get filter(){return this.hasAttr("filter")}set filter(t){this.toggleAttr("filter",t)}get filterBy(){return this.getAttr("filter-by","label")}set filterBy(t){this.setAttribute("filter-by",t)}get filterPlaceholder(){return this.getAttr("filter-placeholder","Buscar...")}set filterPlaceholder(t){this.setAttribute("filter-placeholder",t)}get dragdrop(){return this.hasAttr("dragdrop")}set dragdrop(t){this.toggleAttr("dragdrop",t)}get striped(){return this.hasAttr("striped")}set striped(t){this.toggleAttr("striped",t)}get selectionMode(){const t=this.getAttr("selection-mode","");return t==="single"||t==="multiple"?t:""}set selectionMode(t){this.setAttribute("selection-mode",t)}get showSelectAll(){return this.hasAttr("show-select-all")}set showSelectAll(t){this.toggleAttr("show-select-all",t)}get sourceLabel(){return this.getAttr("source-label","Disponíveis")}set sourceLabel(t){this.setAttribute("source-label",t)}get targetLabel(){return this.getAttr("target-label","Selecionados")}set targetLabel(t){this.setAttribute("target-label",t)}get sourceFilterValue(){return this._sourceFilterValue}set sourceFilterValue(t){this._sourceFilterValue=t,this._applySourceFilter(),this._updateListDisplay()}get targetFilterValue(){return this._targetFilterValue}set targetFilterValue(t){this._targetFilterValue=t,this._applyTargetFilter(),this._updateListDisplay()}setOptionTemplate(t){this._optionTemplate=t,this.render()}connectedCallback(){this._parseSourceAttribute(),this._parseTargetAttribute(),super.connectedCallback()}attributeChangedCallback(){this.getAttr("source","")!==""&&this._parseSourceAttribute(),this.getAttr("target","")!==""&&this._parseTargetAttribute(),super.attributeChangedCallback()}_parseSourceAttribute(){const t=this.getAttr("source","");if(t)try{this._source=JSON.parse(t),this._filteredSource=null}catch(e){this._source=[]}}_parseTargetAttribute(){const t=this.getAttr("target","");if(t)try{this._target=JSON.parse(t),this._filteredTarget=null}catch(e){this._target=[]}}_applySourceFilter(){if(!this._sourceFilterValue){this._filteredSource=null;return}const t=this.filterBy.split(",").map(e=>e.trim());this._filteredSource=this._source.filter(e=>t.some(r=>{const s=e[r];return s==null?!1:String(s).toLowerCase().includes(this._sourceFilterValue.toLowerCase())}))}_applyTargetFilter(){if(!this._targetFilterValue){this._filteredTarget=null;return}const t=this.filterBy.split(",").map(e=>e.trim());this._filteredTarget=this._target.filter(e=>t.some(r=>{const s=e[r];return s==null?!1:String(s).toLowerCase().includes(this._targetFilterValue.toLowerCase())}))}_getDisplaySource(){return this._filteredSource||this._source}_getDisplayTarget(){return this._filteredTarget||this._target}_getItemKey(t,e,r){const s=r?this.sourceKey:this.targetKey;return s&&t[s]!=null?String(t[s]):t.id!=null?String(t.id):t.key!=null?String(t.key):t.label!=null?String(t.label):t.name!=null?String(t.name):t.value!=null?String(t.value):String(e)}_getItemLabel(t){const e=["label","name","title","text","value"];for(const r of e)if(t[r]!=null)return String(t[r]);return JSON.stringify(t)}_isSourceSelected(t,e){return this._sourceSelection.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(t,e,!0))}_isTargetSelected(t,e){return this._targetSelection.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(t,e,!1))}_emitMoveToTarget(){this.dispatchEvent(new CustomEvent("move-to-target",{bubbles:!0,composed:!0,detail:{items:[...this._sourceSelection],source:[...this._source],target:[...this._target]}}))}_emitMoveToSource(){this.dispatchEvent(new CustomEvent("move-to-source",{bubbles:!0,composed:!0,detail:{items:[...this._targetSelection],source:[...this._source],target:[...this._target]}}))}_emitSelectionChangeSource(){this.dispatchEvent(new CustomEvent("selection-change-source",{bubbles:!0,composed:!0,detail:{selection:[...this._sourceSelection]}}))}_emitSelectionChangeTarget(){this.dispatchEvent(new CustomEvent("selection-change-target",{bubbles:!0,composed:!0,detail:{selection:[...this._targetSelection]}}))}render(){const t=this._getDisplaySource(),e=this._getDisplayTarget(),r=this.selectionMode,s=r==="multiple"&&this.showSelectAll,i=t.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:t.map((c,h)=>`<li class="list-item${this._isSourceSelected(c,h)?" selected":""}" data-index="${h}" data-list="source" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isSourceSelected(c,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(c):u(this._getItemLabel(c))}</span></li>`).join(""),a=e.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:e.map((c,h)=>`<li class="list-item${this._isTargetSelected(c,h)?" selected":""}" data-index="${h}" data-list="target" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isTargetSelected(c,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(c):u(this._getItemLabel(c))}</span></li>`).join(""),o=s?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="source" ${this._sourceSelection.length>0&&this._sourceSelection.length===this._source.length?"checked":""} aria-label="Selecionar todos da origem" /> Selecionar Todos</label><span class="selection-count">${this._sourceSelection.length} selecionado(s)</span></div>`:"",n=s?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="target" ${this._targetSelection.length>0&&this._targetSelection.length===this._target.length?"checked":""} aria-label="Selecionar todos do destino" /> Selecionar Todos</label><span class="selection-count">${this._targetSelection.length} selecionado(s)</span></div>`:"";this.setTemplate(`<div class="container"><div class="list-container"><div class="list-label">${u(this.sourceLabel)} (${this._source.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input source-filter" placeholder="'+this.filterPlaceholder+'" value="'+u(this._sourceFilterValue)+'" /></div>':""}${o}<div class="list-wrapper"><ul class="list source-list" role="listbox" tabindex="0">${i}</ul></div></div><div class="controls"><div class="control-group"><button class="control-btn" data-action="move-all-target" part="control-btn" aria-label="Mover todos para destino"><span class="control-btn-icon">»</span></button><button class="control-btn" data-action="move-target" part="control-btn" aria-label="Mover para destino"><span class="control-btn-icon">→</span></button></div><div class="control-group"><button class="control-btn" data-action="move-source" part="control-btn" aria-label="Mover para origem"><span class="control-btn-icon">←</span></button><button class="control-btn" data-action="move-all-source" part="control-btn" aria-label="Mover todos para origem"><span class="control-btn-icon">«</span></button></div></div><div class="list-container"><div class="list-label">${u(this.targetLabel)} (${this._target.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input target-filter" placeholder="'+this.filterPlaceholder+'" value="'+u(this._targetFilterValue)+'" /></div>':""}${n}<div class="list-wrapper"><ul class="list target-list" role="listbox" tabindex="0">${a}</ul></div></div></div>`),this._attachListeners()}_attachListeners(){this._filterListenersAttached||(this._filterListenersAttached=!0,this.root.addEventListener("input",t=>{const e=t.target;if(e.classList.contains("select-all-checkbox")){this._handleSelectAll(e);return}e.classList.contains("source-filter")?this.sourceFilterValue=e.value:e.classList.contains("target-filter")&&(this.targetFilterValue=e.value)}),this.root.addEventListener("click",t=>{const e=t.target,r=e.closest(".control-btn");if(r){switch(r.dataset.action){case"move-target":this._moveToTarget();break;case"move-all-target":this._moveAllToTarget();break;case"move-source":this._moveToSource();break;case"move-all-source":this._moveAllToSource();break}return}const s=e.closest(".list-item");if(!s)return;const i=s.dataset.list==="source",a=Number(s.dataset.index),o=(i?this._getDisplaySource():this._getDisplayTarget())[a];i?this._toggleSourceSelection(o,a):this._toggleTargetSelection(o,a)})),this._updateControlsState()}_handleSelectAll(t){t.dataset.list==="source"?(this._sourceSelection=t.checked?[...this._getDisplaySource()]:[],this._emitSelectionChangeSource()):(this._targetSelection=t.checked?[...this._getDisplayTarget()]:[],this._emitSelectionChangeTarget()),this._updateSelectionDisplay(),this._updateControlsState()}_updateSelectionDisplay(){const t=(e,r,s)=>{e&&e.querySelectorAll(".list-item").forEach(i=>{const a=Number(i.dataset.index),o=r(s()[a],a);i.classList.toggle("selected",o),i.setAttribute("aria-selected",String(o));const n=i.querySelector(".checkbox");n&&(n.checked=o)})};t(this.root.querySelector(".source-list"),(e,r)=>this._isSourceSelected(e,r),()=>this._getDisplaySource()),t(this.root.querySelector(".target-list"),(e,r)=>this._isTargetSelected(e,r),()=>this._getDisplayTarget()),this._updateSelectAllBars()}_updateSelectAllBars(){if(!(this.selectionMode==="multiple"&&this.showSelectAll))return;[{el:this.root.querySelector('.select-all-checkbox[data-list="source"]'),total:this._source.length,sel:this._sourceSelection.length},{el:this.root.querySelector('.select-all-checkbox[data-list="target"]'),total:this._target.length,sel:this._targetSelection.length}].forEach(({el:e,total:r,sel:s})=>{var a;if(!e)return;e.checked=r>0&&s===r;const i=(a=e.closest(".select-all-bar"))==null?void 0:a.querySelector(".selection-count");i&&(i.textContent=`${s} selecionado(s)`)})}_updateControlsState(){this.root.querySelectorAll(".control-btn").forEach(t=>{const e=t.dataset.action;t.disabled=e==="move-target"&&this._sourceSelection.length===0||e==="move-all-target"&&this._source.length===0||e==="move-source"&&this._targetSelection.length===0||e==="move-all-source"&&this._target.length===0})}_moveToTarget(){if(!this._sourceSelection.length)return;const t=[...this._sourceSelection];this._source=this._source.filter(e=>!t.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(e,-1,!0))),this._target=[...this._target,...t],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveToSource(){if(!this._targetSelection.length)return;const t=[...this._targetSelection];this._target=this._target.filter(e=>!t.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(e,-1,!1))),this._source=[...this._source,...t],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_moveAllToTarget(){const t=[...this._source];this._source=[],this._target=[...this._target,...t],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveAllToSource(){const t=[...this._target];this._target=[],this._source=[...this._source,...t],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_toggleSourceSelection(t,e){const r=this.selectionMode||"single",s=this._getItemKey(t,e,!0),i=this._sourceSelection.findIndex(a=>this._getItemKey(a,-1,!0)===s);i>=0?this._sourceSelection.splice(i,1):r==="multiple"?this._sourceSelection.push(t):this._sourceSelection=[t],this._emitSelectionChangeSource(),this._updateSelectionDisplay(),this._updateControlsState()}_toggleTargetSelection(t,e){const r=this.selectionMode||"single",s=this._getItemKey(t,e,!1),i=this._targetSelection.findIndex(a=>this._getItemKey(a,-1,!1)===s);i>=0?this._targetSelection.splice(i,1):r==="multiple"?this._targetSelection.push(t):this._targetSelection=[t],this._emitSelectionChangeTarget(),this._updateSelectionDisplay(),this._updateControlsState()}_updateListDisplay(){var h,g;const t=(h=this.root.querySelector(".source-list"))==null?void 0:h.parentElement,e=(g=this.root.querySelector(".target-list"))==null?void 0:g.parentElement,r=this.root.querySelector(".list-container:first-of-type .list-label"),s=this.root.querySelector(".list-container:last-of-type .list-label");if(!t||!e){this.render();return}const i=this._getDisplaySource(),a=this._getDisplayTarget(),o=this.selectionMode,n=i.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:i.map((f,d)=>`<li class="list-item${this._isSourceSelected(f,d)?" selected":""}" part="list-item" data-index="${d}" data-list="source" role="option" aria-selected="${this._isSourceSelected(f,d)}" tabindex="0">${o?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isSourceSelected(f,d)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(f):u(this._getItemLabel(f))}</span></li>`).join(""),c=a.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:a.map((f,d)=>`<li class="list-item${this._isTargetSelected(f,d)?" selected":""}" part="list-item" data-index="${d}" data-list="target" role="option" aria-selected="${this._isTargetSelected(f,d)}" tabindex="0">${o?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isTargetSelected(f,d)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(f):u(this._getItemLabel(f))}</span></li>`).join("");t.innerHTML=`<ul class="list source-list" role="listbox" tabindex="0">${n}</ul>`,e.innerHTML=`<ul class="list target-list" role="listbox" tabindex="0">${c}</ul>`,r&&(r.textContent=`${this.sourceLabel} (${this._source.length})`),s&&(s.textContent=`${this.targetLabel} (${this._target.length})`),this._updateSelectAllBars(),this._attachListeners()}};Ft.styles=v`
|
|
3618
|
+
`;let Se=kt;function Hr(){return b("fx-orderlist",Se)}Hr();const At=class At extends g{constructor(){super(...arguments),this._source=[],this._filteredSource=null,this._target=[],this._filteredTarget=null,this._sourceSelection=[],this._targetSelection=[],this._sourceFilterValue="",this._targetFilterValue="",this._filterListenersAttached=!1,this._optionTemplate=null}static get observedAttributes(){return["source","target","source-key","target-key","filter","filter-by","filter-placeholder","dragdrop","striped","selection-mode","show-select-all","source-label","target-label"]}set source(e){this._source=e,this._filteredSource=null,this.render()}get source(){return this._source}set target(e){this._target=e,this._filteredTarget=null,this.render()}get target(){return this._target}set sourceSelection(e){this._sourceSelection=e,this.render()}get sourceSelection(){return this._sourceSelection}set targetSelection(e){this._targetSelection=e,this.render()}get targetSelection(){return this._targetSelection}get sourceKey(){return this.getAttr("source-key","")}set sourceKey(e){this.setAttribute("source-key",e)}get targetKey(){return this.getAttr("target-key","")}set targetKey(e){this.setAttribute("target-key",e)}get filter(){return this.hasAttr("filter")}set filter(e){this.toggleAttr("filter",e)}get filterBy(){return this.getAttr("filter-by","label")}set filterBy(e){this.setAttribute("filter-by",e)}get filterPlaceholder(){return this.getAttr("filter-placeholder","Buscar...")}set filterPlaceholder(e){this.setAttribute("filter-placeholder",e)}get dragdrop(){return this.hasAttr("dragdrop")}set dragdrop(e){this.toggleAttr("dragdrop",e)}get striped(){return this.hasAttr("striped")}set striped(e){this.toggleAttr("striped",e)}get selectionMode(){const e=this.getAttr("selection-mode","");return e==="single"||e==="multiple"?e:""}set selectionMode(e){this.setAttribute("selection-mode",e)}get showSelectAll(){return this.hasAttr("show-select-all")}set showSelectAll(e){this.toggleAttr("show-select-all",e)}get sourceLabel(){return this.getAttr("source-label","Disponíveis")}set sourceLabel(e){this.setAttribute("source-label",e)}get targetLabel(){return this.getAttr("target-label","Selecionados")}set targetLabel(e){this.setAttribute("target-label",e)}get sourceFilterValue(){return this._sourceFilterValue}set sourceFilterValue(e){this._sourceFilterValue=e,this._applySourceFilter(),this._updateListDisplay()}get targetFilterValue(){return this._targetFilterValue}set targetFilterValue(e){this._targetFilterValue=e,this._applyTargetFilter(),this._updateListDisplay()}setOptionTemplate(e){this._optionTemplate=e,this.render()}connectedCallback(){this._parseSourceAttribute(),this._parseTargetAttribute(),super.connectedCallback()}attributeChangedCallback(e,t,r){this.getAttr("source","")!==""&&this._parseSourceAttribute(),this.getAttr("target","")!==""&&this._parseTargetAttribute(),super.attributeChangedCallback(e,t,r)}_parseSourceAttribute(){const e=this.getAttr("source","");if(e)try{this._source=JSON.parse(e),this._filteredSource=null}catch(t){this._source=[]}}_parseTargetAttribute(){const e=this.getAttr("target","");if(e)try{this._target=JSON.parse(e),this._filteredTarget=null}catch(t){this._target=[]}}_applySourceFilter(){if(!this._sourceFilterValue){this._filteredSource=null;return}const e=this.filterBy.split(",").map(t=>t.trim());this._filteredSource=this._source.filter(t=>e.some(r=>{const a=t[r];return a==null?!1:String(a).toLowerCase().includes(this._sourceFilterValue.toLowerCase())}))}_applyTargetFilter(){if(!this._targetFilterValue){this._filteredTarget=null;return}const e=this.filterBy.split(",").map(t=>t.trim());this._filteredTarget=this._target.filter(t=>e.some(r=>{const a=t[r];return a==null?!1:String(a).toLowerCase().includes(this._targetFilterValue.toLowerCase())}))}_getDisplaySource(){return this._filteredSource||this._source}_getDisplayTarget(){return this._filteredTarget||this._target}_getItemKey(e,t,r){const a=r?this.sourceKey:this.targetKey;return a&&e[a]!=null?String(e[a]):e.id!=null?String(e.id):e.key!=null?String(e.key):e.label!=null?String(e.label):e.name!=null?String(e.name):e.value!=null?String(e.value):String(t)}_getItemLabel(e){const t=["label","name","title","text","value"];for(const r of t)if(e[r]!=null)return String(e[r]);return JSON.stringify(e)}_isSourceSelected(e,t){return this._sourceSelection.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(e,t,!0))}_isTargetSelected(e,t){return this._targetSelection.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(e,t,!1))}_emitMoveToTarget(){this.dispatchEvent(new CustomEvent("move-to-target",{bubbles:!0,composed:!0,detail:{items:[...this._sourceSelection],source:[...this._source],target:[...this._target]}}))}_emitMoveToSource(){this.dispatchEvent(new CustomEvent("move-to-source",{bubbles:!0,composed:!0,detail:{items:[...this._targetSelection],source:[...this._source],target:[...this._target]}}))}_emitSelectionChangeSource(){this.dispatchEvent(new CustomEvent("selection-change-source",{bubbles:!0,composed:!0,detail:{selection:[...this._sourceSelection]}}))}_emitSelectionChangeTarget(){this.dispatchEvent(new CustomEvent("selection-change-target",{bubbles:!0,composed:!0,detail:{selection:[...this._targetSelection]}}))}render(){const e=this._getDisplaySource(),t=this._getDisplayTarget(),r=this.selectionMode,a=r==="multiple"&&this.showSelectAll,i=e.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:e.map((l,h)=>`<li class="list-item${this._isSourceSelected(l,h)?" selected":""}" data-index="${h}" data-list="source" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isSourceSelected(l,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(l):c(this._getItemLabel(l))}</span></li>`).join(""),o=t.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:t.map((l,h)=>`<li class="list-item${this._isTargetSelected(l,h)?" selected":""}" data-index="${h}" data-list="target" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isTargetSelected(l,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(l):c(this._getItemLabel(l))}</span></li>`).join(""),s=a?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="source" ${this._sourceSelection.length>0&&this._sourceSelection.length===this._source.length?"checked":""} aria-label="Selecionar todos da origem" /> Selecionar Todos</label><span class="selection-count">${this._sourceSelection.length} selecionado(s)</span></div>`:"",n=a?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="target" ${this._targetSelection.length>0&&this._targetSelection.length===this._target.length?"checked":""} aria-label="Selecionar todos do destino" /> Selecionar Todos</label><span class="selection-count">${this._targetSelection.length} selecionado(s)</span></div>`:"";this.setTemplate(`<div class="container"><div class="list-container"><div class="list-label">${c(this.sourceLabel)} (${this._source.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input source-filter" placeholder="'+this.filterPlaceholder+'" value="'+c(this._sourceFilterValue)+'" /></div>':""}${s}<div class="list-wrapper"><ul class="list source-list" role="listbox" tabindex="0">${i}</ul></div></div><div class="controls"><div class="control-group"><button class="control-btn" data-action="move-all-target" part="control-btn" aria-label="Mover todos para destino"><span class="control-btn-icon">»</span></button><button class="control-btn" data-action="move-target" part="control-btn" aria-label="Mover para destino"><span class="control-btn-icon">→</span></button></div><div class="control-group"><button class="control-btn" data-action="move-source" part="control-btn" aria-label="Mover para origem"><span class="control-btn-icon">←</span></button><button class="control-btn" data-action="move-all-source" part="control-btn" aria-label="Mover todos para origem"><span class="control-btn-icon">«</span></button></div></div><div class="list-container"><div class="list-label">${c(this.targetLabel)} (${this._target.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input target-filter" placeholder="'+this.filterPlaceholder+'" value="'+c(this._targetFilterValue)+'" /></div>':""}${n}<div class="list-wrapper"><ul class="list target-list" role="listbox" tabindex="0">${o}</ul></div></div></div>`),this._attachListeners()}_attachListeners(){this._filterListenersAttached||(this._filterListenersAttached=!0,this.root.addEventListener("input",e=>{const t=e.target;if(t.classList.contains("select-all-checkbox")){this._handleSelectAll(t);return}t.classList.contains("source-filter")?this.sourceFilterValue=t.value:t.classList.contains("target-filter")&&(this.targetFilterValue=t.value)}),this.root.addEventListener("click",e=>{const t=e.target,r=t.closest(".control-btn");if(r){switch(r.dataset.action){case"move-target":this._moveToTarget();break;case"move-all-target":this._moveAllToTarget();break;case"move-source":this._moveToSource();break;case"move-all-source":this._moveAllToSource();break}return}const a=t.closest(".list-item");if(!a)return;const i=a.dataset.list==="source",o=Number(a.dataset.index),s=(i?this._getDisplaySource():this._getDisplayTarget())[o];i?this._toggleSourceSelection(s,o):this._toggleTargetSelection(s,o)})),this._updateControlsState()}_handleSelectAll(e){e.dataset.list==="source"?(this._sourceSelection=e.checked?[...this._getDisplaySource()]:[],this._emitSelectionChangeSource()):(this._targetSelection=e.checked?[...this._getDisplayTarget()]:[],this._emitSelectionChangeTarget()),this._updateSelectionDisplay(),this._updateControlsState()}_updateSelectionDisplay(){const e=(t,r,a)=>{t&&t.querySelectorAll(".list-item").forEach(i=>{const o=Number(i.dataset.index),s=r(a()[o],o);i.classList.toggle("selected",s),i.setAttribute("aria-selected",String(s));const n=i.querySelector(".checkbox");n&&(n.checked=s)})};e(this.root.querySelector(".source-list"),(t,r)=>this._isSourceSelected(t,r),()=>this._getDisplaySource()),e(this.root.querySelector(".target-list"),(t,r)=>this._isTargetSelected(t,r),()=>this._getDisplayTarget()),this._updateSelectAllBars()}_updateSelectAllBars(){if(!(this.selectionMode==="multiple"&&this.showSelectAll))return;[{el:this.root.querySelector('.select-all-checkbox[data-list="source"]'),total:this._source.length,sel:this._sourceSelection.length},{el:this.root.querySelector('.select-all-checkbox[data-list="target"]'),total:this._target.length,sel:this._targetSelection.length}].forEach(({el:t,total:r,sel:a})=>{var o;if(!t)return;t.checked=r>0&&a===r;const i=(o=t.closest(".select-all-bar"))==null?void 0:o.querySelector(".selection-count");i&&(i.textContent=`${a} selecionado(s)`)})}_updateControlsState(){this.root.querySelectorAll(".control-btn").forEach(e=>{const t=e.dataset.action;e.disabled=t==="move-target"&&this._sourceSelection.length===0||t==="move-all-target"&&this._source.length===0||t==="move-source"&&this._targetSelection.length===0||t==="move-all-source"&&this._target.length===0})}_moveToTarget(){if(!this._sourceSelection.length)return;const e=[...this._sourceSelection];this._source=this._source.filter(t=>!e.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(t,-1,!0))),this._target=[...this._target,...e],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveToSource(){if(!this._targetSelection.length)return;const e=[...this._targetSelection];this._target=this._target.filter(t=>!e.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(t,-1,!1))),this._source=[...this._source,...e],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_moveAllToTarget(){const e=[...this._source];this._source=[],this._target=[...this._target,...e],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveAllToSource(){const e=[...this._target];this._target=[],this._source=[...this._source,...e],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_toggleSourceSelection(e,t){const r=this.selectionMode||"single",a=this._getItemKey(e,t,!0),i=this._sourceSelection.findIndex(o=>this._getItemKey(o,-1,!0)===a);i>=0?this._sourceSelection.splice(i,1):r==="multiple"?this._sourceSelection.push(e):this._sourceSelection=[e],this._emitSelectionChangeSource(),this._updateSelectionDisplay(),this._updateControlsState()}_toggleTargetSelection(e,t){const r=this.selectionMode||"single",a=this._getItemKey(e,t,!1),i=this._targetSelection.findIndex(o=>this._getItemKey(o,-1,!1)===a);i>=0?this._targetSelection.splice(i,1):r==="multiple"?this._targetSelection.push(e):this._targetSelection=[e],this._emitSelectionChangeTarget(),this._updateSelectionDisplay(),this._updateControlsState()}_updateListDisplay(){var h,_;const e=(h=this.root.querySelector(".source-list"))==null?void 0:h.parentElement,t=(_=this.root.querySelector(".target-list"))==null?void 0:_.parentElement,r=this.root.querySelector(".list-container:first-of-type .list-label"),a=this.root.querySelector(".list-container:last-of-type .list-label");if(!e||!t){this.render();return}const i=this._getDisplaySource(),o=this._getDisplayTarget(),s=this.selectionMode,n=i.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:i.map((u,p)=>`<li class="list-item${this._isSourceSelected(u,p)?" selected":""}" part="list-item" data-index="${p}" data-list="source" role="option" aria-selected="${this._isSourceSelected(u,p)}" tabindex="0">${s?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isSourceSelected(u,p)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(u):c(this._getItemLabel(u))}</span></li>`).join(""),l=o.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:o.map((u,p)=>`<li class="list-item${this._isTargetSelected(u,p)?" selected":""}" part="list-item" data-index="${p}" data-list="target" role="option" aria-selected="${this._isTargetSelected(u,p)}" tabindex="0">${s?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isTargetSelected(u,p)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(u):c(this._getItemLabel(u))}</span></li>`).join("");e.innerHTML=`<ul class="list source-list" role="listbox" tabindex="0">${n}</ul>`,t.innerHTML=`<ul class="list target-list" role="listbox" tabindex="0">${l}</ul>`,r&&(r.textContent=`${this.sourceLabel} (${this._source.length})`),a&&(a.textContent=`${this.targetLabel} (${this._target.length})`),this._updateSelectAllBars(),this._attachListeners()}};At.styles=m`
|
|
2462
3619
|
:host {
|
|
2463
3620
|
display: block;
|
|
2464
3621
|
font-family: var(--fx-font-family);
|
|
@@ -2710,13 +3867,13 @@
|
|
|
2710
3867
|
to { opacity: 1; transform: translateX(0); }
|
|
2711
3868
|
}
|
|
2712
3869
|
.list-item { animation: slideIn 0.2s ease-out; }
|
|
2713
|
-
`;let
|
|
3870
|
+
`;let $e=At;function Yr(){return b("fx-picklist",$e)}Yr();const zt=class zt extends g{constructor(){super(...arguments),this._mo=null,this._clickListenerAttached=!1}static get observedAttributes(){return["header","expanded","disabled"]}get header(){return this.getAttr("header","")}set header(e){this.setAttribute("header",e)}get value(){return this.getAttr("value","")}set value(e){this.setAttribute("value",e)}get expanded(){return this.hasAttr("expanded")}set expanded(e){this.toggleAttr("expanded",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",e)}connectedCallback(){super.connectedCallback(),this._clickListenerAttached||(this._clickListenerAttached=!0,this.addEventListener("click",e=>{e.composedPath().some(r=>{var a;return(a=r.classList)==null?void 0:a.contains("header")})&&(this.disabled||this.dispatchEvent(new CustomEvent("fx-accordion-toggle",{bubbles:!0,composed:!0,detail:{panel:this}})))})),this._mo=new MutationObserver(()=>this.render()),this._mo.observe(this,{attributes:!0,attributeFilter:["expanded","header","disabled"]})}disconnectedCallback(){var e;(e=this._mo)==null||e.disconnect(),this._mo=null}render(){this.setTemplate(`
|
|
2714
3871
|
<div class="panel" part="panel">
|
|
2715
3872
|
<button type="button" class="header" part="header" role="button"
|
|
2716
3873
|
aria-expanded="${this.expanded}"
|
|
2717
3874
|
${this.disabled?'aria-disabled="true"':""}>
|
|
2718
3875
|
<span class="header-text" part="header-text">
|
|
2719
|
-
<slot name="header">${
|
|
3876
|
+
<slot name="header">${c(this.header)}</slot>
|
|
2720
3877
|
</span>
|
|
2721
3878
|
<span class="chevron" part="chevron" aria-hidden="true">
|
|
2722
3879
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none"
|
|
@@ -2731,7 +3888,7 @@
|
|
|
2731
3888
|
</div>
|
|
2732
3889
|
</div>
|
|
2733
3890
|
</div>
|
|
2734
|
-
`)}};
|
|
3891
|
+
`)}};zt.styles=m`
|
|
2735
3892
|
:host {
|
|
2736
3893
|
display: block;
|
|
2737
3894
|
font-family: var(--fx-font-family);
|
|
@@ -2799,11 +3956,11 @@
|
|
|
2799
3956
|
color: var(--fx-text-muted);
|
|
2800
3957
|
line-height: 1.6;
|
|
2801
3958
|
}
|
|
2802
|
-
`;let
|
|
3959
|
+
`;let Ee=zt;const St=class St extends g{constructor(){super(...arguments),this._observer=null,this._initialized=!1,this._listenersAttached=!1}static get observedAttributes(){return["value","multiple"]}get multiple(){return this.hasAttr("multiple")}set multiple(e){this.toggleAttr("multiple",e)}get values(){return this.getAttr("value","").split(",").map(e=>e.trim()).filter(Boolean)}set values(e){this.setAttribute("value",e.join(","))}connectedCallback(){this._observer=new MutationObserver(()=>this._sync()),this._observer.observe(this,{childList:!0,subtree:!0}),super.connectedCallback(),queueMicrotask(()=>this._sync())}disconnectedCallback(){var e;(e=this._observer)==null||e.disconnect(),this._observer=null}render(){this.setTemplate(`
|
|
2803
3960
|
<div class="accordion" part="accordion">
|
|
2804
3961
|
<slot></slot>
|
|
2805
3962
|
</div>
|
|
2806
|
-
`),this._sync(),this._attachListeners()}get panels(){return Array.from(this.querySelectorAll("fx-accordion-panel"))}_sync(){const
|
|
3963
|
+
`),this._sync(),this._attachListeners()}get panels(){return Array.from(this.querySelectorAll("fx-accordion-panel"))}_sync(){const e=this.values,t=Array.from(this.querySelectorAll("fx-accordion-panel"));if(!this._initialized&&e.length===0&&t.length>0){this._initialized=!0;const r=t.find(a=>!a.hasAttribute("disabled"));if(r){this.values=[r.getAttribute("value")||"0"];return}}this._initialized=!0,t.forEach((r,a)=>{const i=r.getAttribute("value")||String(a);r.hasAttribute("value")||r.setAttribute("value",i),r.toggleAttribute("expanded",e.includes(i))})}_attachListeners(){this._listenersAttached||(this._listenersAttached=!0,this.addEventListener("fx-accordion-toggle",e=>{var r;const t=(r=e.detail)==null?void 0:r.panel;!t||t.disabled||this.toggle(t)}))}toggle(e){const t=e.value;let r=this.values;e.expanded?r=r.filter(a=>a!==t):this.multiple?r=[...r,t]:r=[t],this.values=r,this._sync(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:r}}))}open(e){const t=this.panels.find((r,a)=>(r.value||String(a))===e);t&&!t.expanded&&this.toggle(t)}close(e){const t=this.panels.find((r,a)=>(r.value||String(a))===e);t&&t.expanded&&this.toggle(t)}};St.styles=m`
|
|
2807
3964
|
:host {
|
|
2808
3965
|
display: block;
|
|
2809
3966
|
font-family: var(--fx-font-family);
|
|
@@ -2816,4 +3973,4 @@
|
|
|
2816
3973
|
overflow: hidden;
|
|
2817
3974
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
|
|
2818
3975
|
}
|
|
2819
|
-
`;let ct=Bt;function Be(){return k("fx-accordion",ct)}function Ke(){return k("fx-accordion-panel",lt)}Be(),Ke()});
|
|
3976
|
+
`;let Le=St;function Xr(){return b("fx-accordion",Le)}function Ur(){return b("fx-accordion-panel",Ee)}Xr(),Ur();const Tt=["10k","10mp","11mp","123","12mp","13mp","14mp","15mp","16mp","17mp","18_up_rating","18mp","19mp","1k","1k_plus","1x_mobiledata","1x_mobiledata_badge","20mp","21mp","22mp","23mp","24fps_select","24mp","2d","2d_2","2k","2k_plus","2mp","30fps","30fps_select","360","3d","3d_2","3d_rotation","3g_mobiledata","3g_mobiledata_badge","3k","3k_plus","3mp","3p","4g_mobiledata","4g_mobiledata_badge","4g_plus_mobiledata","4k","4k_plus","4mp","50mp","5g","5g_mobiledata_badge","5k","5k_plus","5mp","60fps","60fps_select","6_ft_apart","6k","6k_plus","6mp","7k","7k_plus","7mp","8k","8k_plus","8mp","9k","9k_plus","9mp","abc","ac_unit","access_alarm","access_alarms","access_time","access_time_filled","accessibility","accessibility_new","accessible","accessible_forward","accessible_menu","account_balance","account_balance_wallet","account_box","account_child","account_child_invert","account_circle","account_circle_filled","account_circle_off","account_tree","action_key","activity_zone","acupuncture","acute","ad","ad_group","ad_group_off","ad_off","ad_units","adaptive_audio_mic","adaptive_audio_mic_off","adb","add","add_2","add_a_photo","add_ad","add_alarm","add_alert","add_box","add_business","add_call","add_card","add_chart","add_circle","add_circle_outline","add_column_left","add_column_right","add_comment","add_diamond","add_home","add_home_work","add_ic_call","add_link","add_location","add_location_alt","add_moderator","add_notes","add_photo_alternate","add_reaction","add_road","add_row_above","add_row_below","add_shopping_cart","add_task","add_to_drive","add_to_home_screen","add_to_photos","add_to_queue","add_triangle","addchart","adf_scanner","adjust","admin_meds","admin_panel_settings","ads_click","agender","agriculture","air","air_freshener","air_purifier","air_purifier_gen","airline_seat_flat","airline_seat_flat_angled","airline_seat_individual_suite","airline_seat_legroom_extra","airline_seat_legroom_normal","airline_seat_legroom_reduced","airline_seat_recline_extra","airline_seat_recline_normal","airline_stops","airlines","airplane_ticket","airplanemode_active","airplanemode_inactive","airplay","airport_shuttle","airware","airwave","alarm","alarm_add","alarm_off","alarm_on","alarm_pause","alarm_smart_wake","album","align_center","align_end","align_flex_center","align_flex_end","align_flex_start","align_horizontal_center","align_horizontal_left","align_horizontal_right","align_items_stretch","align_justify_center","align_justify_flex_end","align_justify_flex_start","align_justify_space_around","align_justify_space_between","align_justify_space_even","align_justify_stretch","align_self_stretch","align_space_around","align_space_between","align_space_even","align_start","align_stretch","align_vertical_bottom","align_vertical_center","align_vertical_top","all_inbox","all_inclusive","all_match","all_out","allergies","allergy","alt_route","alternate_email","altitude","ambient_screen","ambulance","amend","amp_stories","analytics","anchor","android","android_cell_4_bar","android_cell_4_bar_alert","android_cell_4_bar_off","android_cell_4_bar_plus","android_cell_5_bar","android_cell_5_bar_alert","android_cell_5_bar_off","android_cell_5_bar_plus","android_cell_dual_4_bar","android_cell_dual_4_bar_alert","android_cell_dual_4_bar_plus","android_cell_dual_5_bar","android_cell_dual_5_bar_alert","android_cell_dual_5_bar_plus","android_wifi_3_bar","android_wifi_3_bar_alert","android_wifi_3_bar_lock","android_wifi_3_bar_off","android_wifi_3_bar_plus","android_wifi_3_bar_question","android_wifi_4_bar","android_wifi_4_bar_alert","android_wifi_4_bar_lock","android_wifi_4_bar_off","android_wifi_4_bar_plus","android_wifi_4_bar_question","animated_images","animation","announcement","antigravity","aod","aod_tablet","aod_watch","apartment","api","apk_document","apk_install","app_badging","app_blocking","app_promo","app_registration","app_settings_alt","app_shortcut","apparel","approval","approval_delegation","approval_delegation_off","apps","apps_outage","aq","aq_indoor","ar_on_you","ar_stickers","architecture","archive","area_chart","arming_countdown","arrow_and_edge","arrow_back","arrow_back_2","arrow_back_ios","arrow_back_ios_new","arrow_circle_down","arrow_circle_left","arrow_circle_right","arrow_circle_up","arrow_cool_down","arrow_downward","arrow_downward_alt","arrow_drop_down","arrow_drop_down_circle","arrow_drop_up","arrow_forward","arrow_forward_ios","arrow_insert","arrow_left","arrow_left_alt","arrow_menu_close","arrow_menu_open","arrow_or_edge","arrow_outward","arrow_range","arrow_right","arrow_right_alt","arrow_selector_tool","arrow_shape_up","arrow_shape_up_stack","arrow_shape_up_stack_2","arrow_split","arrow_top_left","arrow_top_right","arrow_upload_progress","arrow_upload_ready","arrow_upward","arrow_upward_alt","arrow_warm_up","arrows_input","arrows_left_right_circle","arrows_more_down","arrows_more_up","arrows_output","arrows_outward","arrows_up_down_circle","art_track","article","article_person","article_shortcut","artist","aspect_ratio","assessment","assignment","assignment_add","assignment_globe","assignment_ind","assignment_late","assignment_return","assignment_returned","assignment_turned_in","assist_walker","assistant","assistant_device","assistant_direction","assistant_navigation","assistant_on_hub","assistant_photo","assured_workload","asterisk","astrophotography_auto","astrophotography_off","atm","atr","attach_email","attach_file","attach_file_add","attach_file_off","attach_money","attachment","attractions","attribution","audio_capture","audio_description","audio_file","audio_video_receiver","audiotrack","auto_activity_zone","auto_awesome","auto_awesome_mosaic","auto_awesome_motion","auto_delete","auto_detect_voice","auto_draw_solid","auto_fix","auto_fix_high","auto_fix_normal","auto_fix_off","auto_graph","auto_label","auto_meeting_room","auto_mode","auto_read_pause","auto_read_play","auto_schedule","auto_stories","auto_stories_off","auto_timer","auto_towing","auto_transmission","auto_videocam","autofps_select","automation","autopause","autopay","autoplay","autorenew","autostop","av1","av_timer","avc","avg_pace","avg_time","avocado_bean","award_meal","award_star","azm","b_circle","baby_changing_station","back_hand","back_to_tab","background_dot_large","background_dot_small","background_grid_small","background_replace","backlight_high","backlight_high_off","backlight_low","backpack","backspace","backup","backup_table","badge","badge_critical_battery","badminton","bakery_dining","balance","balcony","ballot","bar_chart","bar_chart_4_bars","bar_chart_off","barcode","barcode_reader","barcode_scanner","barefoot","batch_prediction","bath_bedrock","bath_outdoor","bath_private","bath_public_large","bath_soak","bathroom","bathtub","battery_0_bar","battery_1_bar","battery_20","battery_2_bar","battery_30","battery_3_bar","battery_4_bar","battery_50","battery_5_bar","battery_60","battery_6_bar","battery_80","battery_90","battery_alert","battery_android_0","battery_android_1","battery_android_2","battery_android_3","battery_android_4","battery_android_5","battery_android_6","battery_android_alert","battery_android_bolt","battery_android_frame_1","battery_android_frame_2","battery_android_frame_3","battery_android_frame_4","battery_android_frame_5","battery_android_frame_6","battery_android_frame_alert","battery_android_frame_bolt","battery_android_frame_full","battery_android_frame_plus","battery_android_frame_question","battery_android_frame_share","battery_android_frame_shield","battery_android_full","battery_android_plus","battery_android_question","battery_android_share","battery_android_shield","battery_change","battery_charging_20","battery_charging_20_2","battery_charging_30","battery_charging_30_2","battery_charging_50","battery_charging_50_2","battery_charging_60","battery_charging_60_2","battery_charging_80","battery_charging_80_2","battery_charging_90","battery_charging_full","battery_charging_full_2","battery_error","battery_full","battery_full_alt","battery_horiz_000","battery_horiz_050","battery_horiz_075","battery_low","battery_plus","battery_profile","battery_saver","battery_share","battery_status_good","battery_std","battery_unknown","battery_vert_005","battery_vert_020","battery_vert_050","battery_very_low","beach_access","bed","bedroom_baby","bedroom_child","bedroom_parent","bedtime","bedtime_off","beenhere","beer_meal","bento","bia","bid_landscape","bid_landscape_disabled","bigtop_updates","bike_dock","bike_lane","bike_scooter","biotech","blanket","blender","blind","blinds","blinds_2","blinds_2_closed","blinds_closed","block","blood_pressure","bloodtype","bluetooth","bluetooth_audio","bluetooth_connected","bluetooth_disabled","bluetooth_drive","bluetooth_searching","blur_circular","blur_linear","blur_medium","blur_off","blur_on","blur_short","boat_bus","boat_railway","body_fat","body_system","bolt","bolt_boost","bomb","book","book_2","book_3","book_4","book_5","book_6","book_online","book_ribbon","bookmark","bookmark_add","bookmark_added","bookmark_bag","bookmark_border","bookmark_check","bookmark_flag","bookmark_heart","bookmark_manager","bookmark_remove","bookmark_stacks","bookmark_star","bookmarks","books_movies_and_music","border_all","border_bottom","border_clear","border_color","border_horizontal","border_inner","border_left","border_outer","border_right","border_style","border_top","border_vertical","borg","bottom_app_bar","bottom_drawer","bottom_navigation","bottom_panel_close","bottom_panel_open","bottom_right_click","bottom_sheets","box","box_add","box_edit","boy","brand_awareness","brand_family","branding_watermark","breakfast_dining","breaking_news","breaking_news_alt_1","breastfeeding","brick","briefcase_meal","brightness_1","brightness_2","brightness_3","brightness_4","brightness_5","brightness_6","brightness_7","brightness_alert","brightness_auto","brightness_empty","brightness_high","brightness_low","brightness_medium","bring_your_own_ip","broadcast_on_home","broadcast_on_personal","broken_image","browse","browse_activity","browse_gallery","browser_not_supported","browser_updated","brunch_dining","brush","bubble","bubble_chart","bubbles","bucket_check","bug_report","build","build_circle","bullet_chart","bungalow","burst_mode","bus_alert","bus_map_pin","bus_railway","business","business_center","business_chip","business_messages","buttons_alt","cabin","cable","cable_car","cached","cadence","cake","cake_add","calculate","calendar_add_on","calendar_apps_script","calendar_check","calendar_clock","calendar_lock","calendar_meal","calendar_meal_2","calendar_month","calendar_today","calendar_view_day","calendar_view_month","calendar_view_week","call","call_end","call_end_alt","call_log","call_made","call_merge","call_missed","call_missed_outgoing","call_quality","call_received","call_split","call_to_action","camera","camera_alt","camera_enhance","camera_front","camera_indoor","camera_outdoor","camera_rear","camera_roll","camera_video","cameraswitch","campaign","camping","cancel","cancel_presentation","cancel_schedule_send","candle","candlestick_chart","cannabis","captive_portal","capture","car_crash","car_defrost_left","car_defrost_low_left","car_defrost_low_right","car_defrost_mid_left","car_defrost_mid_low_left","car_defrost_mid_low_right","car_defrost_mid_right","car_defrost_right","car_fan_low_left","car_fan_low_mid_left","car_fan_low_right","car_fan_mid_left","car_fan_mid_low_right","car_fan_mid_right","car_fan_recirculate","car_fan_recirculate_2","car_gear","car_lock","car_mirror_heat","car_rental","car_repair","car_seat_off","car_tag","card_giftcard","card_membership","card_travel","cardio_load","cardiology","cards","cards_stack","cards_star","carpenter","carry_on_bag","carry_on_bag_checked","carry_on_bag_inactive","carry_on_bag_question","cases","casino","cast","cast_connected","cast_for_education","cast_pause","cast_warning","castle","category","category_search","celebration","cell_merge","cell_tower","cell_wifi","center_focus_strong","center_focus_weak","chair","chair_alt","chair_counter","chair_fireplace","chair_umbrella","chalet","change_circle","change_history","charger","charging_station","chart_data","chat","chat_add_on","chat_apps_script","chat_bubble","chat_bubble_off","chat_bubble_outline","chat_dashed","chat_error","chat_info","chat_paste_go","chat_paste_go_2","check","check_alert","check_box","check_box_outline_blank","check_circle","check_circle_filled","check_circle_outline","check_circle_unread","check_in_out","check_indeterminate_small","check_small","checkbook","checked_bag","checked_bag_question","checklist","checklist_rtl","checkroom","cheer","chef_hat","chess","chess_bishop","chess_bishop_2","chess_king","chess_king_2","chess_knight","chess_pawn","chess_pawn_2","chess_queen","chess_rook","chevron_backward","chevron_forward","chevron_left","chevron_line_up","chevron_right","child_care","child_friendly","child_hat","chip_extraction","chips","chrome_reader_mode","chromecast_2","chromecast_device","chronic","church","cinematic_blur","circle","circle_circle","circle_notifications","circles","circles_ext","clarify","class","clean_hands","cleaning","cleaning_bucket","cleaning_services","clear","clear_all","clear_day","clear_night","climate_mini_split","clinical_notes","clock_arrow_down","clock_arrow_up","clock_loader_10","clock_loader_20","clock_loader_40","clock_loader_60","clock_loader_80","clock_loader_90","close","close_fullscreen","close_small","closed_caption","closed_caption_add","closed_caption_disabled","closed_caption_off","cloud","cloud_alert","cloud_circle","cloud_done","cloud_download","cloud_lock","cloud_off","cloud_queue","cloud_sync","cloud_upload","cloudy","cloudy_filled","cloudy_snowing","co2","co_present","code","code_blocks","code_off","code_xml","coffee","coffee_maker","cognition","cognition_2","collapse_all","collapse_content","collections","collections_bookmark","color_lens","colorize","colors","combine_columns","comedy_mask","comic_bubble","comment","comment_bank","comments_disabled","commit","communication","communities","communities_filled","commute","compare","compare_arrows","compass_calibration","component_exchange","compost","compress","computer","computer_arrow_up","computer_cancel","computer_sound","concierge","conditions","confirmation_number","congenital","connect_without_contact","connected_tv","connecting_airports","construction","contact_emergency","contact_mail","contact_page","contact_phone","contact_phone_filled","contact_support","contactless","contactless_off","contacts","contacts_product","content_copy","content_cut","content_paste","content_paste_go","content_paste_off","content_paste_search","contextual_token","contextual_token_add","contract","contract_delete","contract_edit","contrast","contrast_circle","contrast_rtl_off","contrast_square","control_camera","control_point","control_point_duplicate","controller_gen","conversation","conversion_path","conversion_path_off","convert_to_text","conveyor_belt","cookie","cookie_off","cooking","cool_to_dry","copy_all","copyright","coronavirus","corporate_fare","cottage","counter_0","counter_1","counter_2","counter_3","counter_4","counter_5","counter_6","counter_7","counter_8","counter_9","countertops","create","create_new_folder","credit_card","credit_card_clock","credit_card_gear","credit_card_heart","credit_card_off","credit_score","crib","crisis_alert","crop","crop_16_9","crop_21_9","crop_2_3","crop_3_2","crop_5_4","crop_7_5","crop_9_16","crop_din","crop_free","crop_landscape","crop_original","crop_portrait","crop_rotate","crop_square","crossword","crowdsource","crown","cruelty_free","css","csv","currency_bitcoin","currency_exchange","currency_franc","currency_lira","currency_pound","currency_ruble","currency_rupee","currency_rupee_circle","currency_yen","currency_yuan","curtains","curtains_closed","custom_typography","cut","cycle","cyclone","dangerous","dark_mode","dashboard","dashboard_2","dashboard_2_add","dashboard_2_edit","dashboard_2_gear","dashboard_customize","data_alert","data_array","data_check","data_exploration","data_info_alert","data_loss_prevention","data_object","data_saver_off","data_saver_on","data_table","data_thresholding","data_usage","database","database_off","database_search","database_upload","dataset","dataset_linked","date_range","deblur","deceased","decimal_decrease","decimal_increase","deck","dehaze","delete","delete_forever","delete_history","delete_outline","delete_sweep","delivery_dining","delivery_truck_bolt","delivery_truck_speed","demography","density_large","density_medium","density_small","dentistry","departure_board","deployed_code","deployed_code_account","deployed_code_alert","deployed_code_history","deployed_code_update","dermatology","description","deselect","design_services","desk","deskphone","desktop_access_disabled","desktop_cloud","desktop_cloud_stack","desktop_landscape","desktop_landscape_add","desktop_mac","desktop_portrait","desktop_windows","destruction","details","detection_and_zone","detection_and_zone_off","detector","detector_alarm","detector_battery","detector_co","detector_offline","detector_smoke","detector_status","developer_board","developer_board_off","developer_guide","developer_mode","developer_mode_tv","device_band","device_hub","device_reset","device_thermostat","device_unknown","devices","devices_fold","devices_fold_2","devices_off","devices_other","devices_wearables","dew_point","diagnosis","diagonal_line","dialer_sip","dialogs","dialpad","diamond","diamond_shine","dictionary","difference","digital_out_of_home","digital_wellbeing","dine_heart","dine_in","dine_lamp","dining","dinner_dining","directions","directions_alt","directions_alt_off","directions_bike","directions_boat","directions_boat_filled","directions_bus","directions_bus_filled","directions_car","directions_car_filled","directions_off","directions_railway","directions_railway_2","directions_railway_filled","directions_run","directions_subway","directions_subway_filled","directions_transit","directions_transit_filled","directions_walk","directory_sync","dirty_lens","disabled_by_default","disabled_visible","disc_full","discover_tune","dishwasher","dishwasher_gen","display_add","display_external_input","display_settings","distance","diversity_1","diversity_2","diversity_3","diversity_4","dns","do_disturb","do_disturb_alt","do_disturb_off","do_disturb_on","do_not_disturb","do_not_disturb_alt","do_not_disturb_off","do_not_disturb_on","do_not_disturb_on_total_silence","do_not_step","do_not_touch","dock","dock_to_bottom","dock_to_left","dock_to_right","docs","docs_add_on","docs_apps_script","document_scanner","document_search","domain","domain_add","domain_disabled","domain_disabled_check","domain_verification","domain_verification_off","domino_mask","done","done_all","done_outline","donut_large","donut_small","door_back","door_front","door_open","door_sensor","door_sliding","doorbell","doorbell_3p","doorbell_chime","double_arrow","downhill_skiing","download","download_2","download_done","download_for_offline","downloading","draft","draft_orders","drafts","drag_click","drag_handle","drag_indicator","drag_pan","draw","draw_abstract","draw_collage","drawing_recognition","dresser","drive_eta","drive_export","drive_file_move","drive_file_move_outline","drive_file_move_rtl","drive_file_rename","drive_file_rename_outline","drive_folder_upload","drone","drone_2","dropdown","dropdown_menu","dropper_eye","dry","dry_cleaning","dual_screen","duo","dvr","dynamic_feed","dynamic_form","e911_avatar","e911_emergency","e_mobiledata","e_mobiledata_badge","ear_sound","earbud_case","earbud_left","earbud_right","earbuds","earbuds_2","earbuds_battery","early_on","earthquake","east","ecg","ecg_heart","eco","eda","edgesensor_high","edgesensor_low","edit","edit_arrow_down","edit_arrow_up","edit_attributes","edit_audio","edit_calendar","edit_document","edit_location","edit_location_alt","edit_note","edit_notifications","edit_off","edit_road","edit_square","editor_choice","egg","egg_alt","eject","elderly","elderly_woman","electric_bike","electric_bolt","electric_car","electric_meter","electric_moped","electric_rickshaw","electric_scooter","electrical_services","elevation","elevator","email","emergency","emergency_heat","emergency_heat_2","emergency_home","emergency_recording","emergency_share","emergency_share_off","emoji_emotions","emoji_events","emoji_flags","emoji_food_beverage","emoji_language","emoji_nature","emoji_objects","emoji_people","emoji_symbols","emoji_transportation","emoticon","empty_dashboard","enable","encrypted","encrypted_add","encrypted_add_circle","encrypted_minus_circle","encrypted_off","endocrinology","energy","energy_program_saving","energy_program_time_used","energy_savings_leaf","engineering","enhanced_encryption","ent","enterprise","enterprise_off","equal","equalizer","eraser_size_1","eraser_size_2","eraser_size_3","eraser_size_4","eraser_size_5","error","error_circle_rounded","error_med","error_outline","escalator","escalator_warning","euro","euro_symbol","ev_charger","ev_mobiledata_badge","ev_shadow","ev_shadow_add","ev_shadow_minus","ev_station","event","event_available","event_busy","event_list","event_note","event_repeat","event_seat","event_upcoming","exclamation","exercise","exit_to_app","expand","expand_all","expand_circle_down","expand_circle_right","expand_circle_up","expand_content","expand_less","expand_more","expansion_panels","expension_panels","experiment","explicit","explore","explore_nearby","explore_off","explosion","export_notes","exposure","exposure_neg_1","exposure_neg_2","exposure_plus_1","exposure_plus_2","exposure_zero","extension","extension_off","eye_tracking","eyebrow","eyeglasses","eyeglasses_2","eyeglasses_2_sound","eyeglasses_3","face","face_2","face_3","face_4","face_5","face_6","face_down","face_left","face_nod","face_retouching_natural","face_retouching_off","face_right","face_shake","face_unlock","face_up","fact_check","factory","falling","familiar_face_and_zone","family_group","family_history","family_home","family_link","family_restroom","family_star","fan_focus","fan_indirect","farsight_digital","fast_forward","fast_rewind","fastfood","faucet","favorite","favorite_border","fax","feature_search","featured_play_list","featured_seasonal_and_gifts","featured_video","feed","feedback","female","femur","femur_alt","fence","fertile","festival","fiber_dvr","fiber_manual_record","fiber_new","fiber_pin","fiber_smart_record","file_copy","file_copy_off","file_download","file_download_done","file_download_off","file_export","file_json","file_map","file_map_stack","file_open","file_png","file_present","file_save","file_save_off","file_upload","file_upload_off","files","filter","filter_1","filter_2","filter_3","filter_4","filter_5","filter_6","filter_7","filter_8","filter_9","filter_9_plus","filter_alt","filter_alt_off","filter_arrow_right","filter_b_and_w","filter_center_focus","filter_drama","filter_frames","filter_hdr","filter_list","filter_list_alt","filter_list_off","filter_none","filter_retrolux","filter_tilt_shift","filter_vintage","finance","finance_chip","finance_mode","find_in_page","find_replace","fingerprint","fingerprint_off","fire_check","fire_extinguisher","fire_hydrant","fire_truck","fireplace","first_page","fit_page","fit_page_height","fit_page_width","fit_screen","fit_width","fitness_center","fitness_tracker","fitness_trackers","flag","flag_2","flag_check","flag_circle","flag_filled","flaky","flare","flash_auto","flash_off","flash_on","flashlight_off","flashlight_on","flatware","flex_direction","flex_no_wrap","flex_wrap","flight","flight_class","flight_land","flight_takeoff","flights_and_hotels","flightsmode","flip","flip_camera_android","flip_camera_ios","flip_to_back","flip_to_front","float_landscape_2","float_portrait_2","flood","floor","floor_lamp","flourescent","flowchart","flowsheet","fluid","fluid_balance","fluid_med","fluorescent","flutter","flutter_dash","flyover","fmd_bad","fmd_good","foggy","folded_hands","folder","folder_check","folder_check_2","folder_code","folder_copy","folder_data","folder_delete","folder_eye","folder_info","folder_limited","folder_managed","folder_match","folder_off","folder_open","folder_shared","folder_special","folder_supervised","folder_zip","follow_the_signs","font_download","font_download_off","food_bank","foot_bones","footprint","for_you","forest","fork_chart","fork_left","fork_right","fork_spoon","forklift","format_align_center","format_align_justify","format_align_left","format_align_right","format_bold","format_clear","format_color_fill","format_color_reset","format_color_text","format_h1","format_h2","format_h3","format_h4","format_h5","format_h6","format_image_back","format_image_break_left","format_image_break_right","format_image_front","format_image_inline_left","format_image_inline_right","format_image_left","format_image_right","format_indent_decrease","format_indent_increase","format_ink_highlighter","format_italic","format_letter_spacing","format_letter_spacing_2","format_letter_spacing_standard","format_letter_spacing_wide","format_letter_spacing_wider","format_line_spacing","format_list_bulleted","format_list_bulleted_add","format_list_numbered","format_list_numbered_rtl","format_overline","format_paint","format_paint_off","format_paragraph","format_quote","format_quote_off","format_shapes","format_size","format_strikethrough","format_text_clip","format_text_overflow","format_text_wrap","format_textdirection_l_to_r","format_textdirection_r_to_l","format_textdirection_vertical","format_underlined","format_underlined_squiggle","forms_add_on","forms_apps_script","fort","forum","forward","forward_10","forward_30","forward_5","forward_circle","forward_media","forward_to_inbox","foundation","fragrance","frame_bug","frame_exclamation","frame_inspect","frame_person","frame_person_mic","frame_person_off","frame_reload","frame_source","free_breakfast","free_cancellation","front_hand","front_loader","full_coverage","full_hd","full_stacked_bar_chart","fullscreen","fullscreen_exit","fullscreen_portrait","function","functions","funicular","g_mobiledata","g_mobiledata_badge","g_translate","gallery_thumbnail","game_bumper_left","game_bumper_right","game_button_l","game_button_l1","game_button_l2","game_button_r","game_button_r1","game_button_r2","game_button_zl","game_button_zr","game_stick_l3","game_stick_left","game_stick_r3","game_stick_right","game_trigger_left","game_trigger_right","gamepad","gamepad_circle_down","gamepad_circle_left","gamepad_circle_right","gamepad_circle_up","gamepad_down","gamepad_left","gamepad_right","gamepad_up","games","garage","garage_check","garage_door","garage_door_open","garage_home","garage_money","garden_cart","gas_meter","gastroenterology","gate","gavel","general_device","generating_tokens","genetics","genres","gesture","gesture_select","get_app","gif","gif_2","gif_box","girl","gite","glass_cup","globe","globe_2_cancel","globe_2_question","globe_asia","globe_book","globe_clock","globe_location_pin","globe_uk","glucose","glyphs","go_to_line","golf_course","gondola_lift","google_home_devices","google_plus_reshare","google_tv_remote","google_wifi","gpp_bad","gpp_good","gpp_maybe","gps_fixed","gps_not_fixed","gps_off","grade","gradient","grading","grain","graph_1","graph_2","graph_3","graph_4","graph_5","graph_6","graph_7","graph_8","graphic_eq","graphic_eq_off","grass","grid_3x3","grid_3x3_off","grid_4x4","grid_goldenratio","grid_guides","grid_layout_side","grid_off","grid_on","grid_view","grocery","group","group_add","group_off","group_remove","group_search","group_work","grouped_bar_chart","groups","groups_2","groups_3","guardian","gynecology","h_mobiledata","h_mobiledata_badge","h_plus_mobiledata","h_plus_mobiledata_badge","hail","hallway","hanami_dango","hand_bones","hand_gesture","hand_gesture_off","hand_meal","hand_package","handheld_controller","handshake","handwriting_recognition","handyman","hangout_video","hangout_video_off","hard_disk","hard_drive","hard_drive_2","hardware","hd","hdr_auto","hdr_auto_select","hdr_enhanced_select","hdr_off","hdr_off_select","hdr_on","hdr_on_select","hdr_plus","hdr_plus_off","hdr_strong","hdr_weak","head_mounted_device","headphones","headphones_battery","headset","headset_mic","headset_off","healing","health_and_beauty","health_and_safety","health_cross","health_metrics","heap_snapshot_large","heap_snapshot_multiple","heap_snapshot_thumbnail","hearing","hearing_aid","hearing_aid_disabled","hearing_aid_disabled_left","hearing_aid_left","hearing_disabled","heart_broken","heart_check","heart_minus","heart_plus","heart_smile","heat","heat_pump","heat_pump_balance","height","helicopter","help","help_center","help_clinic","help_outline","hematology","hevc","hexagon","hide","hide_image","hide_source","high_chair","high_density","high_quality","high_quality_off","high_res","highlight","highlight_alt","highlight_keyboard_focus","highlight_mouse_cursor","highlight_off","highlight_text_cursor","highlighter_size_1","highlighter_size_2","highlighter_size_3","highlighter_size_4","highlighter_size_5","hiking","history","history_2","history_edu","history_off","history_toggle_off","hive","hls","hls_off","holiday_village","home","home_and_garden","home_app_logo","home_filled","home_health","home_improvement_and_tools","home_iot_device","home_max","home_max_dots","home_mini","home_pin","home_repair_service","home_speaker","home_storage","home_storage_gear","home_work","horizontal_align_center","horizontal_align_left","horizontal_align_right","horizontal_distribute","horizontal_rule","horizontal_split","host","hot_tub","hotel","hotel_class","hourglass","hourglass_arrow_down","hourglass_arrow_up","hourglass_bottom","hourglass_check","hourglass_disabled","hourglass_empty","hourglass_full","hourglass_pause","hourglass_top","house","house_siding","house_with_shield","houseboat","household_supplies","hov","how_to_reg","how_to_vote","hr_resting","html","http","https","hub","humerus","humerus_alt","humidity_high","humidity_indoor","humidity_low","humidity_mid","humidity_percentage","hvac","hvac_max_defrost","ice_skating","icecream","id_card","id_card_2","identity_aware_proxy","identity_platform","ifl","iframe","iframe_off","image","image_arrow_up","image_aspect_ratio","image_inset","image_not_supported","image_search","imagesearch_roller","imagesmode","immunology","import_contacts","import_export","important_devices","in_home_mode","inactive_order","inbox","inbox_customize","inbox_text","inbox_text_asterisk","inbox_text_person","inbox_text_share","incomplete_circle","indeterminate_check_box","indeterminate_question_box","info","info_i","infrared","ink_eraser","ink_eraser_off","ink_highlighter","ink_highlighter_move","ink_highlighter_off","ink_marker","ink_pen","ink_selection","inpatient","input","input_circle","insert_chart","insert_chart_filled","insert_chart_outlined","insert_comment","insert_drive_file","insert_emoticon","insert_invitation","insert_link","insert_page_break","insert_photo","insert_text","insights","install_desktop","install_mobile","instant_mix","integration_instructions","interactive_space","interests","interpreter_mode","inventory","inventory_2","invert_colors","invert_colors_off","ios","ios_share","iron","iso","jamboard_kiosk","japanese_curry","japanese_flag","javascript","jewelry","join","join_full","join_inner","join_left","join_right","joystick","jump_to_element","kanji_alcohol","kayaking","kebab_dining","keep","keep_off","keep_pin","keep_public","kettle","key","key_off","key_vertical","key_visualizer","keyboard","keyboard_alt","keyboard_arrow_down","keyboard_arrow_left","keyboard_arrow_right","keyboard_arrow_up","keyboard_backspace","keyboard_capslock","keyboard_capslock_badge","keyboard_command_key","keyboard_control_key","keyboard_double_arrow_down","keyboard_double_arrow_left","keyboard_double_arrow_right","keyboard_double_arrow_up","keyboard_external_input","keyboard_full","keyboard_hide","keyboard_keys","keyboard_lock","keyboard_lock_off","keyboard_off","keyboard_onscreen","keyboard_option_key","keyboard_previous_language","keyboard_return","keyboard_tab","keyboard_tab_rtl","keyboard_voice","kid_star","king_bed","kitchen","kitesurfing","lab_panel","lab_profile","lab_research","label","label_important","label_important_outline","label_off","label_outline","labs","lan","landscape","landscape_2","landscape_2_edit","landscape_2_off","landslide","language","language_chinese_array","language_chinese_cangjie","language_chinese_dayi","language_chinese_pinyin","language_chinese_quick","language_chinese_wubi","language_french","language_gb_english","language_international","language_japanese_kana","language_korean_latin","language_pinyin","language_spanish","language_us","language_us_colemak","language_us_dvorak","laps","laptop","laptop_car","laptop_chromebook","laptop_mac","laptop_windows","lasso_select","last_page","launch","laundry","layers","layers_clear","lda","leaderboard","leak_add","leak_remove","left_click","left_panel_close","left_panel_open","legend_toggle","lens","lens_blur","letter_switch","library_add","library_add_check","library_books","library_music","license","lift_to_talk","light","light_group","light_group_2","light_mode","light_mode_auto","light_off","lightbulb","lightbulb_2","lightbulb_circle","lightbulb_outline","lightning_stand","lightstrip","line_axis","line_curve","line_end","line_end_arrow","line_end_arrow_notch","line_end_circle","line_end_diamond","line_end_square","line_start","line_start_arrow","line_start_arrow_notch","line_start_circle","line_start_diamond","line_start_square","line_style","line_weight","linear_scale","link","link_2","link_off","linked_camera","linked_services","lips","liquor","list","list_2","list_alt","list_alt_add","list_alt_check","list_arrow","lists","live_help","live_tv","living","local_activity","local_airport","local_atm","local_bar","local_cafe","local_car_wash","local_convenience_store","local_dining","local_drink","local_fire_department","local_florist","local_gas_station","local_grocery_store","local_hospital","local_hotel","local_laundry_service","local_library","local_mall","local_movies","local_offer","local_parking","local_pharmacy","local_phone","local_pizza","local_play","local_police","local_post_office","local_printshop","local_see","local_shipping","local_taxi","location_automation","location_away","location_chip","location_city","location_disabled","location_home","location_off","location_on","location_pin","location_searching","locator_tag","lock","lock_clock","lock_open","lock_open_circle","lock_open_right","lock_outline","lock_person","lock_reset","login","logo_dev","logout","looks","looks_3","looks_4","looks_5","looks_6","looks_one","looks_two","loop","loupe","low_density","low_priority","lowercase","loyalty","lte_mobiledata","lte_mobiledata_badge","lte_plus_mobiledata","lte_plus_mobiledata_badge","luggage","lunch_dining","lyrics","macro_auto","macro_off","magic_button","magic_exchange","magic_tether","magnification_large","magnification_small","magnify_docked","magnify_fullscreen","mail","mail_asterisk","mail_lock","mail_off","mail_outline","mail_shield","male","man","man_2","man_3","man_4","manage_accounts","manage_history","manage_search","manga","manufacturing","map","map_pin_heart","map_pin_review","map_search","maps_home_work","maps_ugc","margin","mark_as_unread","mark_chat_read","mark_chat_unread","mark_email_read","mark_email_unread","mark_unread_chat_alt","markdown","markdown_copy","markdown_paste","markunread","markunread_mailbox","masked_transitions","masked_transitions_add","masks","massage","match_case","match_case_off","match_word","matter","maximize","meal_dinner","meal_lunch","measuring_tape","media_bluetooth_off","media_bluetooth_on","media_link","media_output","media_output_off","mediation","medical_information","medical_mask","medical_services","medication","medication_liquid","meeting_room","memory","memory_alt","menstrual_health","menu","menu_book","menu_book_2","menu_open","merge","merge_type","message","metabolism","metro","mfg_nest_yale_lock","mic","mic_alert","mic_double","mic_external_off","mic_external_on","mic_gear","mic_none","mic_off","microbiology","microwave","microwave_gen","military_tech","mimo","mimo_disconnect","mindfulness","minimize","minor_crash","mintmark","missed_video_call","missed_video_call_filled","missing_controller","mist","mitre","mixture_med","mms","mobile","mobile_2","mobile_3","mobile_alert","mobile_arrow_down","mobile_arrow_right","mobile_arrow_up_right","mobile_block","mobile_camera","mobile_camera_front","mobile_camera_rear","mobile_cancel","mobile_cast","mobile_charge","mobile_chat","mobile_check","mobile_code","mobile_dock","mobile_dots","mobile_friendly","mobile_gear","mobile_hand","mobile_hand_left","mobile_hand_left_off","mobile_hand_off","mobile_info","mobile_landscape","mobile_layout","mobile_lock_landscape","mobile_lock_portrait","mobile_loupe","mobile_menu","mobile_off","mobile_question","mobile_rotate","mobile_rotate_lock","mobile_screen_share","mobile_screensaver","mobile_sensor_hi","mobile_sensor_lo","mobile_share","mobile_share_stack","mobile_sound","mobile_sound_2","mobile_sound_off","mobile_speaker","mobile_text","mobile_text_2","mobile_theft","mobile_ticket","mobile_unlock","mobile_vibrate","mobile_wrench","mobiledata_arrows","mobiledata_off","mode","mode_comment","mode_cool","mode_cool_off","mode_dual","mode_edit","mode_edit_outline","mode_fan","mode_fan_2","mode_fan_off","mode_heat","mode_heat_cool","mode_heat_off","mode_night","mode_of_travel","mode_off_on","mode_standby","model_training","modeling","monetization_on","money","money_bag","money_off","money_off_csred","money_range","monitor","monitor_heart","monitor_weight","monitor_weight_gain","monitor_weight_loss","monitoring","monochrome_photos","monorail","mood","mood_bad","mood_heart","moon_stars","mop","moped","moped_package","more","more_down","more_horiz","more_time","more_up","more_vert","mosque","motion_blur","motion_mode","motion_photos_auto","motion_photos_off","motion_photos_on","motion_photos_pause","motion_photos_paused","motion_play","motion_sensor_active","motion_sensor_alert","motion_sensor_idle","motion_sensor_urgent","motorcycle","mountain_flag","mountain_steam","mouse","mouse_lock","mouse_lock_off","move","move_down","move_group","move_item","move_location","move_selection_down","move_selection_left","move_selection_right","move_selection_up","move_to_inbox","move_up","moved_location","movie","movie_creation","movie_edit","movie_edit_off","movie_filter","movie_info","movie_off","movie_speaker","moving","moving_beds","moving_ministry","mp","multicooker","multiline_chart","multimodal_hand_eye","multiple_airports","multiple_stop","museum","music_cast","music_history","music_note","music_note_2","music_note_add","music_off","music_video","my_location","mystery","nat","nature","nature_people","navigate_before","navigate_next","navigation","near_me","near_me_disabled","nearby","nearby_error","nearby_off","nephrology","nest_audio","nest_cam_floodlight","nest_cam_indoor","nest_cam_iq","nest_cam_iq_outdoor","nest_cam_magnet_mount","nest_cam_outdoor","nest_cam_stand","nest_cam_wall_mount","nest_cam_wired_stand","nest_clock_farsight_analog","nest_clock_farsight_digital","nest_connect","nest_detect","nest_display","nest_display_max","nest_doorbell_visitor","nest_eco_leaf","nest_farsight_cool","nest_farsight_dual","nest_farsight_eco","nest_farsight_heat","nest_farsight_seasonal","nest_farsight_weather","nest_found_savings","nest_gale_wifi","nest_heat_link_e","nest_heat_link_gen_3","nest_hello_doorbell","nest_locator_tag","nest_mini","nest_multi_room","nest_protect","nest_remote","nest_remote_comfort_sensor","nest_secure_alarm","nest_sunblock","nest_tag","nest_thermostat","nest_thermostat_e_eu","nest_thermostat_gen_3","nest_thermostat_sensor","nest_thermostat_sensor_eu","nest_thermostat_zirconium_eu","nest_true_radiant","nest_wake_on_approach","nest_wake_on_press","nest_wifi_gale","nest_wifi_mistral","nest_wifi_point","nest_wifi_point_vento","nest_wifi_pro","nest_wifi_pro_2","nest_wifi_router","network_cell","network_check","network_intel_node","network_intelligence","network_intelligence_history","network_intelligence_update","network_locked","network_manage","network_node","network_ping","network_wifi","network_wifi_1_bar","network_wifi_1_bar_locked","network_wifi_2_bar","network_wifi_2_bar_locked","network_wifi_3_bar","network_wifi_3_bar_locked","network_wifi_locked","neurology","new_label","new_releases","new_window","news","newsmode","newspaper","newsstand","next_plan","next_week","nfc","nfc_off","night_shelter","night_sight_auto","night_sight_auto_off","night_sight_max","nightlife","nightlight","nightlight_round","nights_stay","no_accounts","no_adult_content","no_backpack","no_crash","no_drinks","no_encryption","no_encryption_gmailerrorred","no_flash","no_food","no_luggage","no_meals","no_meeting_room","no_photography","no_sim","no_sound","no_stroller","no_transfer","noise_aware","noise_control_off","noise_control_on","nordic_walking","north","north_east","north_west","not_accessible","not_accessible_forward","not_interested","not_listed_location","not_started","note","note_add","note_alt","note_stack","note_stack_add","notes","notification_add","notification_audio","notification_audio_off","notification_important","notification_multiple","notification_settings","notification_sound","notifications","notifications_active","notifications_none","notifications_off","notifications_paused","notifications_unread","numbers","nutrition","ods","odt","offline_bolt","offline_pin","offline_pin_off","offline_share","oil_barrel","okonomiyaki","on_device_training","on_hub_device","oncology","ondemand_video","online_prediction","onsen","opacity","open_in_browser","open_in_full","open_in_new","open_in_new_down","open_in_new_off","open_in_phone","open_jam","open_run","open_with","ophthalmology","oral_disease","orbit","order_approve","order_play","orders","orthopedics","other_admission","other_houses","outbound","outbox","outbox_alt","outdoor_garden","outdoor_grill","outgoing_mail","outlet","outlined_flag","outpatient","outpatient_med","output","output_circle","oven","oven_gen","overview","overview_key","owl","oxygen_saturation","p2p","pace","pacemaker","package","package_2","padding","padel","page_control","page_footer","page_header","page_info","page_menu_ios","pageless","pages","pageview","paid","palette","pallet","pan_tool","pan_tool_alt","pan_zoom","panorama","panorama_fish_eye","panorama_horizontal","panorama_photosphere","panorama_vertical","panorama_wide_angle","paragliding","parent_child_dining","park","parking_meter","parking_sign","parking_valet","partly_cloudy_day","partly_cloudy_night","partner_exchange","partner_heart","partner_reports","party_mode","passkey","passport","password","password_2","password_2_off","patient_list","pattern","pause","pause_circle","pause_circle_filled","pause_circle_outline","pause_presentation","payment","payment_arrow_down","payment_card","payments","pedal_bike","pediatrics","pen_size_1","pen_size_2","pen_size_3","pen_size_4","pen_size_5","pending","pending_actions","pentagon","people","people_alt","people_outline","percent","percent_discount","performance_max","pergola","perm_camera_mic","perm_contact_calendar","perm_data_setting","perm_device_information","perm_identity","perm_media","perm_phone_msg","perm_scan_wifi","person","person_2","person_3","person_4","person_add","person_add_alt","person_add_disabled","person_alert","person_apron","person_book","person_cancel","person_celebrate","person_check","person_edit","person_filled","person_heart","person_off","person_outline","person_pin","person_pin_circle","person_play","person_raised_hand","person_remove","person_search","person_shield","person_text","personal_bag","personal_bag_off","personal_bag_question","personal_injury","personal_places","personal_video","pest_control","pest_control_rodent","pet_supplies","pets","phishing","phone","phone_alt","phone_android","phone_bluetooth_speaker","phone_callback","phone_cancel","phone_disabled","phone_enabled","phone_forwarded","phone_in_talk","phone_iphone","phone_locked","phone_missed","phone_paused","phonelink","phonelink_erase","phonelink_lock","phonelink_off","phonelink_ring","phonelink_ring_off","phonelink_setup","photo","photo_album","photo_auto_merge","photo_camera","photo_camera_back","photo_camera_front","photo_filter","photo_frame","photo_library","photo_prints","photo_size_select_actual","photo_size_select_large","photo_size_select_small","php","physical_therapy","piano","piano_off","pickleball","picture_as_pdf","picture_in_picture","picture_in_picture_alt","picture_in_picture_center","picture_in_picture_large","picture_in_picture_medium","picture_in_picture_mobile","picture_in_picture_off","picture_in_picture_small","pie_chart","pie_chart_filled","pie_chart_outline","pie_chart_outlined","pill","pill_off","pin","pin_drop","pin_end","pin_history","pin_invoke","pin_road","pin_road_2","pinboard","pinboard_unread","pinch","pinch_zoom_in","pinch_zoom_out","pip","pip_exit","pivot_table_chart","place","place_item","plagiarism","plane_contrails","planet","planner_banner_ad_pt","planner_review","play_arrow","play_circle","play_disabled","play_for_work","play_lesson","play_music","play_pause","play_shapes","playground","playground_2","playing_cards","playlist_add","playlist_add_check","playlist_add_check_circle","playlist_add_circle","playlist_play","playlist_remove","plug_connect","plumbing","plus_one","podcasts","podiatry","podium","point_of_sale","point_scan","poker_chip","policy","policy_alert","poll","polyline","polymer","pool","portable_wifi_off","portrait","position_bottom_left","position_bottom_right","position_top_right","post","post_add","potted_plant","power","power_input","power_off","power_rounded","power_settings_circle","power_settings_new","prayer_times","precision_manufacturing","pregnancy","pregnant_woman","preliminary","prescriptions","present_to_all","preview","preview_off","price_change","price_check","print","print_add","print_connect","print_disabled","print_error","print_lock","priority","priority_high","privacy","privacy_tip","private_connectivity","problem","procedure","process_chart","production_quantity_limits","productivity","progress_activity","prompt_suggestion","propane","propane_tank","psychiatry","psychology","psychology_alt","public","public_off","publish","published_with_changes","pulmonology","pulse_alert","punch_clock","push_pin","qr_code","qr_code_2","qr_code_2_add","qr_code_scanner","query_builder","query_stats","question_answer","question_exchange","question_mark","queue","queue_music","queue_play_next","quick_phrases","quick_reference","quick_reference_all","quick_reorder","quickreply","quiet_time","quiet_time_active","quiz","r_mobiledata","radar","radio","radio_button_checked","radio_button_partial","radio_button_unchecked","radiology","railway_alert","railway_alert_2","rainy","rainy_heavy","rainy_light","rainy_snow","ramen_dining","ramp_left","ramp_right","range_hood","rate_review","rate_review_rtl","raven","raw_off","raw_on","read_more","readiness_score","real_estate_agent","rear_camera","rebase","rebase_edit","receipt","receipt_long","receipt_long_off","recent_actors","recent_patient","recenter","recommend","record_voice_over","rectangle","rectangle_add","recycling","redeem","redo","reduce_capacity","refresh","regular_expression","relax","release_alert","remember_me","reminder","reminders_alt","remote_gen","remove","remove_circle","remove_circle_outline","remove_done","remove_from_queue","remove_moderator","remove_red_eye","remove_road","remove_selection","remove_shopping_cart","reopen_window","reorder","repartition","repeat","repeat_on","repeat_one","repeat_one_on","replace_audio","replace_image","replace_video","replay","replay_10","replay_30","replay_5","replay_circle_filled","reply","reply_all","report","report_gmailerrorred","report_off","report_problem","request_page","request_quote","reset_brightness","reset_colors","reset_exposure","reset_focus","reset_image","reset_iso","reset_settings","reset_shadow","reset_shutter_speed","reset_tv","reset_white_balance","reset_wrench","resize","resize_window","respiratory_rate","responsive_layout","rest_area","restart_alt","restaurant","restaurant_menu","restore","restore_from_trash","restore_page","resume","reviews","rewarded_ads","rheumatology","rib_cage","rice_bowl","right_click","right_panel_close","right_panel_open","ring_volume","ring_volume_filled","ripples","road","robot","robot_2","rocket","rocket_launch","roller_shades","roller_shades_closed","roller_skating","roofing","room","room_preferences","room_service","rotate_90_degrees_ccw","rotate_90_degrees_cw","rotate_auto","rotate_left","rotate_right","roundabout_left","roundabout_right","rounded_corner","route","router","router_off","routine","rowing","rss_feed","rsvp","rtt","rubric","rule","rule_folder","rule_settings","run_circle","running_with_errors","rv_hookup","safety_check","safety_check_off","safety_divider","sailing","salinity","sanitizer","satellite","satellite_alt","sauna","save","save_alt","save_as","save_clock","saved_search","savings","scale","scan","scan_delete","scanner","scatter_plot","scene","schedule","schedule_send","schema","school","science","science_off","scooter","score","scoreboard","screen_lock_landscape","screen_lock_portrait","screen_lock_rotation","screen_record","screen_rotation","screen_rotation_alt","screen_rotation_up","screen_search_desktop","screen_share","screenshot","screenshot_frame","screenshot_frame_2","screenshot_keyboard","screenshot_monitor","screenshot_region","screenshot_tablet","script","scrollable_header","scuba_diving","sd","sd_card","sd_card_alert","sd_storage","sdk","search","search_activity","search_check","search_check_2","search_gear","search_hands_free","search_insights","search_off","seat_cool_left","seat_cool_right","seat_heat_left","seat_heat_right","seat_read","seat_vent_left","seat_vent_right","seat_window","security","security_key","security_update","security_update_good","security_update_warning","segment","select","select_all","select_check_box","select_to_speak","select_window","select_window_2","select_window_off","self_care","self_improvement","sell","sell_cloud","send","send_and_archive","send_money","send_time_extension","send_to_mobile","sensor_door","sensor_occupied","sensor_window","sensors","sensors_krx","sensors_krx_off","sensors_off","sentiment_calm","sentiment_content","sentiment_dissatisfied","sentiment_excited","sentiment_extremely_dissatisfied","sentiment_frustrated","sentiment_neutral","sentiment_sad","sentiment_satisfied","sentiment_satisfied_alt","sentiment_stressed","sentiment_very_dissatisfied","sentiment_very_satisfied","sentiment_worried","serif","server_person","service_toolbox","set_meal","settings","settings_accessibility","settings_account_box","settings_alert","settings_applications","settings_b_roll","settings_backup_restore","settings_bluetooth","settings_brightness","settings_cell","settings_cinematic_blur","settings_ethernet","settings_heart","settings_input_antenna","settings_input_component","settings_input_composite","settings_input_hdmi","settings_input_svideo","settings_motion_mode","settings_night_sight","settings_overscan","settings_panorama","settings_phone","settings_photo_camera","settings_power","settings_remote","settings_screen","settings_seating","settings_slow_motion","settings_suggest","settings_system_daydream","settings_timelapse","settings_video_camera","settings_voice","settop_component","severe_cold","shades","shades_closed","shadow","shadow_add","shadow_minus","shape_line","shape_recognition","shapes","share","share_eta","share_location","share_off","share_reviews","share_windows","shaved_ice","sheets_rtl","shelf_auto_hide","shelf_position","shelves","shield","shield_card","shield_lock","shield_locked","shield_moon","shield_person","shield_question","shield_radar","shield_toggle","shield_watch","shield_with_heart","shield_with_house","shift","shift_lock","shift_lock_off","shoe_cleats","shop","shop_2","shop_two","shopping_bag","shopping_bag_speed","shopping_basket","shopping_cart","shopping_cart_checkout","shopping_cart_off","shoppingmode","short_stay","short_text","shortcut","show_chart","shower","shuffle","shuffle_on","shutter_speed","shutter_speed_add","shutter_speed_minus","sick","side_navigation","sign_language","sign_language_2","sign_language_off","signal_cellular_0_bar","signal_cellular_1_bar","signal_cellular_2_bar","signal_cellular_3_bar","signal_cellular_4_bar","signal_cellular_add","signal_cellular_alt","signal_cellular_alt_1_bar","signal_cellular_alt_2_bar","signal_cellular_alt_off","signal_cellular_connected_no_internet_0_bar","signal_cellular_connected_no_internet_4_bar","signal_cellular_no_sim","signal_cellular_nodata","signal_cellular_null","signal_cellular_off","signal_cellular_pause","signal_disconnected","signal_wifi_0_bar","signal_wifi_4_bar","signal_wifi_4_bar_lock","signal_wifi_bad","signal_wifi_connected_no_internet_4","signal_wifi_off","signal_wifi_statusbar_4_bar","signal_wifi_statusbar_not_connected","signal_wifi_statusbar_null","signature","signpost","sim_card","sim_card_alert","sim_card_download","sim_card_lock","simulation","single_arrow","single_bed","sip","siren","siren_check","siren_open","siren_question","skateboarding","skeleton","skillet","skillet_cooktop","skip_next","skip_previous","skull","skull_list","slab_serif","sledding","sleep","sleep_score","slide_library","sliders","slideshow","slow_motion_video","smart_button","smart_card_reader","smart_card_reader_off","smart_display","smart_outlet","smart_screen","smart_toy","smartphone","smartphone_camera","smb_share","smoke_free","smoking_rooms","sms","sms_failed","snail","snippet_folder","snooze","snowboarding","snowflake","snowing","snowing_heavy","snowmobile","snowshoeing","soap","soba","social_distance","social_leaderboard","solar_power","solo_dining","sort","sort_by_alpha","sos","sound_detection_dog_barking","sound_detection_glass_break","sound_detection_loud_sound","sound_sampler","soundbar","soup_kitchen","source","source_environment","source_notes","south","south_america","south_east","south_west","spa","space_bar","space_dashboard","space_dashboard_2","spatial_audio","spatial_audio_off","spatial_speaker","spatial_tracking","speaker","speaker_2","speaker_group","speaker_notes","speaker_notes_off","speaker_phone","special_character","specific_gravity","speech_to_text","speech_to_text_2","speed","speed_0_25","speed_0_2x","speed_0_5","speed_0_5x","speed_0_75","speed_0_7x","speed_1_2","speed_1_25","speed_1_2x","speed_1_5","speed_1_5x","speed_1_75","speed_1_7x","speed_2","speed_2x","speed_3","speed_4","speed_camera","spellcheck","split_scene","split_scene_2","split_scene_down","split_scene_left","split_scene_right","split_scene_up","splitscreen","splitscreen_add","splitscreen_bottom","splitscreen_landscape","splitscreen_landscape_add","splitscreen_left","splitscreen_portrait","splitscreen_right","splitscreen_top","splitscreen_vertical_add","spo2","spoke","sports","sports_and_outdoors","sports_bar","sports_baseball","sports_basketball","sports_cricket","sports_esports","sports_football","sports_golf","sports_gymnastics","sports_handball","sports_hockey","sports_kabaddi","sports_martial_arts","sports_mma","sports_motorsports","sports_rugby","sports_score","sports_soccer","sports_tennis","sports_volleyball","sprinkler","sprint","sql","square","square_circle","square_dot","square_foot","ssid_chart","stack","stack_group","stack_hexagon","stack_off","stack_star","stacked_bar_chart","stacked_email","stacked_inbox","stacked_line_chart","stacks","stadia_controller","stadium","stairs","stairs_2","star","star_border","star_border_purple500","star_half","star_outline","star_purple500","star_rate","star_rate_half","star_shine","stars","stars_2","start","stat_0","stat_1","stat_2","stat_3","stat_minus_1","stat_minus_2","stat_minus_3","stay_current_landscape","stay_current_portrait","stay_primary_landscape","stay_primary_portrait","steering_wheel_cool","steering_wheel_heat","step","step_into","step_out","step_over","steppers","steps","stethoscope","stethoscope_arrow","stethoscope_check","sticker","sticker_add","sticky_note","sticky_note_2","stock_media","stockpot","stop","stop_circle","stop_screen_share","storage","store","store_mall_directory","storefront","storm","straight","straighten","strategy","stream","stream_apps","streetview","stress_management","strikethrough_s","stroke_full","stroke_partial","stroller","style","styler","stylus","stylus_brush","stylus_fountain_pen","stylus_highlighter","stylus_laser_pointer","stylus_note","stylus_pen","stylus_pencil","subdirectory_arrow_left","subdirectory_arrow_right","subheader","subject","subscript","subscriptions","subtitles","subtitles_gear","subtitles_off","subway","subway_walk","subwoofer","summarize","sunny","sunny_snowing","superscript","supervised_user_circle","supervised_user_circle_off","supervisor_account","support","support_agent","surfing","surgical","surround_sound","swap_calls","swap_driving_apps","swap_driving_apps_wheel","swap_horiz","swap_horizontal_circle","swap_vert","swap_vertical_circle","sweep","swipe","swipe_down","swipe_down_alt","swipe_left","swipe_left_2","swipe_left_alt","swipe_right","swipe_right_2","swipe_right_alt","swipe_up","swipe_up_alt","swipe_vertical","switch","switch_access","switch_access_2","switch_access_3","switch_access_shortcut","switch_access_shortcut_add","switch_account","switch_camera","switch_left","switch_off","switch_right","switch_video","switches","sword_rose","swords","symptoms","synagogue","sync","sync_alt","sync_arrow_down","sync_arrow_up","sync_desktop","sync_disabled","sync_lock","sync_problem","sync_saved_locally","sync_saved_locally_off","syringe","system_security_update","system_security_update_good","system_security_update_warning","system_update","system_update_alt","tab","tab_close","tab_close_inactive","tab_close_right","tab_duplicate","tab_group","tab_inactive","tab_move","tab_new_right","tab_recent","tab_search","tab_unselected","table","table_bar","table_chart","table_chart_view","table_convert","table_edit","table_eye","table_lamp","table_large","table_restaurant","table_rows","table_rows_narrow","table_sign","table_view","tablet","tablet_android","tablet_camera","tablet_mac","tabs","tactic","tag","tag_faces","takeout_dining","takeout_dining_2","tamper_detection_off","tamper_detection_on","tap_and_play","tapas","target","task","task_alt","tatami_seat","taunt","taxi_alert","team_dashboard","temp_preferences_custom","temp_preferences_eco","temple_buddhist","temple_hindu","tenancy","terminal","terminal_2","terminal_add","terrain","text_ad","text_ad_off","text_compare","text_decrease","text_fields","text_fields_alt","text_format","text_increase","text_rotate_up","text_rotate_vertical","text_rotation_angledown","text_rotation_angleup","text_rotation_down","text_rotation_none","text_select_end","text_select_jump_to_beginning","text_select_jump_to_end","text_select_move_back_character","text_select_move_back_word","text_select_move_down","text_select_move_forward_character","text_select_move_forward_word","text_select_move_up","text_select_start","text_snippet","text_to_speech","text_up","textsms","texture","texture_add","texture_minus","theater_comedy","theaters","thermometer","thermometer_add","thermometer_alert","thermometer_gain","thermometer_loss","thermometer_minus","thermostat","thermostat_arrow_down","thermostat_arrow_up","thermostat_auto","thermostat_carbon","things_to_do","thread_unread","threat_intelligence","thumb_down","thumb_down_alt","thumb_down_filled","thumb_down_off","thumb_down_off_alt","thumb_up","thumb_up_alt","thumb_up_filled","thumb_up_off","thumb_up_off_alt","thumbnail_bar","thumbs_up_double","thumbs_up_down","thunderstorm","tibia","tibia_alt","tile_large","tile_medium","tile_small","tilt_arrow_down","tilt_arrow_up","time_auto","time_to_leave","timelapse","timeline","timer","timer_1","timer_10","timer_10_alt_1","timer_10_select","timer_2","timer_3","timer_3_alt_1","timer_3_select","timer_5","timer_5_shutter","timer_arrow_down","timer_arrow_up","timer_off","timer_pause","timer_play","tips_and_updates","tire_repair","title","titlecase","toast","toc","today","toggle_off","toggle_on","token","toll","tonality","tonality_2","toolbar","tools_flat_head","tools_installation_kit","tools_ladder","tools_level","tools_phillips","tools_pliers_wire_stripper","tools_power_drill","tools_wrench","tooltip","tooltip_2","top_panel_close","top_panel_open","topic","tornado","total_dissolved_solids","touch_app","touch_double","touch_double_2","touch_long","touch_triple","touchpad_mouse","touchpad_mouse_off","tour","toys","toys_and_games","toys_fan","track_changes","trackpad_input","trackpad_input_2","trackpad_input_3","traffic","traffic_jam","trail_length","trail_length_medium","trail_length_short","train","tram","transcribe","transfer_within_a_station","transform","transgender","transit_enterexit","transit_ticket","transition_chop","transition_dissolve","transition_fade","transition_push","transition_slide","translate","translate_indic","transportation","travel","travel_explore","travel_luggage_and_bags","trending_down","trending_flat","trending_up","triangle_circle","trip","trip_origin","trolley","trolley_cable_car","trophy","troubleshoot","try","tsunami","tsv","tty","tune","tungsten","turn_left","turn_right","turn_sharp_left","turn_sharp_right","turn_slight_left","turn_slight_right","turned_in","turned_in_not","tv","tv_displays","tv_gen","tv_guide","tv_next","tv_off","tv_options_edit_channels","tv_options_input_settings","tv_remote","tv_signin","tv_with_assistant","two_pager","two_pager_store","two_wheeler","type_specimen","u_turn_left","u_turn_right","udon","ulna_radius","ulna_radius_alt","umbrella","unarchive","undereye","undo","unfold_less","unfold_less_double","unfold_more","unfold_more_double","ungroup","universal_currency","universal_currency_alt","universal_local","unknown_2","unknown_5","unknown_7","unknown_document","unknown_med","unlicense","unpaved_road","unpin","unpublished","unsubscribe","upcoming","update","update_disabled","upgrade","upi_pay","upload","upload_2","upload_file","uppercase","urology","usb","usb_off","user_attributes","vaccines","vacuum","vacuum_2","vacuum_2_on","valve","vape_free","vaping_rooms","variable_add","variable_insert","variable_remove","variables","ventilator","verified","verified_off","verified_user","vertical_align_bottom","vertical_align_center","vertical_align_top","vertical_distribute","vertical_shades","vertical_shades_closed","vertical_split","vibration","video_call","video_camera_back","video_camera_back_add","video_camera_front","video_camera_front_off","video_chat","video_file","video_frame_copy","video_frame_save","video_label","video_library","video_search","video_settings","video_stable","video_template","videocam","videocam_alert","videocam_off","videogame_asset","videogame_asset_off","view_agenda","view_apps","view_array","view_carousel","view_column","view_column_2","view_comfy","view_comfy_alt","view_compact","view_compact_alt","view_cozy","view_day","view_headline","view_in_ar","view_in_ar_new","view_in_ar_off","view_kanban","view_list","view_module","view_object_track","view_quilt","view_real_size","view_sidebar","view_stream","view_timeline","view_week","vignette","vignette_2","villa","visibility","visibility_lock","visibility_off","vital_signs","vitals","vo2_max","voice_chat","voice_chat_off","voice_over_off","voice_selection","voice_selection_off","voicemail","voicemail_2","volcano","volume_down","volume_down_alt","volume_mute","volume_off","volume_up","volunteer_activism","voting_chip","vpn_key","vpn_key_alert","vpn_key_off","vpn_lock","vpn_lock_2","vr180_create2d","vr180_create2d_off","vrpano","walk_bike","wall_art","wall_lamp","wallet","wallpaper","wallpaper_slideshow","wand_shine","wand_stars","ward","warehouse","warning","warning_amber","warning_off","wash","washoku","watch","watch_alert","watch_arrow","watch_arrow_down","watch_button","watch_button_press","watch_check","watch_later","watch_lock","watch_off","watch_screentime","watch_vibration","watch_wake","water","water_bottle","water_bottle_large","water_damage","water_do","water_drop","water_drops","water_ec","water_full","water_heater","water_lock","water_loss","water_lux","water_medium","water_orp","water_ph","water_pump","water_voc","waterfall_chart","waves","waving_hand","wb_auto","wb_cloudy","wb_incandescent","wb_iridescent","wb_shade","wb_sunny","wb_twilight","wb_twilight_2","wc","weather_hail","weather_mix","weather_snowy","web","web_asset","web_asset_off","web_stories","web_traffic","webhook","weekend","weight","west","whatshot","wheat","wheelchair_pickup","where_to_vote","widget_medium","widget_menu","widget_small","widget_width","widgets","width","width_full","width_normal","width_wide","wifi","wifi_1_bar","wifi_2_bar","wifi_add","wifi_calling","wifi_calling_1","wifi_calling_2","wifi_calling_3","wifi_calling_bar_1","wifi_calling_bar_2","wifi_calling_bar_3","wifi_channel","wifi_device","wifi_find","wifi_home","wifi_lock","wifi_notification","wifi_off","wifi_password","wifi_protected_setup","wifi_proxy","wifi_tethering","wifi_tethering_error","wifi_tethering_off","wind_power","window","window_closed","window_open","window_sensor","windshield_defrost_auto","windshield_defrost_front","windshield_defrost_rear","windshield_heat_front","wine_bar","woman","woman_2","work","work_alert","work_history","work_off","work_outline","work_update","workflow","workspace_premium","workspaces","workspaces_outline","wounds_injuries","wrap_text","wrist","wrong_location","wysiwyg","x_circle","y_circle","yakitori","yard","yoshoku","your_trips","youtube_activity","youtube_searched_for","zone_person_alert","zone_person_idle","zone_person_urgent","zoom_in","zoom_in_map","zoom_out","zoom_out_map"];function Jr(){return"./fenix-icons.woff2"}const Wr=Jr(),Gr="fenix-icons",qt=T;function Zr(){let d="";for(const e of Tt)d+=`.fx-icon-${e}::before{content:"${e}"}`;return d}function Dt(){return`@font-face{font-family:'${W}';font-style:normal;font-weight:100 700;font-display:block;src:url('${Wr}') format('woff2');}`+qt+Zr()}let Ce=!1;function Mt(d=typeof document!="undefined"?document:void 0){if(Ce||!d)return;const e=d.createElement("style");e.id=Gr,e.textContent=Dt(),d.head.appendChild(e),Ce=!0}function Qr(){Ce=!1}Mt();const Te=Object.freeze(Object.defineProperty({__proto__:null,FENIX_ICON_BASE_CSS:T,FENIX_ICON_DOC_BASE_CSS:qt,FENIX_ICON_FONT_FAMILY:W,FENIX_ICON_NAMES:Tt,__resetFenixIconsInjection:Qr,buildFenixIconsCss:Dt,isFenixIconName:q,loadFenixIcons:Mt},Symbol.toStringTag,{value:"Module"}))});
|