{"version":3,"file":"controller-c9c5169b.js","sources":["../../../app/components/admin/dashboard/index_view/controller.ts","../../../app/components/admin/dashboard/index_view/multiselect_controller.ts","../../../app/components/admin/dashboard/index_view/multiselect_toolbar_controller.ts","../../../app/components/admin/dashboard/show_view/changes_controller.ts","../../../app/components/admin/dashboard/show_view/tabs_controller.ts","../../../app/frontend/lib/toggleDisabledField.ts","../../../app/components/admin/newsletter_subscriptions/newsletter_preferences_field/controller.ts","../../../app/components/admin/sidebar/brand_selector/controller.ts","../../../app/components/admin/sidebar/controller.ts","../../../app/components/admin/user_attributable_field/bac_field_required_controller.ts","../../../app/components/admin/user_attributable_field/controller.ts"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\nimport { Target, TypedController, Value } from \"@vytant/stimulus-decorators\";\nimport type { TurboFrame } from \"~/types\";\n\n@TypedController\nexport default class extends Controller {\n @Target overlayTarget: HTMLDivElement;\n\n @Target drawerTarget: HTMLDivElement;\n @Target loadingTarget: HTMLDivElement;\n\n @Target titleTarget: HTMLDivElement;\n @Target linkTarget: HTMLAnchorElement;\n @Target linkOldTarget: HTMLAnchorElement;\n\n @Value(String) readonly modelPathValue!: string;\n\n connect() {\n document.addEventListener(\"keydown\", (event) => {\n if (event.key === \"Escape\") {\n this.closeShedit();\n }\n });\n }\n\n openShedit(event: any) {\n const target = event.target instanceof HTMLSpanElement ? event.target.parentElement : event.target;\n const id = target?.dataset.id;\n if (!id) {\n return;\n }\n\n // start loading, hide frame and show loader\n this.titleTarget.textContent = target?.dataset.title || \"[No title]\";\n this.frameTarget.dataset.id = id;\n this.frameTarget.classList.add(\"hidden\");\n this.loadingTarget.classList.remove(\"hidden\");\n this.frameTarget.src = `/dashboard/${this.modelPathValue}/${id}?frame=true`;\n this.drawerTarget.classList.remove(\"hidden\");\n\n // update URLs\n const tmpUrl = new URL(window.location.href);\n tmpUrl.searchParams.set(\"id\", id);\n window.history.replaceState(null, \"\", tmpUrl.toString());\n this.linkTarget.href = `/dashboard/${this.modelPathValue}/${id}`;\n this.linkOldTarget.href = `/admin/${this.modelPathValue}/${id}`;\n\n // on load remove loader and show frame\n this.frameTarget.loaded.then(() => {\n this.frameTarget.classList.remove(\"hidden\");\n this.loadingTarget.classList.add(\"hidden\");\n });\n\n this.overlayTarget.classList.remove(\"hidden\");\n }\n\n closeShedit() {\n this.drawerTarget.classList.add(\"hidden\");\n\n const tmpUrl = new URL(window.location.href);\n tmpUrl.searchParams.delete(\"id\");\n tmpUrl.searchParams.delete(\"tab\");\n tmpUrl.searchParams.delete(\"history_page\");\n tmpUrl.searchParams.delete(\"history_per_page\");\n\n window.history.replaceState(null, \"\", tmpUrl.toString());\n\n this.overlayTarget.classList.add(\"hidden\");\n }\n\n private get frameTarget() {\n return this.element.querySelector(\"#shedit-frame\")!;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { Target, TypedController } from \"@vytant/stimulus-decorators\";\n\nimport type MultiselectToolbarController from \"./multiselect_toolbar_controller\";\n\n@TypedController\nexport default class extends Controller {\n @Target readonly selectAllTarget!: HTMLInputElement;\n\n private lastSelectedIndex: number | null = null;\n\n static outlets = [\"admin--dashboard--index-view--multiselect-toolbar\"];\n private declare readonly adminDashboardIndexViewMultiselectToolbarOutlets: MultiselectToolbarController[];\n\n connect() {\n this.selectAllTarget.addEventListener(\"input\", () => {\n this.all().forEach((checkbox) => {\n checkbox.checked = this.selectAllTarget.checked;\n });\n\n this.update();\n });\n\n this.element.querySelectorAll('tr > td:first-child input[type=\"checkbox\"]').forEach((checkbox, index) => {\n checkbox.addEventListener(\"click\", (event: MouseEvent) => {\n if (event.shiftKey) {\n const start = this.lastSelectedIndex ?? index;\n const end = index;\n\n this.all().forEach((checkbox, index) => {\n if (index >= start && index <= end) {\n checkbox.checked = true;\n }\n });\n }\n\n this.lastSelectedIndex = index;\n this.update();\n });\n });\n }\n\n private update() {\n const checkedCount = this.all(true).length;\n const totalCount = this.all().length;\n\n this.selectAllTarget.checked = checkedCount === totalCount;\n if (checkedCount === 0) {\n this.toolbar.hide();\n } else {\n this.toolbar.show();\n }\n\n this.toolbar.countTarget.textContent = checkedCount.toString();\n }\n\n private pagyData() {\n try {\n return JSON.parse(this.element.parentElement!.querySelector(\"#view-data\")!.textContent!);\n } catch {\n return {};\n }\n }\n\n private all(checked = false) {\n return this.element.querySelectorAll(`tr > td:first-child input[type=\"checkbox\"]${checked ? \":checked\" : \"\"}`);\n }\n\n private get toolbar() {\n return this.adminDashboardIndexViewMultiselectToolbarOutlets[0]!;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { Target, TypedController } from \"@vytant/stimulus-decorators\";\n\n@TypedController\nexport default class extends Controller {\n @Target readonly countTarget!: HTMLSpanElement;\n\n public hide() {\n this.element.classList.add(\"hidden\");\n }\n\n public show() {\n this.element.classList.remove(\"hidden\");\n }\n\n selectAll() {\n const elem = document.querySelector(\"input[type='checkbox'][name='select_all']\")!;\n elem.checked = true;\n elem.dispatchEvent(new Event(\"input\"));\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { Target, TypedController } from \"@vytant/stimulus-decorators\";\n\n@TypedController\nexport default class extends Controller {\n @Target formTarget!: HTMLFormElement;\n\n private changes: Record = {};\n\n connect() {\n this.formTarget.querySelectorAll(\"input,select,textarea\").forEach((el: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement) => {\n el.addEventListener(\"input\", (e) => {\n if (el.dataset.initial !== el.value) {\n this.changes[el.name] = el.value;\n } else {\n delete this.changes[el.name];\n }\n\n this.updateFooter();\n });\n });\n }\n\n submit() {\n this.formTarget.requestSubmit();\n }\n\n reset() {\n this.changes = {};\n this.updateFooter();\n }\n\n private updateFooter() {\n if (Object.keys(this.changes).length > 0) {\n this.formTarget.dataset.changes = \"true\";\n } else {\n this.formTarget.dataset.changes = \"false\";\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { TypedController } from \"@vytant/stimulus-decorators\";\n\n@TypedController\nexport default class extends Controller {\n connect() {\n this.element.querySelectorAll(\"#tabs input\").forEach((input) => {\n input.addEventListener(\"change\", this.changeTab);\n });\n }\n\n changeTab(event: MouseEvent) {\n // @ts-ignore\n const tab = event.target?.value;\n if (!tab) return;\n\n const url = new URL(window.location.href);\n url.searchParams.set(\"tab\", tab);\n\n window.history.replaceState(null, \"\", url.toString());\n\n const openLink = document.querySelector('[data-admin--dashboard--index-view-target=\"link\"]');\n if (openLink) {\n const tmp = new URL(openLink.href);\n tmp.searchParams.set(\"tab\", tab);\n openLink.href = tmp.toString();\n }\n }\n}\n","/** Disable or enable a field (form=none, disable=true, required=nil) */\nexport const toggleDisableField = (\n field: HTMLInputElement | HTMLSelectElement,\n enabled: boolean,\n config: Partial<{\n required: boolean;\n disabledRemoveClasses: string[];\n disabledAddClasses: string[];\n }> = {},\n) => {\n if (enabled) {\n field.removeAttribute(\"form\");\n config.required && field.setAttribute(\"required\", \"required\");\n field.removeAttribute(\"disabled\");\n\n if (config.required) {\n field.classList.remove(\"optional\");\n field.classList.add(\"required\");\n }\n\n config.disabledAddClasses?.forEach((className) => field.classList.remove(className));\n config.disabledRemoveClasses?.forEach((className) => field.classList.add(className));\n } else {\n field.setAttribute(\"form\", \"none\");\n field.removeAttribute(\"required\");\n field.setAttribute(\"disabled\", \"disabled\");\n\n field.classList.add(\"optional\");\n field.classList.remove(\"required\");\n\n config.disabledAddClasses?.forEach((className) => field.classList.add(className));\n config.disabledRemoveClasses?.forEach((className) => field.classList.remove(className));\n }\n};\n","import { Targets, TypedController } from \"@vytant/stimulus-decorators\";\nimport { Controller } from \"stimulus\";\nimport { toggleDisableField } from \"~/lib/toggleDisabledField\";\n\n@TypedController\nexport default class extends Controller {\n @Targets readonly selectContainerTargets: HTMLDivElement[];\n\n connect() {\n if (!this.newsletterSelectField) {\n this.element.innerHTML = '

Error loading newsletter

';\n return;\n }\n\n this.newsletterSelectField.addEventListener(\"change\", this.handleChange.bind(this));\n }\n\n handleChange(event: Event) {\n const newNewsletterId = (event.target as HTMLSelectElement).value;\n if (!newNewsletterId) {\n return;\n }\n\n this.selectContainerTargets.forEach((container) => {\n const select = container.querySelector<\"select\">(\"select\");\n const enabled = container.dataset.newsletterId === newNewsletterId;\n\n container.classList[enabled ? \"remove\" : \"add\"](\"tw-hidden\");\n select && toggleDisableField(select, enabled);\n });\n }\n\n get newsletterSelectField() {\n return document.querySelector(\"select#newsletter_subscription_newsletter_id\") as HTMLSelectElement;\n }\n}\n","import { TypedController } from \"@vytant/stimulus-decorators\";\nimport { Controller } from \"stimulus\";\n\n@TypedController\nexport default class AdminSidebarBrandSelectorController extends Controller {\n connect() {\n this.element.addEventListener(\"change\", (event) => {\n // @ts-ignore\n window.location.href = event.target.value;\n });\n }\n}\n","import { Target, TypedController } from \"@vytant/stimulus-decorators\";\nimport { Controller } from \"stimulus\";\n\n@TypedController\nexport default class AdminSidebarController extends Controller {\n @Target sidebarTarget: HTMLDivElement;\n\n toggleSidebar() {\n this.sidebarTarget.dataset.ui = this.sidebarTarget.dataset.ui?.includes(\"open\") ? \"\" : \"open\";\n }\n}\n","// For those wondering... BAC stands for BrandAuthConfig 😜\n\nimport { Target, TypedController, Value } from \"@vytant/stimulus-decorators\";\nimport { Controller } from \"stimulus\";\n\n@TypedController\nexport default class extends Controller {\n @Target readonly customAttributeTarget!: HTMLInputElement;\n\n @Value(String) readonly listValue!: string;\n private requiredCheckbox: HTMLInputElement;\n private customAttributeType: HTMLSelectElement;\n private canBeRequiredList: number[] = [];\n\n connect() {\n this.requiredCheckbox = document.querySelector(\"#brand_auth_config_query_field_required\")!;\n this.customAttributeType = document.querySelector(\"#attribute_type\")!;\n\n if (this.requiredCheckbox && this.customAttributeType) {\n this.canBeRequiredList = JSON.parse(this.listValue);\n\n this.onCustomAttributeChange({ target: { value: this.customAttributeTarget.value } });\n this.customAttributeTarget.addEventListener(\"change\", this.onCustomAttributeChange);\n }\n }\n\n private onCustomAttributeChange = (event: any) => {\n if (this.customAttributeType.value === \"user_attribute\") {\n this.requiredCheckbox.disabled = false;\n return;\n }\n\n const canBeRequired = this.canBeRequiredList.includes(Number(event.target.value));\n if (canBeRequired) {\n this.requiredCheckbox.disabled = false;\n } else {\n this.requiredCheckbox.disabled = true;\n this.requiredCheckbox.checked = false;\n }\n };\n}\n","import { Target, TypedController } from \"@vytant/stimulus-decorators\";\nimport { Controller } from \"stimulus\";\nimport { toggleDisableField } from \"~/lib/toggleDisabledField\";\n\n@TypedController\nexport default class extends Controller {\n @Target readonly userAttributeTarget!: HTMLInputElement;\n @Target readonly userAttributeDisableCustomTarget!: HTMLInputElement;\n\n @Target readonly customAttributeTarget!: HTMLInputElement;\n @Target readonly customAttributeDisableNameTarget!: HTMLInputElement;\n\n on_change(event: Event) {\n const target = event.target as HTMLInputElement;\n this.disable_fields(target.value as any);\n }\n\n private disable_fields(target: \"user_attribute\" | \"custom_attribute\") {\n const user = target === \"user_attribute\";\n\n this.disableField(this.userAttributeTarget, !user);\n this.disableField(this.userAttributeDisableCustomTarget, !user, false);\n\n this.disableField(this.customAttributeTarget, user);\n this.disableField(this.customAttributeDisableNameTarget, user, false);\n }\n\n private disableField(field: HTMLInputElement, disable: boolean, required = true) {\n toggleDisableField(field, !disable, {\n required,\n disabledAddClasses: [\"tw-hidden\"],\n });\n }\n}\n"],"names":["controller_default","Controller","__publicField","event","target","id","tmpUrl","__decorateClass","Target","Value","TypedController","multiselect_controller_default","checkbox","index","start","end","checkedCount","totalCount","checked","multiselect_toolbar_controller_default","elem","changes_controller_default","el","e","tabs_controller_default","input","tab","_a","url","openLink","tmp","toggleDisableField","field","enabled","config","className","_b","_c","_d","newNewsletterId","container","select","Targets","AdminSidebarBrandSelectorController","AdminSidebarController","bac_field_required_controller_default","user","disable","required"],"mappings":"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"}