-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathp-bbcf8f69.entry.js
More file actions
5 lines (5 loc) · 6.21 KB
/
Copy pathp-bbcf8f69.entry.js
File metadata and controls
5 lines (5 loc) · 6.21 KB
1
2
3
4
5
/*!
* Built by BASIS
* Copyright BASIS International Ltd.
*/
import{r as t,c as i,h as e,H as s,a}from"./p-PVlyEhfK.js";import{i as n}from"./p-Bb0cGS2v.js";import{h as o}from"./p-Byb4o8em.js";const r={approve:"Save",cancel:"Cancel",noExtension:"No Extension (*.)",filename:"Filename",saveAs:"Save As",invalidFilename:"Filename is not valid",filenameRequired:"Filename is required",invalidExtension:"Extension is not valid"},h=class{constructor(e){t(this,e),this.approvedEvent=i(this,"dwc-approved"),this.canceledEvent=i(this,"dwc-canceled"),this.filterChangedEvent=i(this,"dwc-filter-changed"),this._i18n=r,this._filters=[],this._activeFilter="",this.noExtensionFilterEnabled=!0,this.activeFilter="",this.approveVisible=!0,this.cancelVisible=!0,this.disabled=!1,this.i18n=r,this.valid=!0}onI18nChanged(t){this._i18n=this.resolveI18n(t)}onPropertiesChanged(){this._filters=this.resolveFilters();let t=this.activeFilter||"";if(!t){const i=this.value?this.value.split(".").pop():"";if(i&&i!==this.value){const e=this._filters.find((t=>t.globs.indexOf(i)>=0));e&&(t=String(e.id))}else{const i=this._filters.find((t=>"*"===t.globs));t=String(i?i.id:this._filters[0].id)}}this._activeFilter=t}async setFocus(){this.$editBox&&await this.$editBox.setFocus()}async removeFocus(){const t=document.activeElement;if(t&&this.el.contains(t))try{t.blur(),t.removeFocus()}catch(t){}}async approve(){this.valid=await this.$editBox.validate(),this.valid?this.approvedEvent.emit():this.setFocus()}async cancel(){this.canceledEvent.emit()}connectedCallback(){this.validateValue=this.validateValue.bind(this),this.handleValueChanged=this.handleValueChanged.bind(this),this.handleValueValidated=this.handleValueValidated.bind(this),this.handleFilterChanged=this.handleFilterChanged.bind(this),this.handleApprove=this.handleApprove.bind(this),this.handleCancel=this.handleCancel.bind(this)}componentWillLoad(){null!=window.applyFocusVisiblePolyfill&&window.applyFocusVisiblePolyfill(this.el.shadowRoot),this.onI18nChanged(this.i18n),this.onPropertiesChanged()}resolveFilters(){const t=[...this.filters||[]].map((t=>({id:t.id||t.name,name:t.name,globs:t.globs})));return this.noExtensionFilterEnabled&&(t.find((t=>"*"===t.globs))||t.unshift({id:this._i18n.noExtension,name:this._i18n.noExtension,globs:"*"})),t}resolveI18n(t){return Object.assign(r,"string"==typeof t?JSON.parse(t):t)}computedFiltersList(){const t=this._filters.map((t=>({value:t.id,label:t.name}))),i=t.findIndex((t=>t.value===this._activeFilter));return{filters:t,selected:i}}validateValue(t){var i;const{value:e}=t,s=this._i18n;if(!e||0===e.length)return this.validationMessage=s.filenameRequired,!1;if(!n(e))return this.validationMessage=s.invalidFilename,!1;const a=this._filters.find((t=>t.id===this._activeFilter));if((null===(i=null==a?void 0:a.globs)||void 0===i?void 0:i.length)>0){const t=a.globs.split(",").map((t=>t.trim()));if(0===t.length)return!0;const i=e.split(".").pop();if(!i&&t.includes("*"))return!0;if(!t.find((t=>i===t.split(".").pop()||"*"===t)))return this.validationMessage=s.invalidExtension,!1}return!0}handleValueChanged(t){this.value=(t.detail||"").trim()}handleValueValidated(t){this.valid=t.detail}handleFilterChanged(t){var i;const{index:e,item:s}=t.detail;this.activeFilter=s.value;const a=this._filters[e];if((null===(i=null==a?void 0:a.globs)||void 0===i?void 0:i.length)>0){const t=a.globs.split(",").map((t=>t.trim()));if(0===t.length)return;let i=t[0].split(".").pop();"*"===i&&(i="");let e=this.value||"";const s=e.lastIndexOf(".");s>-1&&(e=e.substring(0,s)),e.endsWith(i)||(e=`${e.trim()}.${i}`),this.value=e}this.filterChangedEvent.emit(this._activeFilter)}handleApprove(){this.approve()}handleCancel(){this.cancel()}render(){const t=this._i18n,{filters:i,selected:a}=this.computedFiltersList();return e(s,{key:"0db665e9071e1489c111cec69602137304bb4be6",class:o({BBjFileChooser:!0,"bbj-file-save":!0,"bbj-disabled":this.disabled})},e("div",{key:"8197fdc188656cc2ef3ff6f63bd7f39f2de3dcb9",part:"control"},e("div",{key:"a1f0e190b80fb8fc9566a0379f4d1d5abf849f81",part:"inputs"},e("dwc-field",{key:"2328ead4bd93dbe1e0087681945a8bbfce84e480",part:"filename",ref:t=>this.$editBox=t,label:t.filename,value:(this.value||"").trim(),autoValidate:!0,autoValidateOnLoad:!1,validator:this.validateValue,invalidMessage:this.validationMessage,"onDwc-modified":this.handleValueChanged,"onDwc-validated":this.handleValueValidated}),this._filters.length>0&&e("dwc-combobox",{key:"54998113c87613f6a1daf43bb8d88830ccbe094c",part:"filters",items:i,selected:a,label:t.saveAs,customValue:!1,"onDwc-changed":this.handleFilterChanged})),e("div",{key:"6d5503015613eeacb121093f0547915dd4502b7f",part:"buttons"},this.approveVisible&&e("dwc-button",{key:"75681bb92ed69ee634ca5dcab5f2d86263ba3a91",part:"button approve-button",label:t.approve,theme:"primary",accessKey:this.approveAccesskey,disabled:this.disabled||!this.valid,onClick:this.handleApprove}),this.cancelVisible&&e("dwc-button",{key:"fdcbbec2d68d7ec802e97d332cf54b92a3e35e42",part:"button cancel-button",label:t.cancel,accessKey:this.cancelAccesskey,disabled:this.disabled,onClick:this.handleCancel}))))}get el(){return a(this)}static get watchers(){return{i18n:[{onI18nChanged:0}],activeFilter:[{onPropertiesChanged:0}],noExtensionFilterEnabled:[{onPropertiesChanged:0}],filters:[{onPropertiesChanged:0}]}}};h.style="@media (prefers-reduced-motion: reduce){*,::before,::after{animation-delay:-1ms !important;animation-duration:1ms !important;animation-iteration-count:1 !important;background-attachment:initial !important;scroll-behavior:auto !important;transition-delay:0s !important;transition-duration:0s !important}}:host{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;-webkit-tap-highlight-color:transparent;text-size-adjust:100%}:host *,:host *::before,:host *::after{box-sizing:inherit}:host{display:block}[part=inputs]{display:flex;flex-direction:column;gap:var(--dwc-space-m)}[part=buttons]{display:flex;gap:var(--dwc-space-s);justify-content:flex-end;padding-top:var(--dwc-space-m)}:host([dwc-fs-save]) [part=inputs]{padding:var(--dwc-space-m)}:host([dwc-fs-save]) [part=buttons]{background:var(--dwc-surface-2);border-top:var(--dwc-border-width) var(--dwc-border-style) var(--dwc-border-color);padding:var(--dwc-space-s) var(--dwc-space-m)}";export{h as dwc_file_save}