@nysds/nys-fileinput 1.5.3 → 1.7.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/dist/nys-fileinput.js +16 -9
- package/dist/nys-fileinput.js.map +1 -1
- package/package.json +5 -5
package/dist/nys-fileinput.js
CHANGED
|
@@ -744,7 +744,7 @@ const _ = class _ extends D {
|
|
|
744
744
|
const e = (s = this.shadowRoot) == null ? void 0 : s.querySelector("input");
|
|
745
745
|
if (!e) return;
|
|
746
746
|
const t = this.errorMessage || "Please upload a file.";
|
|
747
|
-
this.required && this._selectedFiles.length == 0 ? (this._internals.ariaRequired = "true", this._internals.setValidity({ valueMissing: !0 }, t, e)) : (this._internals.ariaRequired = "false", this._internals.setValidity({}));
|
|
747
|
+
this.required && this._selectedFiles.length == 0 ? (this._internals.ariaRequired = "true", this._internals.setValidity({ valueMissing: !0 }, t, e)) : (this._internals.ariaRequired = "false", this._internals.setValidity({}, "", e));
|
|
748
748
|
}
|
|
749
749
|
_setValidityMessage(e = "") {
|
|
750
750
|
var i, s;
|
|
@@ -775,7 +775,7 @@ const _ = class _ extends D {
|
|
|
775
775
|
const i = this._internals.form;
|
|
776
776
|
i ? Array.from(i.elements).find(
|
|
777
777
|
(o) => typeof o.checkValidity == "function" && !o.checkValidity()
|
|
778
|
-
) === this && t.focus() : t.focus();
|
|
778
|
+
) === this && (t.focus(), t.classList.add("active-focus")) : (t.focus(), t.classList.add("active-focus"));
|
|
779
779
|
}
|
|
780
780
|
}
|
|
781
781
|
/******************** Functions ********************/
|
|
@@ -851,16 +851,23 @@ const _ = class _ extends D {
|
|
|
851
851
|
/******************** Event Handlers ********************/
|
|
852
852
|
// Access the selected files & add new files to the internal list via the hidden <input type="file">
|
|
853
853
|
_handleFileChange(e) {
|
|
854
|
-
const
|
|
854
|
+
const i = e.target.files;
|
|
855
855
|
(i ? Array.from(i) : []).map((r) => {
|
|
856
856
|
this._saveSelectedFiles(r);
|
|
857
|
-
}),
|
|
857
|
+
}), this.requestUpdate(), this._dispatchChangeEvent(), this._handlePostFileSelectionFocus();
|
|
858
858
|
}
|
|
859
859
|
_handleFileRemove(e) {
|
|
860
|
+
var i;
|
|
860
861
|
const t = e.detail.filename;
|
|
861
|
-
this._selectedFiles = this._selectedFiles.filter(
|
|
862
|
-
(
|
|
863
|
-
), this.
|
|
862
|
+
if (this._selectedFiles = this._selectedFiles.filter(
|
|
863
|
+
(s) => s.file.name !== t
|
|
864
|
+
), this._selectedFiles.length === 0) {
|
|
865
|
+
const s = (i = this.shadowRoot) == null ? void 0 : i.querySelector(
|
|
866
|
+
"input"
|
|
867
|
+
);
|
|
868
|
+
s && (s.value = "");
|
|
869
|
+
}
|
|
870
|
+
this._setValue(), this._validate(), this.requestUpdate(), this._dispatchChangeEvent();
|
|
864
871
|
}
|
|
865
872
|
_onDragOver(e) {
|
|
866
873
|
this.disabled || (e.stopPropagation(), e.preventDefault(), this._dragActive || (this._dragActive = !0, this.requestUpdate()));
|
|
@@ -886,7 +893,7 @@ const _ = class _ extends D {
|
|
|
886
893
|
@nys-fileRemove=${this._handleFileRemove}
|
|
887
894
|
>
|
|
888
895
|
<nys-label
|
|
889
|
-
|
|
896
|
+
for=${this.id}
|
|
890
897
|
label=${this.label}
|
|
891
898
|
description=${this.description}
|
|
892
899
|
flag=${this.required ? "required" : this.optional ? "optional" : ""}
|
|
@@ -905,8 +912,8 @@ const _ = class _ extends D {
|
|
|
905
912
|
?disabled=${this.disabled || !this.multiple && this._selectedFiles.length > 0}
|
|
906
913
|
aria-disabled="${this.disabled}"
|
|
907
914
|
aria-hidden="true"
|
|
908
|
-
hidden
|
|
909
915
|
@change=${this._handleFileChange}
|
|
916
|
+
hidden
|
|
910
917
|
/>
|
|
911
918
|
|
|
912
919
|
${this.dropzone ? h`<div
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nys-fileinput.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../src/validateFileHeader.ts","../src/nys-fileinput.styles.ts","../src/nys-fileitem.styles.ts","../src/nys-fileitem.ts","../src/nys-fileinput.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","// The main function for file validation based only on extension and `accept` attribute.\nexport async function validateFileHeader(\n file: File,\n accept: string,\n): Promise<boolean> {\n // 1) If no accept attribute is defined, assume anything is allowed\n if (!accept || accept.trim() === \"\") return true;\n\n // 2) Normalize and parse the accept attribute\n const acceptItems = accept\n .toLowerCase()\n .split(\",\")\n .map((a) => a.trim());\n\n // 3) Get the file extension\n const filename = file.name.toLowerCase();\n const fileExt = filename.includes(\".\") ? filename.split(\".\").pop()! : \"\";\n\n // 4) Check if extension matches any of the accept items\n for (const acceptItem of acceptItems) {\n // Direct extension match (e.g. \".pdf\")\n if (acceptItem.startsWith(\".\") && acceptItem.slice(1) === fileExt) {\n return true;\n }\n\n // Wildcard /* (e.g. \"image/*\") -> match common prefixes\n if (\n acceptItem.endsWith(\"/*\") &&\n file.type.startsWith(acceptItem.slice(0, -1))\n ) {\n return true;\n }\n\n // Exact MIME match\n if (file.type === acceptItem) {\n return true;\n }\n }\n\n // 5) Not matched\n return false;\n}\n","import { css } from \"lit\";\n\nexport default css`\n :host {\n /* Global Fileinput Styles */\n --_nys-fileinput-gap: var(--nys-space-100, 8px);\n\n /* Typography */\n --_nys-fileinput-font-size: var(--nys-font-size-ui-md, 16px);\n --_nys-fileinput-font-weight: var(--nys-font-weight-semibold, 600);\n --_nys-fileinput-line-height: var(--nys-font-lineheight-ui-md, 24px);\n --_nys-fileinput-font-family: var(\n --nys-font-family-ui,\n var(\n --nys-font-family-sans,\n \"Proxima Nova\",\n \"Helvetica Neue\",\n \"Helvetica\",\n \"Arial\",\n sans-serif\n )\n );\n\n /* Dropzone */\n --_nys-fileinput-dropzone-background: var(--nys-color-ink-reverse, #fff);\n --_nys-fileinput-dropzone-radius: var(\n --nys-radius-lg,\n var(--nys-space-100, 8px)\n );\n --_nys-fileinput-dropzone-border: var(--nys-border-width-sm, 1px) dashed\n var(--nys-color-neutral-200, #bec0c1);\n --_nys-fileinput-dropzone-color: var(--nys-color-text-disabled, #bec0c1);\n }\n\n .nys-fileinput {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n gap: var(--_nys-fileinput-gap);\n font-family: var(--_nys-fileinput-font-family);\n font-size: var(--_nys-fileinput-font-size);\n font-weight: var(--_nys-fileinput-font-weight);\n line-height: var(--_nys-fileinput-line-height);\n }\n :host([width=\"lg\"]) .nys-fileinput {\n max-width: var(--nys-form-width-lg, 384px);\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--_nys-fileinput-gap);\n }\n\n /***** Dragzone *****/\n .nys-fileinput__dropzone {\n display: flex;\n padding: var(--nys-space-400, 32px) var(--nys-space-200, 16px);\n justify-content: center;\n align-items: center;\n gap: 12px;\n align-self: stretch;\n border-radius: var(--_nys-fileinput-dropzone-radius);\n outline: var(--_nys-fileinput-dropzone-border);\n background: var(--_nys-fileinput-dropzone-background);\n transition: all 60ms ease-in-out;\n }\n\n .nys-fileinput__dropzone:hover {\n cursor: pointer;\n --_nys-fileinput-dropzone-border: var(--nys-border-width-md, 2px) dashed\n var(--nys-color-neutral-700, #4a4d4f);\n }\n\n .nys-fileinput__dropzone.drag-active {\n --_nys-fileinput-dropzone-border: var(--nys-border-width-md, 2px) solid\n var(--nys-color-theme, #154973);\n --_nys-fileinput-dropzone-background: var(--nys-color-theme-faint, #f7fafd);\n }\n\n .nys-fileinput__dropzone.error {\n --_nys-fileinput-dropzone-border: var(--nys-border-width-md, 1px) dashed\n var(--nys-color-danger, #b52c2c);\n }\n\n .nys-fileinput__dropzone.error:hover {\n --_nys-fileinput-dropzone-border: var(--nys-border-width-sm, 2px) dashed\n var(--nys-color-emergency, #721c1c);\n }\n\n .nys-fileinput__dropzone.disabled {\n cursor: not-allowed;\n --_nys-fileinput-dropzone-border: var(--nys-border-width-sm, 1px) dashed\n var(--nys-color-neutral-300, #a7a9ab);\n --_nys-fileinput-dropzone-background: var(--nys-color-neutral-10, #f6f6f6);\n color: var(--_nys-fileinput-dropzone-color);\n }\n\n progress {\n display: flex;\n width: 100%;\n height: 6px;\n border-radius: var(--nys-radius-round, 1776px);\n background: var(--_nys-fileinput-progress-background);\n overflow: hidden;\n appearance: none;\n border: none;\n }\n progress::-moz-progress-bar {\n background: var(--_nys-fileinput-progress-background);\n }\n progress::-webkit-progress-value {\n background: var(--_nys-fileinput-progress-background);\n }\n progress::-webkit-progress-bar {\n background: var(--_nys-fileinput-progress-background);\n }\n`;\n","import { css } from \"lit\";\n\nexport default css`\n :host {\n /* Global fileitem Styles */\n --_nys-fileitem-items-radius: var(--nys-radius-md, 4px);\n --_nys-fileitem-items-padding: var(--nys-space-100, 8px)\n var(--nys-space-200, 16px);\n --_nys-fileitem-items-background: var(--nys-color-ink-reverse, #fff);\n --_nys-fileitem-items-border: var(--nys-border-width-sm, 1px) solid\n var(--nys-color-neutral-100, #d0d0ce);\n --_nys-fileitem-error-color: var(--nys-color-danger, #b52c2c);\n\n /* Typography */\n --_nys-fileitem-font-family: var(\n --nys-font-family-ui,\n var(\n --nys-font-family-sans,\n \"Proxima Nova\",\n \"Helvetica Neue\",\n \"Helvetica\",\n \"Arial\",\n sans-serif\n )\n );\n --_nys-fileitem-font-size: var(--nys-font-size-ui-md, 16px);\n --_nys-fileitem-font-weight-400: var(--nys-font-weight-regular, 400);\n --_nys-fileitem-line-height: var(--nys-font-lineheight-ui-md, 24px);\n --_nys-fileitem-letterspacing: var(--nys-font-letterspacing-ui-md, 0.044px);\n\n /* Progress Bar */\n --_nys-fileitem-progress-background: var(--nys-color-neutral-50, #ededed);\n --_nys-fileitem-progress-fill-background: var(--nys-color-info, #004dd1);\n }\n\n /***** File List Item *****/\n .file-item {\n position: relative;\n border-radius: var(--_nys-fileitem-items-radius);\n border: var(--_nys-fileitem-items-border);\n background: var(--_nys-fileitem-items-background);\n }\n\n .file-item.error {\n --_nys-fileitem-items-border: var(--nys-border-width-sm, 1px) solid\n var(--nys-color-danger, #b52c2c);\n }\n\n .file-item__main {\n display: flex;\n justify-items: center;\n align-items: center;\n gap: var(--_nys-fileinput-gap);\n padding: var(--_nys-fileitem-items-padding);\n height: 56px;\n box-sizing: border-box;\n }\n\n .file-item__info {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n font-family: var(--_nys-fileitem-font-family);\n font-size: var(--_nys-fileitem-font-size);\n font-style: normal;\n font-weight: var(--_nys-fileitem-font-weight-400);\n line-height: var(--_nys-fileitem-line-height);\n letter-spacing: var(--_nys-fileitem-letterspacing);\n }\n\n .file-item__info-name {\n display: flex;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n align-items: center;\n }\n\n .file-item__info-name-start {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-shrink: 1;\n min-width: 0;\n }\n\n .file-item p {\n margin: 0;\n }\n\n .file-item__error {\n color: var(--_nys-fileitem-error-color);\n text-overflow: ellipsis;\n font-weight: 700;\n }\n\n /**** Progress Bar ****/\n progress {\n position: absolute;\n bottom: 0;\n display: flex;\n width: 100%;\n height: 6px;\n border-radius: var(--nys-radius-round, 1776px);\n background: var(--_nys-fileitem-progress-fill-background);\n overflow: hidden;\n appearance: none;\n }\n /* Track */\n progress::-moz-progress-bar {\n background: var(--_nys-fileitem-progress-background);\n }\n /* Filled value (the blue bar) */\n progress::-webkit-progress-value {\n background: var(--_nys-fileitem-progress-fill-background);\n }\n /* Firefox */\n progress::-webkit-progress-bar {\n background: var(--_nys-fileitem-progress-background);\n }\n\n /**** Icon ****/\n .file-icon[name=\"progress_activity\"] {\n animation: spin 1s linear infinite;\n }\n\n .file-icon[name=\"error\"] {\n color: var(--_nys-fileitem-error-color);\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport styles from \"./nys-fileitem.styles\";\n\nexport class NysFileItem extends LitElement {\n @property({ type: String }) filename = \"\";\n @property({ type: String }) status:\n | \"pending\"\n | \"processing\"\n | \"done\"\n | \"error\" = \"pending\";\n @property({ type: Number }) progress = 0;\n @property({ type: String }) errorMessage = \"\";\n\n static styles = styles;\n\n private _handleRemove() {\n this.dispatchEvent(\n new CustomEvent(\"nys-fileRemove\", {\n detail: { filename: this.filename },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private splitFilename(filename: string) {\n const lastDotIndex = filename.lastIndexOf(\".\");\n const extension = lastDotIndex !== -1 ? filename.slice(lastDotIndex) : \"\"; // e.g. \".pdf\"\n const name =\n lastDotIndex !== -1 ? filename.slice(0, lastDotIndex) : filename;\n\n const startPart = name.slice(0, name.length - 3);\n const endPart = name.slice(-3);\n\n return { startPart, endPart, extension };\n }\n\n render() {\n const { startPart, endPart, extension } = this.splitFilename(this.filename);\n\n return html`\n <div\n class=\"file-item ${this.status}\"\n aria-busy=${this.status === \"processing\" ? \"true\" : \"false\"}\n aria-label=\"You have selected ${this.filename}\"\n >\n <div class=\"file-item__main\" role=\"group\">\n <nys-icon\n class=\"file-icon\"\n name=${this.status === \"processing\"\n ? \"progress_activity\"\n : this.status === \"error\"\n ? \"error\"\n : \"attach_file\"}\n size=\"2xl\"\n ></nys-icon>\n <div class=\"file-item__info\">\n <div class=\"file-item__info-name\">\n <span class=\"file-item__info-name-start\">${startPart}</span>\n <span class=\"file-item__info-name-end\"\n >${endPart}${extension}</span\n >\n </div>\n ${this.errorMessage\n ? html`<p\n class=\"file-item__error\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-invalid=\"true\"\n aria-errormessage=${this.errorMessage}\n id=\"${this.filename}-error\"\n >\n ${this.errorMessage}\n </p>`\n : null}\n </div>\n <nys-button\n circle\n icon=\"close\"\n ariaLabel=\"close button\"\n size=\"sm\"\n variant=\"ghost\"\n .onClick=${() => this._handleRemove()}\n ariaLabel=\"Remove file: ${this.filename}\"\n ></nys-button>\n </div>\n ${this.status === \"processing\"\n ? html`<div\n class=\"file-item__progress-container\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=\"${this.progress}\"\n aria-label=\"Upload progress for ${this.filename}\"\n >\n <progress value=${this.progress} max=\"100\"></progress>\n </div>`\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"nys-fileitem\", NysFileItem);\n","import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { validateFileHeader } from \"./validateFileHeader\";\nimport styles from \"./nys-fileinput.styles\";\nimport \"./nys-fileitem\";\n\nlet fileinputIdCounter = 0; // Counter for generating unique IDs\n\ninterface FileWithProgress {\n file: File;\n progress: number;\n status: \"pending\" | \"processing\" | \"done\" | \"error\";\n errorMsg?: string;\n}\n\nexport class NysFileinput extends LitElement {\n @property({ type: String }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean }) multiple = false;\n @property({ type: String }) accept = \"\"; // e.g. \"image/*,.pdf\"\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean }) dropzone = false;\n @property({ type: String, reflect: true }) width: \"lg\" | \"full\" = \"full\";\n\n static styles = styles;\n\n private _selectedFiles: FileWithProgress[] = [];\n private _dragActive = false;\n private get _isDropDisabled(): boolean {\n return this.disabled || (!this.multiple && this._selectedFiles.length > 0);\n }\n\n private get _buttonAriaLabel(): string {\n if (this._selectedFiles.length === 0) {\n return this.multiple ? \"Choose files: \" : \"Choose file: \";\n }\n\n return this.multiple ? \"Change files: \" : \"Change file: \";\n }\n\n private get _buttonAriaDescription(): string {\n if (this._selectedFiles.length === 0)\n return `${this.label + \" \" + this.description}`;\n\n const hasInvalidFiles = this._selectedFiles.some(\n (file) => file.status === \"error\",\n );\n\n let base = \"\";\n\n if (this._selectedFiles.length === 1) {\n base = `You have selected ${this._selectedFiles[0].file.name}.`;\n } else {\n const fileNames = this._selectedFiles.map((f) => f.file.name).join(\", \");\n base = `You have selected ${this._selectedFiles.length} files: ${fileNames}`;\n }\n\n const error = hasInvalidFiles\n ? \" Error: One or more files are not valid file types.\"\n : \"\";\n\n return `${base}${error}`;\n }\n\n private get _innerNysButton(): HTMLElement | null {\n const nysButton = this.renderRoot.querySelector(\n '[name=\"file-btn\"]',\n ) as HTMLButtonElement | null;\n const innerButton = nysButton?.shadowRoot?.querySelector(\n \"button\",\n ) as HTMLElement | null;\n return innerButton;\n }\n\n private _internals: ElementInternals;\n\n /********************** Lifecycle updates **********************/\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-fileinput-${Date.now()}-${fileinputIdCounter++}`;\n }\n\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n /********************** Form Integration **********************/\n private _setValue() {\n // for multiple file uploads, we upload File object as an array\n if (this.multiple) {\n const files = this._selectedFiles.map((entry) => entry.file);\n\n if (files.length > 0) {\n const formData = new FormData();\n files.forEach((file) => {\n formData.append(this.name, file);\n });\n this._internals.setFormValue(formData);\n } else {\n this._internals.setFormValue(null);\n }\n } else {\n const singleFile = this._selectedFiles[0]?.file || null;\n this._internals.setFormValue(singleFile);\n }\n\n this._manageRequire(); // Check validation when value is set\n }\n\n // Called to internally set the initial internalElement required flag.\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n const message = this.errorMessage || \"Please upload a file.\";\n const isInvalid = this.required && this._selectedFiles.length == 0;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\"; // Screen readers should announce error\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({});\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = message === (this.errorMessage || \"Please upload a file.\");\n\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n input,\n );\n }\n\n private _validate() {\n const hasErrorFiles = this._selectedFiles.some(\n (entry) => entry.status === \"error\",\n );\n const isEmpty = this.required && this._selectedFiles.length === 0;\n\n let message = \"\";\n if (isEmpty) {\n message = this.errorMessage || \"Please upload a file.\";\n } else if (hasErrorFiles) {\n message = \"One or more files are invalid.\";\n }\n\n this._setValidityMessage(message);\n }\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._validate();\n\n const innerButton = this._innerNysButton;\n if (innerButton) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n innerButton.focus();\n }\n } else {\n // If not part of a form, simply focus.\n innerButton.focus();\n }\n }\n }\n\n /******************** Functions ********************/\n\n // Store the files to be displayed\n private async _saveSelectedFiles(file: File) {\n const isDuplicate = this._selectedFiles.some(\n (existingFile) => existingFile.file.name == file.name,\n );\n if (isDuplicate) return;\n\n if (!this.multiple && this._selectedFiles.length >= 1) return;\n\n const entry: FileWithProgress = {\n file,\n progress: 0,\n status: \"pending\",\n };\n\n this._selectedFiles.push(entry);\n await this._processFile(entry);\n\n // Now that the file is added, update form value and validation\n this._setValue();\n this._validate();\n }\n\n // Read the contents of stored files, this will indicate loading progress of the uploaded files\n private async _processFile(entry: FileWithProgress) {\n entry.status = \"processing\";\n\n try {\n const isValid = await validateFileHeader(entry.file, this.accept);\n if (!isValid) {\n entry.status = \"error\";\n entry.errorMsg = \"File type is invalid.\";\n this.requestUpdate();\n return;\n }\n\n const reader = new FileReader();\n\n reader.onprogress = (e) => {\n if (e.lengthComputable) {\n const percentage = Math.round((e.loaded * 100) / e.total);\n entry.progress = percentage;\n this.requestUpdate();\n }\n };\n\n reader.onload = () => {\n entry.progress = 100;\n entry.status = \"done\";\n this.requestUpdate();\n };\n\n reader.onerror = () => {\n entry.status = \"error\";\n entry.errorMsg = \"Failed to load file.\";\n this.requestUpdate();\n };\n\n reader.readAsArrayBuffer(entry.file);\n } catch {\n entry.status = \"error\";\n entry.errorMsg = \"Error validating file.\";\n this.requestUpdate();\n }\n }\n\n private _dispatchChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { files: this._selectedFiles },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _openFileDialog() {\n const input = this.renderRoot.querySelector(\n \".hidden-file-input\",\n ) as HTMLInputElement;\n\n input?.click();\n }\n\n private _handlePostFileSelectionFocus() {\n if (this.multiple) {\n const innerButton = this._innerNysButton;\n\n if (innerButton) {\n innerButton.focus();\n }\n } else {\n this._focusFirstFileItemIfSingleMode();\n }\n }\n\n private async _focusFirstFileItemIfSingleMode() {\n if (!this.multiple) {\n await this.updateComplete;\n const fileItem = this.renderRoot.querySelector(\n \"nys-fileitem\",\n ) as HTMLElement;\n\n const innerFileItemMainContainer = fileItem?.shadowRoot?.querySelector(\n \".file-item\",\n ) as HTMLElement | null;\n\n if (innerFileItemMainContainer) {\n innerFileItemMainContainer.setAttribute(\"tabindex\", \"-1\");\n innerFileItemMainContainer.focus();\n }\n }\n }\n\n /******************** Event Handlers ********************/\n // Access the selected files & add new files to the internal list via the hidden <input type=\"file\">\n private _handleFileChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n const newFiles = files ? Array.from(files) : []; // changes FileList to array\n\n // Store the uploaded files\n newFiles.map((file) => {\n this._saveSelectedFiles(file);\n });\n\n input.value = \"\";\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n this._handlePostFileSelectionFocus();\n }\n\n private _handleFileRemove(e: CustomEvent) {\n const filenameToRemove = e.detail.filename;\n\n // Remove selected files\n this._selectedFiles = this._selectedFiles.filter(\n (existingFile) => existingFile.file.name !== filenameToRemove,\n );\n this._setValue();\n this._validate();\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n private _onDragOver(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n if (!this._dragActive) {\n this._dragActive = true; // For styling purpose\n this.requestUpdate();\n }\n }\n\n // Mostly used for styling purpose\n private _onDragLeave(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n // Only reset if leaving the dropzone itself (not children)\n if (e.currentTarget === e.target) {\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n }\n }\n\n private _onDrop(e: DragEvent) {\n if (this.disabled) return;\n\n e.preventDefault();\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n\n const files = e.dataTransfer?.files;\n if (!files) return;\n\n const newFiles = Array.from(files);\n\n if (this.multiple) {\n newFiles.forEach((file) => {\n this._saveSelectedFiles(file);\n });\n } else {\n this._saveSelectedFiles(newFiles[0]);\n }\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n render() {\n return html`<div\n class=\"nys-fileinput\"\n @nys-fileRemove=${this._handleFileRemove}\n >\n <nys-label\n id=${this.id}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n\n <input\n class=\"hidden-file-input\"\n tabindex=\"-1\"\n type=\"file\"\n name=${this.name}\n ?multiple=${this.multiple}\n accept=${this.accept}\n ?required=${this.required}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n aria-disabled=\"${this.disabled}\"\n aria-hidden=\"true\"\n hidden\n @change=${this._handleFileChange}\n />\n\n ${!this.dropzone\n ? html`<nys-button\n id=${this.id}\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n .onClick=${() => this._openFileDialog()}\n ></nys-button>`\n : html`<div\n class=\"nys-fileinput__dropzone\n ${this._dragActive ? \"drag-active\" : \"\"}\n ${this._isDropDisabled ? \"disabled\" : \"\"}\n ${this.showError && !this._isDropDisabled ? \"error\" : \"\"}\"\n @click=${this._isDropDisabled ? null : this._openFileDialog}\n @keydown=${(e: KeyboardEvent) =>\n !this._isDropDisabled &&\n (e.key === \"Enter\" || e.key === \" \") &&\n this._openFileDialog()}\n @dragover=${this._isDropDisabled ? null : this._onDragOver}\n @dragleave=${this._isDropDisabled ? null : this._onDragLeave}\n @drop=${this._isDropDisabled ? null : this._onDrop}\n aria-label=\"Drag files here or choose from folder\"\n >\n ${this._dragActive\n ? html`<p>Drop file to upload</p>`\n : html` <nys-button\n id=${this.id}\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this._isDropDisabled}\n .onClick=${(e: Event) => {\n e.stopPropagation();\n this._openFileDialog();\n }}\n ></nys-button>\n <p>or drag here</p>`}\n </div>`}\n ${this.showError\n ? html`\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage ||\n this.errorMessage}\n ></nys-errormessage>\n `\n : null}\n ${this._selectedFiles.length > 0\n ? html`\n <ul>\n ${this._selectedFiles.map(\n (entry) =>\n html`<li>\n <nys-fileitem\n filename=${entry.file.name}\n status=${entry.status}\n progress=${entry.progress}\n errorMessage=${entry.errorMsg || \"\"}\n ></nys-fileitem>\n </li>`,\n )}\n </ul>\n `\n : null}\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-fileinput\")) {\n customElements.define(\"nys-fileinput\", NysFileinput);\n}\n"],"names":["t","e","s","o","n$2","r","n","S","c","i","h","a","l","p","d","u","f","y","b","_a","validateFileHeader","file","accept","acceptItems","filename","fileExt","acceptItem","styles$1","css","styles","_NysFileItem","LitElement","lastDotIndex","extension","name","startPart","endPart","html","NysFileItem","__decorateClass","property","fileinputIdCounter","_NysFileinput","hasInvalidFiles","base","fileNames","nysButton","files","entry","formData","singleFile","input","message","_b","hasErrorFiles","isEmpty","event","innerButton","form","element","existingFile","reader","percentage","fileItem","innerFileItemMainContainer","filenameToRemove","newFiles","NysFileinput"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"nys-fileinput.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../src/validateFileHeader.ts","../src/nys-fileinput.styles.ts","../src/nys-fileitem.styles.ts","../src/nys-fileitem.ts","../src/nys-fileinput.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","// The main function for file validation based only on extension and `accept` attribute.\nexport async function validateFileHeader(\n file: File,\n accept: string,\n): Promise<boolean> {\n // 1) If no accept attribute is defined, assume anything is allowed\n if (!accept || accept.trim() === \"\") return true;\n\n // 2) Normalize and parse the accept attribute\n const acceptItems = accept\n .toLowerCase()\n .split(\",\")\n .map((a) => a.trim());\n\n // 3) Get the file extension\n const filename = file.name.toLowerCase();\n const fileExt = filename.includes(\".\") ? filename.split(\".\").pop()! : \"\";\n\n // 4) Check if extension matches any of the accept items\n for (const acceptItem of acceptItems) {\n // Direct extension match (e.g. \".pdf\")\n if (acceptItem.startsWith(\".\") && acceptItem.slice(1) === fileExt) {\n return true;\n }\n\n // Wildcard /* (e.g. \"image/*\") -> match common prefixes\n if (\n acceptItem.endsWith(\"/*\") &&\n file.type.startsWith(acceptItem.slice(0, -1))\n ) {\n return true;\n }\n\n // Exact MIME match\n if (file.type === acceptItem) {\n return true;\n }\n }\n\n // 5) Not matched\n return false;\n}\n","import { css } from \"lit\";\n\nexport default css`\n :host {\n /* Global Fileinput Styles */\n --_nys-fileinput-gap: var(--nys-space-100, 8px);\n\n /* Typography */\n --_nys-fileinput-font-size: var(--nys-font-size-ui-md, 16px);\n --_nys-fileinput-font-weight: var(--nys-font-weight-semibold, 600);\n --_nys-fileinput-line-height: var(--nys-font-lineheight-ui-md, 24px);\n --_nys-fileinput-font-family: var(\n --nys-font-family-ui,\n var(\n --nys-font-family-sans,\n \"Proxima Nova\",\n \"Helvetica Neue\",\n \"Helvetica\",\n \"Arial\",\n sans-serif\n )\n );\n\n /* Dropzone */\n --_nys-fileinput-dropzone-background: var(--nys-color-ink-reverse, #fff);\n --_nys-fileinput-dropzone-radius: var(\n --nys-radius-lg,\n var(--nys-space-100, 8px)\n );\n --_nys-fileinput-dropzone-border: var(--nys-border-width-sm, 1px) dashed\n var(--nys-color-neutral-200, #bec0c1);\n --_nys-fileinput-dropzone-color: var(--nys-color-text-disabled, #bec0c1);\n }\n\n .nys-fileinput {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n gap: var(--_nys-fileinput-gap);\n font-family: var(--_nys-fileinput-font-family);\n font-size: var(--_nys-fileinput-font-size);\n font-weight: var(--_nys-fileinput-font-weight);\n line-height: var(--_nys-fileinput-line-height);\n }\n :host([width=\"lg\"]) .nys-fileinput {\n max-width: var(--nys-form-width-lg, 384px);\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--_nys-fileinput-gap);\n }\n\n /***** Dragzone *****/\n .nys-fileinput__dropzone {\n display: flex;\n padding: var(--nys-space-400, 32px) var(--nys-space-200, 16px);\n justify-content: center;\n align-items: center;\n gap: 12px;\n align-self: stretch;\n border-radius: var(--_nys-fileinput-dropzone-radius);\n outline: var(--_nys-fileinput-dropzone-border);\n background: var(--_nys-fileinput-dropzone-background);\n transition: all 60ms ease-in-out;\n }\n\n .nys-fileinput__dropzone:hover {\n cursor: pointer;\n --_nys-fileinput-dropzone-border: var(--nys-border-width-md, 2px) dashed\n var(--nys-color-neutral-700, #4a4d4f);\n }\n\n .nys-fileinput__dropzone.drag-active {\n --_nys-fileinput-dropzone-border: var(--nys-border-width-md, 2px) solid\n var(--nys-color-theme, #154973);\n --_nys-fileinput-dropzone-background: var(--nys-color-theme-faint, #f7fafd);\n }\n\n .nys-fileinput__dropzone.error {\n --_nys-fileinput-dropzone-border: var(--nys-border-width-md, 1px) dashed\n var(--nys-color-danger, #b52c2c);\n }\n\n .nys-fileinput__dropzone.error:hover {\n --_nys-fileinput-dropzone-border: var(--nys-border-width-sm, 2px) dashed\n var(--nys-color-emergency, #721c1c);\n }\n\n .nys-fileinput__dropzone.disabled {\n cursor: not-allowed;\n --_nys-fileinput-dropzone-border: var(--nys-border-width-sm, 1px) dashed\n var(--nys-color-neutral-300, #a7a9ab);\n --_nys-fileinput-dropzone-background: var(--nys-color-neutral-10, #f6f6f6);\n color: var(--_nys-fileinput-dropzone-color);\n }\n\n progress {\n display: flex;\n width: 100%;\n height: 6px;\n border-radius: var(--nys-radius-round, 1776px);\n background: var(--_nys-fileinput-progress-background);\n overflow: hidden;\n appearance: none;\n border: none;\n }\n progress::-moz-progress-bar {\n background: var(--_nys-fileinput-progress-background);\n }\n progress::-webkit-progress-value {\n background: var(--_nys-fileinput-progress-background);\n }\n progress::-webkit-progress-bar {\n background: var(--_nys-fileinput-progress-background);\n }\n`;\n","import { css } from \"lit\";\n\nexport default css`\n :host {\n /* Global fileitem Styles */\n --_nys-fileitem-items-radius: var(--nys-radius-md, 4px);\n --_nys-fileitem-items-padding: var(--nys-space-100, 8px)\n var(--nys-space-200, 16px);\n --_nys-fileitem-items-background: var(--nys-color-ink-reverse, #fff);\n --_nys-fileitem-items-border: var(--nys-border-width-sm, 1px) solid\n var(--nys-color-neutral-100, #d0d0ce);\n --_nys-fileitem-error-color: var(--nys-color-danger, #b52c2c);\n\n /* Typography */\n --_nys-fileitem-font-family: var(\n --nys-font-family-ui,\n var(\n --nys-font-family-sans,\n \"Proxima Nova\",\n \"Helvetica Neue\",\n \"Helvetica\",\n \"Arial\",\n sans-serif\n )\n );\n --_nys-fileitem-font-size: var(--nys-font-size-ui-md, 16px);\n --_nys-fileitem-font-weight-400: var(--nys-font-weight-regular, 400);\n --_nys-fileitem-line-height: var(--nys-font-lineheight-ui-md, 24px);\n --_nys-fileitem-letterspacing: var(--nys-font-letterspacing-ui-md, 0.044px);\n\n /* Progress Bar */\n --_nys-fileitem-progress-background: var(--nys-color-neutral-50, #ededed);\n --_nys-fileitem-progress-fill-background: var(--nys-color-info, #004dd1);\n }\n\n /***** File List Item *****/\n .file-item {\n position: relative;\n border-radius: var(--_nys-fileitem-items-radius);\n border: var(--_nys-fileitem-items-border);\n background: var(--_nys-fileitem-items-background);\n }\n\n .file-item.error {\n --_nys-fileitem-items-border: var(--nys-border-width-sm, 1px) solid\n var(--nys-color-danger, #b52c2c);\n }\n\n .file-item__main {\n display: flex;\n justify-items: center;\n align-items: center;\n gap: var(--_nys-fileinput-gap);\n padding: var(--_nys-fileitem-items-padding);\n height: 56px;\n box-sizing: border-box;\n }\n\n .file-item__info {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n font-family: var(--_nys-fileitem-font-family);\n font-size: var(--_nys-fileitem-font-size);\n font-style: normal;\n font-weight: var(--_nys-fileitem-font-weight-400);\n line-height: var(--_nys-fileitem-line-height);\n letter-spacing: var(--_nys-fileitem-letterspacing);\n }\n\n .file-item__info-name {\n display: flex;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n align-items: center;\n }\n\n .file-item__info-name-start {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-shrink: 1;\n min-width: 0;\n }\n\n .file-item p {\n margin: 0;\n }\n\n .file-item__error {\n color: var(--_nys-fileitem-error-color);\n text-overflow: ellipsis;\n font-weight: 700;\n }\n\n /**** Progress Bar ****/\n progress {\n position: absolute;\n bottom: 0;\n display: flex;\n width: 100%;\n height: 6px;\n border-radius: var(--nys-radius-round, 1776px);\n background: var(--_nys-fileitem-progress-fill-background);\n overflow: hidden;\n appearance: none;\n }\n /* Track */\n progress::-moz-progress-bar {\n background: var(--_nys-fileitem-progress-background);\n }\n /* Filled value (the blue bar) */\n progress::-webkit-progress-value {\n background: var(--_nys-fileitem-progress-fill-background);\n }\n /* Firefox */\n progress::-webkit-progress-bar {\n background: var(--_nys-fileitem-progress-background);\n }\n\n /**** Icon ****/\n .file-icon[name=\"progress_activity\"] {\n animation: spin 1s linear infinite;\n }\n\n .file-icon[name=\"error\"] {\n color: var(--_nys-fileitem-error-color);\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport styles from \"./nys-fileitem.styles\";\n\nexport class NysFileItem extends LitElement {\n @property({ type: String }) filename = \"\";\n @property({ type: String }) status:\n | \"pending\"\n | \"processing\"\n | \"done\"\n | \"error\" = \"pending\";\n @property({ type: Number }) progress = 0;\n @property({ type: String }) errorMessage = \"\";\n\n static styles = styles;\n\n private _handleRemove() {\n this.dispatchEvent(\n new CustomEvent(\"nys-fileRemove\", {\n detail: { filename: this.filename },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private splitFilename(filename: string) {\n const lastDotIndex = filename.lastIndexOf(\".\");\n const extension = lastDotIndex !== -1 ? filename.slice(lastDotIndex) : \"\"; // e.g. \".pdf\"\n const name =\n lastDotIndex !== -1 ? filename.slice(0, lastDotIndex) : filename;\n\n const startPart = name.slice(0, name.length - 3);\n const endPart = name.slice(-3);\n\n return { startPart, endPart, extension };\n }\n\n render() {\n const { startPart, endPart, extension } = this.splitFilename(this.filename);\n\n return html`\n <div\n class=\"file-item ${this.status}\"\n aria-busy=${this.status === \"processing\" ? \"true\" : \"false\"}\n aria-label=\"You have selected ${this.filename}\"\n >\n <div class=\"file-item__main\" role=\"group\">\n <nys-icon\n class=\"file-icon\"\n name=${this.status === \"processing\"\n ? \"progress_activity\"\n : this.status === \"error\"\n ? \"error\"\n : \"attach_file\"}\n size=\"2xl\"\n ></nys-icon>\n <div class=\"file-item__info\">\n <div class=\"file-item__info-name\">\n <span class=\"file-item__info-name-start\">${startPart}</span>\n <span class=\"file-item__info-name-end\"\n >${endPart}${extension}</span\n >\n </div>\n ${this.errorMessage\n ? html`<p\n class=\"file-item__error\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-invalid=\"true\"\n aria-errormessage=${this.errorMessage}\n id=\"${this.filename}-error\"\n >\n ${this.errorMessage}\n </p>`\n : null}\n </div>\n <nys-button\n circle\n icon=\"close\"\n ariaLabel=\"close button\"\n size=\"sm\"\n variant=\"ghost\"\n .onClick=${() => this._handleRemove()}\n ariaLabel=\"Remove file: ${this.filename}\"\n ></nys-button>\n </div>\n ${this.status === \"processing\"\n ? html`<div\n class=\"file-item__progress-container\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=\"${this.progress}\"\n aria-label=\"Upload progress for ${this.filename}\"\n >\n <progress value=${this.progress} max=\"100\"></progress>\n </div>`\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"nys-fileitem\", NysFileItem);\n","import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { validateFileHeader } from \"./validateFileHeader\";\nimport styles from \"./nys-fileinput.styles\";\nimport \"./nys-fileitem\";\n\nlet fileinputIdCounter = 0; // Counter for generating unique IDs\n\ninterface FileWithProgress {\n file: File;\n progress: number;\n status: \"pending\" | \"processing\" | \"done\" | \"error\";\n errorMsg?: string;\n}\n\nexport class NysFileinput extends LitElement {\n @property({ type: String }) id = \"\";\n @property({ type: String, reflect: true }) name = \"\";\n @property({ type: String }) label = \"\";\n @property({ type: String }) description = \"\";\n @property({ type: Boolean }) multiple = false;\n @property({ type: String }) accept = \"\"; // e.g. \"image/*,.pdf\"\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) required = false;\n @property({ type: Boolean, reflect: true }) optional = false;\n @property({ type: Boolean, reflect: true }) showError = false;\n @property({ type: String }) errorMessage = \"\";\n @property({ type: Boolean }) dropzone = false;\n @property({ type: String, reflect: true }) width: \"lg\" | \"full\" = \"full\";\n\n static styles = styles;\n\n private _selectedFiles: FileWithProgress[] = [];\n private _dragActive = false;\n private get _isDropDisabled(): boolean {\n return this.disabled || (!this.multiple && this._selectedFiles.length > 0);\n }\n\n private get _buttonAriaLabel(): string {\n if (this._selectedFiles.length === 0) {\n return this.multiple ? \"Choose files: \" : \"Choose file: \";\n }\n\n return this.multiple ? \"Change files: \" : \"Change file: \";\n }\n\n private get _buttonAriaDescription(): string {\n if (this._selectedFiles.length === 0)\n return `${this.label + \" \" + this.description}`;\n\n const hasInvalidFiles = this._selectedFiles.some(\n (file) => file.status === \"error\",\n );\n\n let base = \"\";\n\n if (this._selectedFiles.length === 1) {\n base = `You have selected ${this._selectedFiles[0].file.name}.`;\n } else {\n const fileNames = this._selectedFiles.map((f) => f.file.name).join(\", \");\n base = `You have selected ${this._selectedFiles.length} files: ${fileNames}`;\n }\n\n const error = hasInvalidFiles\n ? \" Error: One or more files are not valid file types.\"\n : \"\";\n\n return `${base}${error}`;\n }\n\n private get _innerNysButton(): HTMLElement | null {\n const nysButton = this.renderRoot.querySelector(\n '[name=\"file-btn\"]',\n ) as HTMLButtonElement | null;\n const innerButton = nysButton?.shadowRoot?.querySelector(\n \"button\",\n ) as HTMLElement | null;\n return innerButton;\n }\n\n private _internals: ElementInternals;\n\n /********************** Lifecycle updates **********************/\n static formAssociated = true; // allows use of elementInternals' API\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // Generate a unique ID if one is not provided\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-fileinput-${Date.now()}-${fileinputIdCounter++}`;\n }\n\n this.addEventListener(\"invalid\", this._handleInvalid);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"invalid\", this._handleInvalid);\n }\n\n firstUpdated() {\n // This ensures our element always participates in the form\n this._setValue();\n }\n\n /********************** Form Integration **********************/\n private _setValue() {\n // for multiple file uploads, we upload File object as an array\n if (this.multiple) {\n const files = this._selectedFiles.map((entry) => entry.file);\n\n if (files.length > 0) {\n const formData = new FormData();\n files.forEach((file) => {\n formData.append(this.name, file);\n });\n this._internals.setFormValue(formData);\n } else {\n this._internals.setFormValue(null);\n }\n } else {\n const singleFile = this._selectedFiles[0]?.file || null;\n this._internals.setFormValue(singleFile);\n }\n\n this._manageRequire(); // Check validation when value is set\n }\n\n // Called to internally set the initial internalElement required flag.\n private _manageRequire() {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n const message = this.errorMessage || \"Please upload a file.\";\n const isInvalid = this.required && this._selectedFiles.length == 0;\n\n if (isInvalid) {\n this._internals.ariaRequired = \"true\"; // Screen readers should announce error\n this._internals.setValidity({ valueMissing: true }, message, input);\n } else {\n this._internals.ariaRequired = \"false\"; // Reset when valid\n this._internals.setValidity({}, \"\", input);\n }\n }\n\n private _setValidityMessage(message: string = \"\") {\n const input = this.shadowRoot?.querySelector(\"input\");\n if (!input) return;\n\n // Toggle the HTML <div> tag error message\n this.showError = message === (this.errorMessage || \"Please upload a file.\");\n\n // If user sets errorMessage, this will always override the native validation message\n if (this.errorMessage?.trim() && message !== \"\") {\n message = this.errorMessage;\n }\n\n this._internals.setValidity(\n message ? { customError: true } : {},\n message,\n input,\n );\n }\n\n private _validate() {\n const hasErrorFiles = this._selectedFiles.some(\n (entry) => entry.status === \"error\",\n );\n const isEmpty = this.required && this._selectedFiles.length === 0;\n\n let message = \"\";\n if (isEmpty) {\n message = this.errorMessage || \"Please upload a file.\";\n } else if (hasErrorFiles) {\n message = \"One or more files are invalid.\";\n }\n\n this._setValidityMessage(message);\n }\n\n // This helper function is called to perform the element's native validation.\n checkValidity(): boolean {\n const input = this.shadowRoot?.querySelector(\"input\");\n return input ? input.checkValidity() : true;\n }\n\n private _handleInvalid(event: Event) {\n event.preventDefault();\n this._validate();\n\n const innerButton = this._innerNysButton;\n if (innerButton) {\n // Focus only if this is the first invalid element (top-down approach)\n const form = this._internals.form;\n if (form) {\n const elements = Array.from(form.elements) as Array<\n HTMLElement & { checkValidity?: () => boolean }\n >;\n // Find the first element in the form that is invalid\n const firstInvalidElement = elements.find(\n (element) =>\n typeof element.checkValidity === \"function\" &&\n !element.checkValidity(),\n );\n if (firstInvalidElement === this) {\n innerButton.focus();\n innerButton.classList.add(\"active-focus\"); // This class styling is found within <nys-button>\n }\n } else {\n // If not part of a form, simply focus.\n innerButton.focus();\n innerButton.classList.add(\"active-focus\"); // This class styling is found within <nys-button>\n }\n }\n }\n\n /******************** Functions ********************/\n\n // Store the files to be displayed\n private async _saveSelectedFiles(file: File) {\n const isDuplicate = this._selectedFiles.some(\n (existingFile) => existingFile.file.name == file.name,\n );\n if (isDuplicate) return;\n\n if (!this.multiple && this._selectedFiles.length >= 1) return;\n\n const entry: FileWithProgress = {\n file,\n progress: 0,\n status: \"pending\",\n };\n\n this._selectedFiles.push(entry);\n await this._processFile(entry);\n\n // Now that the file is added, update form value and validation\n this._setValue();\n this._validate();\n }\n\n // Read the contents of stored files, this will indicate loading progress of the uploaded files\n private async _processFile(entry: FileWithProgress) {\n entry.status = \"processing\";\n\n try {\n const isValid = await validateFileHeader(entry.file, this.accept);\n if (!isValid) {\n entry.status = \"error\";\n entry.errorMsg = \"File type is invalid.\";\n this.requestUpdate();\n return;\n }\n\n const reader = new FileReader();\n\n reader.onprogress = (e) => {\n if (e.lengthComputable) {\n const percentage = Math.round((e.loaded * 100) / e.total);\n entry.progress = percentage;\n this.requestUpdate();\n }\n };\n\n reader.onload = () => {\n entry.progress = 100;\n entry.status = \"done\";\n this.requestUpdate();\n };\n\n reader.onerror = () => {\n entry.status = \"error\";\n entry.errorMsg = \"Failed to load file.\";\n this.requestUpdate();\n };\n\n reader.readAsArrayBuffer(entry.file);\n } catch {\n entry.status = \"error\";\n entry.errorMsg = \"Error validating file.\";\n this.requestUpdate();\n }\n }\n\n private _dispatchChangeEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-change\", {\n detail: { files: this._selectedFiles },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _openFileDialog() {\n const input = this.renderRoot.querySelector(\n \".hidden-file-input\",\n ) as HTMLInputElement;\n\n input?.click();\n }\n\n private _handlePostFileSelectionFocus() {\n if (this.multiple) {\n const innerButton = this._innerNysButton;\n\n if (innerButton) {\n innerButton.focus();\n }\n } else {\n this._focusFirstFileItemIfSingleMode();\n }\n }\n\n private async _focusFirstFileItemIfSingleMode() {\n if (!this.multiple) {\n await this.updateComplete;\n const fileItem = this.renderRoot.querySelector(\n \"nys-fileitem\",\n ) as HTMLElement;\n\n const innerFileItemMainContainer = fileItem?.shadowRoot?.querySelector(\n \".file-item\",\n ) as HTMLElement | null;\n\n if (innerFileItemMainContainer) {\n innerFileItemMainContainer.setAttribute(\"tabindex\", \"-1\");\n innerFileItemMainContainer.focus();\n }\n }\n }\n\n /******************** Event Handlers ********************/\n // Access the selected files & add new files to the internal list via the hidden <input type=\"file\">\n private _handleFileChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n const newFiles = files ? Array.from(files) : []; // changes FileList to array\n\n // Store the uploaded files\n newFiles.map((file) => {\n this._saveSelectedFiles(file);\n });\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n this._handlePostFileSelectionFocus();\n }\n\n private _handleFileRemove(e: CustomEvent) {\n const filenameToRemove = e.detail.filename;\n\n // Remove selected files\n this._selectedFiles = this._selectedFiles.filter(\n (existingFile) => existingFile.file.name !== filenameToRemove,\n );\n\n if (this._selectedFiles.length === 0) {\n const input = this.shadowRoot?.querySelector(\n \"input\",\n ) as HTMLInputElement | null;\n if (input) input.value = \"\";\n }\n\n this._setValue();\n this._validate();\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n private _onDragOver(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n if (!this._dragActive) {\n this._dragActive = true; // For styling purpose\n this.requestUpdate();\n }\n }\n\n // Mostly used for styling purpose\n private _onDragLeave(e: DragEvent) {\n if (this.disabled) return;\n\n e.stopPropagation();\n e.preventDefault();\n // Only reset if leaving the dropzone itself (not children)\n if (e.currentTarget === e.target) {\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n }\n }\n\n private _onDrop(e: DragEvent) {\n if (this.disabled) return;\n\n e.preventDefault();\n this._dragActive = false; // For styling purpose\n this.requestUpdate();\n\n const files = e.dataTransfer?.files;\n if (!files) return;\n\n const newFiles = Array.from(files);\n\n if (this.multiple) {\n newFiles.forEach((file) => {\n this._saveSelectedFiles(file);\n });\n } else {\n this._saveSelectedFiles(newFiles[0]);\n }\n\n this.requestUpdate();\n this._dispatchChangeEvent();\n }\n\n render() {\n return html`<div\n class=\"nys-fileinput\"\n @nys-fileRemove=${this._handleFileRemove}\n >\n <nys-label\n for=${this.id}\n label=${this.label}\n description=${this.description}\n flag=${this.required ? \"required\" : this.optional ? \"optional\" : \"\"}\n >\n <slot name=\"description\" slot=\"description\">${this.description}</slot>\n </nys-label>\n\n <input\n class=\"hidden-file-input\"\n tabindex=\"-1\"\n type=\"file\"\n name=${this.name}\n ?multiple=${this.multiple}\n accept=${this.accept}\n ?required=${this.required}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n aria-disabled=\"${this.disabled}\"\n aria-hidden=\"true\"\n @change=${this._handleFileChange}\n hidden\n />\n\n ${!this.dropzone\n ? html`<nys-button\n id=${this.id}\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this.disabled ||\n (!this.multiple && this._selectedFiles.length > 0)}\n .onClick=${() => this._openFileDialog()}\n ></nys-button>`\n : html`<div\n class=\"nys-fileinput__dropzone\n ${this._dragActive ? \"drag-active\" : \"\"}\n ${this._isDropDisabled ? \"disabled\" : \"\"}\n ${this.showError && !this._isDropDisabled ? \"error\" : \"\"}\"\n @click=${this._isDropDisabled ? null : this._openFileDialog}\n @keydown=${(e: KeyboardEvent) =>\n !this._isDropDisabled &&\n (e.key === \"Enter\" || e.key === \" \") &&\n this._openFileDialog()}\n @dragover=${this._isDropDisabled ? null : this._onDragOver}\n @dragleave=${this._isDropDisabled ? null : this._onDragLeave}\n @drop=${this._isDropDisabled ? null : this._onDrop}\n aria-label=\"Drag files here or choose from folder\"\n >\n ${this._dragActive\n ? html`<p>Drop file to upload</p>`\n : html` <nys-button\n id=${this.id}\n name=\"file-btn\"\n label=${this.multiple ? \"Choose files\" : \"Choose file\"}\n variant=\"outline\"\n ariaLabel=${this._buttonAriaLabel}\n ariaDescription=${this._buttonAriaDescription}\n ?disabled=${this._isDropDisabled}\n .onClick=${(e: Event) => {\n e.stopPropagation();\n this._openFileDialog();\n }}\n ></nys-button>\n <p>or drag here</p>`}\n </div>`}\n ${this.showError\n ? html`\n <nys-errormessage\n ?showError=${this.showError}\n errorMessage=${this._internals.validationMessage ||\n this.errorMessage}\n ></nys-errormessage>\n `\n : null}\n ${this._selectedFiles.length > 0\n ? html`\n <ul>\n ${this._selectedFiles.map(\n (entry) =>\n html`<li>\n <nys-fileitem\n filename=${entry.file.name}\n status=${entry.status}\n progress=${entry.progress}\n errorMessage=${entry.errorMsg || \"\"}\n ></nys-fileitem>\n </li>`,\n )}\n </ul>\n `\n : null}\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-fileinput\")) {\n customElements.define(\"nys-fileinput\", NysFileinput);\n}\n"],"names":["t","e","s","o","n$2","r","n","S","c","i","h","a","l","p","d","u","f","y","b","_a","validateFileHeader","file","accept","acceptItems","filename","fileExt","acceptItem","styles$1","css","styles","_NysFileItem","LitElement","lastDotIndex","extension","name","startPart","endPart","html","NysFileItem","__decorateClass","property","fileinputIdCounter","_NysFileinput","hasInvalidFiles","base","fileNames","nysButton","files","entry","formData","singleFile","input","message","_b","hasErrorFiles","isEmpty","event","innerButton","form","element","existingFile","reader","percentage","fileItem","innerFileItemMainContainer","filenameToRemove","newFiles","NysFileinput"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nysds/nys-fileinput",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "The Fileinput component from the NYS Design System.",
|
|
5
5
|
"module": "dist/nys-fileinput.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"lit": "^3.2.1"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@nysds/nys-icon": "^1.
|
|
29
|
-
"@nysds/nys-button": "^1.
|
|
30
|
-
"@nysds/nys-label": "^1.
|
|
31
|
-
"@nysds/nys-errormessage": "^1.
|
|
28
|
+
"@nysds/nys-icon": "^1.7.0",
|
|
29
|
+
"@nysds/nys-button": "^1.7.0",
|
|
30
|
+
"@nysds/nys-label": "^1.7.0",
|
|
31
|
+
"@nysds/nys-errormessage": "^1.7.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"lit": "^3.2.1",
|