-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathp-d950e409.entry.js
5 lines (5 loc) · 6.19 KB
/
p-d950e409.entry.js
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,g as a}from"./p-0f27354a.js";import{c as n}from"./p-922077e5.js";import{h as o}from"./p-3e9fe89f.js";const d={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",7),this.canceledEvent=i(this,"dwc-canceled",7),this.filterChangedEvent=i(this,"dwc-filter-changed",7),this._i18n=d,this._filters=[],this._activeFilter="",this.noExtensionFilterEnabled=!0,this.activeFilter="",this.approveVisible=!0,this.cancelVisible=!0,this.disabled=!1,this.i18n=d,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(d,"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:"2f955249b94dd03f3d795ba6cd02c80708f1ee4e",class:o({BBjFileChooser:!0,"bbj-file-save":!0,"bbj-disabled":this.disabled})},e("div",{key:"3a0241b6b80635d777a355e3c22dc22b85662a6e",part:"control"},e("div",{key:"3513dd9053d90c5edd2d108cce677e311ad34f36",part:"inputs"},e("dwc-field",{key:"ddfc5d3d972f23f29a8be5dead273bd4f659b8fe",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:"13c08545c19ea309d5d80f48f5fc0fc6dc794dac",part:"filters",items:i,selected:a,label:t.saveAs,customValue:!1,"onDwc-changed":this.handleFilterChanged})),e("div",{key:"505613f3b3a5a1038420fdd48d89a92982c7fa08",part:"buttons"},this.approveVisible&&e("dwc-button",{key:"65564295f90acfa3e2d7c86379787da1fd3a0d86",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:"b56ba5004a363922a49733422e5535f0de9d6646",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"],activeFilter:["onPropertiesChanged"],noExtensionFilterEnabled:["onPropertiesChanged"],filters:["onPropertiesChanged"]}}};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);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-color:var(--dwc-surface-1);border-top:var(--dwc-border-width) solid var(--dwc-color-default);padding:var(--dwc-space-m)}";export{h as dwc_file_save}