add csp
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
this.querySelector('form').addEventListener('submit', () => {
|
||||
window.app_tour.start()
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
const input = this.querySelector('input')
|
||||
const invalidMessage = this.dataset.invalidMessage || ''
|
||||
|
||||
input.addEventListener('invalid', () => {
|
||||
input.setCustomValidity(input.value ? invalidMessage : '')
|
||||
})
|
||||
|
||||
input.addEventListener('input', () => {
|
||||
input.setCustomValidity('')
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
const eventType = this.dataset.on || 'click'
|
||||
const selector = document.getElementById(this.dataset.selectorId) || this
|
||||
const eventElement = eventType === 'submit' ? this.querySelector('form') : this
|
||||
|
||||
eventElement.addEventListener(eventType, (event) => {
|
||||
if (eventType === 'click') {
|
||||
event.preventDefault()
|
||||
}
|
||||
|
||||
selector.remove()
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
this.querySelectorAll('input[type="radio"]').forEach(radio => {
|
||||
radio.addEventListener('change', (event) => {
|
||||
const rating = parseInt(event.target.value)
|
||||
|
||||
if (rating === 10) {
|
||||
window.review_comment.value = ''
|
||||
window.review_comment.classList.add('hidden')
|
||||
window.review_submit.classList.add('hidden')
|
||||
event.target.form.submit()
|
||||
} else {
|
||||
window.review_comment.classList.remove('hidden')
|
||||
window.review_submit.classList.remove('hidden')
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
this.selector = document.getElementById(this.dataset.selectorId)
|
||||
|
||||
this.addEventListener('click', () => {
|
||||
this.selector.scrollIntoView({ behavior: 'smooth', block: 'start' })
|
||||
history.replaceState(null, null, `#${this.dataset.selectorId}`)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,16 @@ export default class extends HTMLElement {
|
||||
this.input.classList.remove('w-60')
|
||||
}
|
||||
})
|
||||
|
||||
this.button.addEventListener('click', (event) => {
|
||||
event.preventDefault()
|
||||
|
||||
if (this.input.value || document.activeElement === this.input) {
|
||||
return
|
||||
}
|
||||
|
||||
this.input.focus()
|
||||
})
|
||||
}
|
||||
|
||||
get input () {
|
||||
@@ -22,4 +32,8 @@ export default class extends HTMLElement {
|
||||
get title () {
|
||||
return document.querySelector(this.dataset.title)
|
||||
}
|
||||
|
||||
get button () {
|
||||
return this.querySelector('button')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
const input = this.dataset.inputId ? document.getElementById(this.dataset.inputId) : this.querySelector('input')
|
||||
|
||||
this.firstElementChild.addEventListener(this.dataset.on || 'click', () => {
|
||||
if (this.dataset.emptyOnly !== 'true' || !input.value) {
|
||||
input.value = this.dataset.value
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
this.addEventListener('change', (event) => {
|
||||
const targetValue = this.dataset.value
|
||||
const selectorId = this.dataset.selectorId
|
||||
const targetElement = document.getElementById(selectorId)
|
||||
|
||||
if (event.target.value === targetValue) {
|
||||
targetElement.classList.remove('hidden')
|
||||
} else {
|
||||
targetElement.classList.add('hidden')
|
||||
targetElement.value = ''
|
||||
event.target.form.requestSubmit()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,27 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
const form = this.querySelector('form') || (this.querySelector('input, button, select') || this.lastElementChild).form
|
||||
|
||||
if (this.dataset.interval) {
|
||||
this.interval = setInterval(() => {
|
||||
this.querySelector('form').requestSubmit()
|
||||
form.requestSubmit()
|
||||
}, parseInt(this.dataset.interval))
|
||||
} else if (this.dataset.on) {
|
||||
this.lastElementChild.addEventListener(this.dataset.on, () => {
|
||||
this.lastElementChild.form.requestSubmit()
|
||||
this.lastElementChild.addEventListener(this.dataset.on, (event) => {
|
||||
if (this.dataset.disable === 'true') {
|
||||
form.querySelector('[type="submit"]')?.setAttribute('disabled', true)
|
||||
}
|
||||
|
||||
if (this.dataset.submitIfValue === 'true') {
|
||||
if (event.target.value) {
|
||||
form.requestSubmit()
|
||||
}
|
||||
} else {
|
||||
form.requestSubmit()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.querySelector('form').requestSubmit()
|
||||
form.requestSubmit()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
export default class extends HTMLElement {
|
||||
connectedCallback () {
|
||||
const button = this.querySelector('a, button')
|
||||
|
||||
button.addEventListener('click', () => {
|
||||
this.dataset.classes.split(' ').forEach((cls) => {
|
||||
button.classList.toggle(cls)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -4,9 +4,15 @@ export default actionable(class extends HTMLElement {
|
||||
trigger (event) {
|
||||
const elementIds = JSON.parse(this.dataset.elementIds)
|
||||
|
||||
elementIds.forEach((elementId) => {
|
||||
document.getElementById(elementId).classList.toggle('hidden', (event.target.dataset.toggleId || event.target.value) !== elementId)
|
||||
})
|
||||
if (event.target.type === 'checkbox') {
|
||||
elementIds.forEach((elementId) => {
|
||||
document.getElementById(elementId)?.classList.toggle('hidden')
|
||||
})
|
||||
} else {
|
||||
elementIds.forEach((elementId) => {
|
||||
document.getElementById(elementId).classList.toggle('hidden', (event.target.dataset.toggleId || event.target.value) !== elementId)
|
||||
})
|
||||
}
|
||||
|
||||
if (this.dataset.focusId) {
|
||||
document.getElementById(this.dataset.focusId)?.focus()
|
||||
|
||||
Reference in New Issue
Block a user