123456 |
- /*!
- * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
- * v1.0.0-beta.97
- */
- import{c as n}from"./p-96bf42e5.js";import{h as t}from"./p-91755387.js";function e(n){return"checked"in n}const o=new WeakMap,i=new WeakSet;function r(n){const{formEl:t}=n;return!!t&&("requestSubmit"in t?t.requestSubmit():t.submit(),!0)}function s(n){var t;null===(t=n.formEl)||void 0===t||t.reset()}function u(t){const{el:r,value:s}=t,u=n(r,"form");if(!u||function(n,t){const e="calciteInternalFormComponentRegister";let o=!1;return n.addEventListener(e,(n=>{o=n.composedPath().some((n=>i.has(n))),n.stopPropagation()}),{once:!0}),t.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0})),o}(u,r))return;t.formEl=u,t.defaultValue=s,e(t)&&(t.defaultChecked=t.checked);const l=(t.onFormReset||c).bind(t);u.addEventListener("reset",l),o.set(t.el,l),i.add(r)}function c(){e(this)?this.checked=this.defaultChecked:this.value=this.defaultValue}function l(n){const{el:t,formEl:e}=n;if(!e)return;const r=o.get(t);e.removeEventListener("reset",r),o.delete(t),n.formEl=null,i.delete(t)}function a(n,t){n.defaultValue=t}const f=n=>{n.target.dispatchEvent(new CustomEvent("calciteInternalHiddenInputChange",{bubbles:!0}))},m=n=>n.removeEventListener("change",f);function d(n,t,o){var i;const{defaultValue:r,disabled:s,name:u,required:c}=n;t.defaultValue=r,t.disabled=s,t.name=u,t.required=c,t.tabIndex=-1,e(n)?(t.defaultChecked=n.defaultChecked,t.value=n.checked?o||"on":"",s||n.checked||(t.disabled=!0)):t.value=o||"",null===(i=n.syncHiddenFormInput)||void 0===i||i.call(n,t)}const p=({component:n})=>(function(n){const{el:t,formEl:e,name:o,value:i}=n,{ownerDocument:r}=t,s=t.querySelectorAll('input[slot="hidden-form-input"]');if(!e||!o)return void s.forEach((n=>{m(n),n.remove()}));const u=Array.isArray(i)?i:[i],c=[],l=new Set;let a;s.forEach((t=>{const e=u.find((n=>n==t.value));null!=e?(l.add(e),d(n,t,e)):c.push(t)})),u.forEach((t=>{if(l.has(t))return;let e=c.pop();e||(e=r.createElement("input"),e.slot="hidden-form-input"),a||(a=r.createDocumentFragment()),a.append(e),e.addEventListener("change",f),d(n,e,t)})),a&&t.append(a),c.forEach((n=>{m(n),n.remove()}))}(n),t("slot",{name:"hidden-form-input"}));export{p as H,a,u as c,l as d,s as r,r as s}
|