UNPKG

@rocketspark/domain-checker

Version:
13 lines 8.21 kB
/*! * * @rocketspark/domain-checker v0.0.34 * https://github.com/rocketspark/domain-checker.git * * Copyright (c) Lee Reichardt and project contributors. * * This source code is licensed under the no license license found in the * LICENSE file in the root directory of this source tree. * */ "use strict";(self.webpackChunkDomainChecker=self.webpackChunkDomainChecker||[]).push([[835],{2419:function(e,t,s){s.d(t,{d:function(){return l},i:function(){return n},s:function(){return h}});var i=s(7915);const l=(e,t=0)=>{let s;return(...i)=>{clearTimeout(s),s=setTimeout(e,t,...i)}},n=(e,t,s)=>{const l=(void 0!==e.target?e.target:s).tagName.toLowerCase().replace("rs-",""),n=e.detail,h={},d=t.get(l)||{};let a=!1;Object.keys(n).forEach((e=>{if(n[e]){const t=`item-${e}`;d[t]||(a=!0),h[t]=!0}})),a||Object.keys(h).length===Object.keys(d).length||(a=!0),a&&(t.set(l,h),(0,i.f)(s))},h=(e,t,s,i=!1)=>{!t&&!s||i||null!==e&&(e.style.display="block",setTimeout((function(){e.style.opacity="1"}),150))}},1835:function(e,t,s){s.r(t),s.d(t,{rs_link_select:function(){return n}});var i=s(7915),l=s(2419);const n=class{constructor(e){(0,i.r)(this,e),this.rsLinkSelected=(0,i.c)(this,"rsLinkSelected",7),this._data={},this.subtypes={},this.subtypeHasChanged=!1,this.WEBSITE_TYPE="website",this.selectType=e=>{this.selectedType!==this.types[e.detail.value]&&(this.selectedType=this.types[e.detail.value],this.resetSelectedSubtype())},this.selectSubType=e=>{this.selectedSubtype=e.detail,this.subtypeHasChanged=!0},this.selectLink=e=>{this.selectedLink=this.items[this.selectedType].find((t=>{var s;return(null!==(s=t.subType)&&void 0!==s?s:null)===this.selectedSubtype&&t.value==e.detail}))},this.updateLinkLabel=e=>{this.linkText=e.target.value},this.editWebsiteLink=()=>{this.websiteLink=this.$websiteLinkInput.value},this.handleClose=()=>{this.close(),this.reset()},this.removeLink=()=>{this.rsLinkSelected.emit({type:"",subType:null,value:null,label:null,linkText:null}),this.selectedItem=null,this.close(),this.reset()},this.cancel=()=>{this.close(),this.reset()},this.saveLink=()=>{const e=this.selectedType===this.WEBSITE_TYPE?{type:this.WEBSITE_TYPE,subType:null,value:this.websiteLink,label:this.websiteLink}:this.selectedLink;this.rsLinkSelected.emit(Object.assign(Object.assign({},e),{linkText:this.linkText})),this.close()},this.fetchData=(0,l.d)((e=>{var t;const s=null!==(t=this._data[e])&&void 0!==t?t:null;s&&fetch(s,{headers:{"X-Website-UUID":this.websiteUuid}}).then((e=>e.json())).then((({options:t})=>{this.items=Object.assign({[e]:t},this.items);const s=t.map((e=>{var t;return null!==(t=e.subType)&&void 0!==t?t:null})).filter((e=>!!e)).filter(((e,t,s)=>s.indexOf(e)===t));this.subtypes=Object.assign({[e]:s},this.subtypes),this.resetSelectedSubtype()}))}),1e3),this.data={},this.selectedItem=null,this.linkText=void 0,this.linkLabel="Link text",this.allowExternalLinks=!1,this.websiteUuid=void 0,this.items={},this.hidden=!0,this.selectedType=void 0,this.selectedSubtype=null}async open(){this.hidden=!1}async close(){this.hidden=!0}render(){return(0,i.h)("div",{class:"container "+(this.hidden?"is-hidden":"")},(0,i.h)("div",{class:"overlay"}),(0,i.h)("div",{class:"inner"},(0,i.h)("div",{class:"head"},(0,i.h)("rs-header",{heading:"4"},"Add a link"),(0,i.h)("rs-icon",{name:"fine-x",size:20,onClick:this.handleClose})),(0,i.h)("div",{class:"body"},(0,i.h)("rs-toggle",{onToggle:this.selectType,ref:e=>this.$toggle=e},this.types.map((e=>(0,i.h)("rs-toggle-item",null,e.toUpperCase())))),this.renderTypePage(),this.renderLinkText(),(0,i.h)("div",{class:"buttons"},(0,i.h)("rs-button",{onClick:this.removeLink,color:"grey-light"},"Remove link"),(0,i.h)("div",{class:"buttons__spacer"}),(0,i.h)("rs-button",{onClick:this.cancel,color:"grey-light"},"Cancel"),(0,i.h)("rs-button",{onClick:this.saveLink},"Save link")))))}componentWillLoad(){this._data="string"==typeof this.data?JSON.parse(this.data):this.data,this.types=Object.keys(this._data),this.allowExternalLinks&&this.types.push(this.WEBSITE_TYPE),this.selectedItem&&Object.values(this.selectedItem).every((e=>!e))&&(this.selectedItem=null),this.reset()}componentWillRender(){var e;null===(e=this.$toggle)||void 0===e||e.setActivePosition(this.types.indexOf(this.selectedType)),this.hidden||this.selectedType!==this.WEBSITE_TYPE&&(this.items.hasOwnProperty(this.selectedType)||this.fetchData(this.selectedType))}componentDidLoad(){var e;null===(e=this.$toggle)||void 0===e||e.setActivePosition(this.types.indexOf(this.selectedType))}renderLinkText(){return void 0===this.linkText?null:(0,i.h)("div",{class:"link-text"},(0,i.h)("rs-label",{position:"fixed"},this.linkLabel),(0,i.h)("rs-input",{placeholder:this.linkLabel,value:this.linkText,onRsInput:this.updateLinkLabel}))}renderTypePage(){var e,t,s;if(this.selectedType===this.WEBSITE_TYPE)return this.renderWebsitePage();if(!this.items.hasOwnProperty(this.selectedType))return(0,i.h)("rs-spinner",{size:"small",color:"grey-300"});const l=null!==(e=this.subtypes[this.selectedType])&&void 0!==e?e:[],n=this.items[this.selectedType].filter((e=>null===this.selectedSubtype||e.subType===this.selectedSubtype));return(0,i.h)("div",{class:"page"},(0,i.h)("div",{class:"link-selector"},l.length>0?this.renderSubtype():null,(0,i.h)("rs-dropdown",{key:`${this.selectedType}:${null!==(t=this.selectedSubtype)&&void 0!==t?t:""}`,class:"dropdown is-primary",size:"small",placeholder:"Select an option",searchable:!0,items:n.map((e=>({label:e.label,value:e.value}))),selectedIndex:this.subtypeHasChanged?null:n.map((e=>e.value)).indexOf(null===(s=this.selectedItem)||void 0===s?void 0:s.value),onRsChange:this.selectLink})))}renderWebsitePage(){var e;return(0,i.h)("div",{class:"page"},(0,i.h)("div",{class:"link-selector"},(0,i.h)("rs-input",{placeholder:"https://www.example.com",value:(null===(e=this.selectedItem)||void 0===e?void 0:e.type)===this.WEBSITE_TYPE?this.selectedItem.value:null,onRsInput:this.editWebsiteLink,ref:e=>this.$websiteLinkInput=e})))}renderSubtype(){var e;const t=null!==(e=this.subtypes[this.selectedType])&&void 0!==e?e:[];return(0,i.h)("rs-dropdown",{key:`${this.selectedType}:subtypes`,class:"dropdown is-subtype",size:"small",items:t.map((e=>({label:e[0].toUpperCase()+e.slice(1),value:e}))),selectedIndex:t.indexOf(this.selectedSubtype),onRsChange:this.selectSubType,ref:e=>this.$subtypeDropdown=e})}reset(){var e;this.subtypeHasChanged=!1,this.resetSelectedType(),this.resetSelectedSubtype(),null===(e=this.$subtypeDropdown)||void 0===e||e.clear()}resetSelectedType(){var e;this.selectedItem?this.selectedType=this.selectedItem.type:this.selectedType=this.types[0];const t=this.types.indexOf(this.selectedType);t>-1&&(null===(e=this.$toggle)||void 0===e||e.setActivePosition(t))}resetSelectedSubtype(){var e,t,s;!this.subtypeHasChanged&&this.selectedItem&&this.selectedItem.type===this.selectedType?this.selectedSubtype=null!==(e=this.selectedItem.subType)&&void 0!==e?e:null:this.selectedSubtype=null!==(s=(null!==(t=this.subtypes[this.selectedType])&&void 0!==t?t:[])[0])&&void 0!==s?s:null}};n.style=":host{position:fixed;z-index:100000}*{box-sizing:border-box}.container{display:block}.container.is-hidden{display:none}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--rs-color-grey-light);opacity:0.8}.inner{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:724px;background:var(--rs-color-white);border-radius:10px;box-shadow:var(--rs-shadow-popup)}.head{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid var(--rs-color-light)}.head rs-icon{cursor:pointer}.body{display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:24px;padding:24px}.body>*{width:100%}.page{display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:24px}.page>*{width:100%}.link-selector{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:16px}.dropdown{z-index:1}.dropdown.is-primary{flex:1 1 100%}.dropdown.is-subtype{flex:1 1 15%}.buttons{display:flex;justify-content:space-between;align-items:center;gap:8px}.buttons__spacer{flex-grow:1}"}}]); //# sourceMappingURL=835.index.js.map