@nylas/web-elements 2.5.11 → 2.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +6 -3
  2. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +1 -1
  3. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js +3 -3
  4. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js.map +1 -1
  5. package/dist/cjs/google-logo-icon_6.cjs.entry.js +1 -1
  6. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
  7. package/dist/cjs/nylas-scheduling.cjs.entry.js +1 -1
  8. package/dist/cjs/{version-DbvVCdbm.js → version-FXnnI00G.js} +3 -3
  9. package/dist/cjs/{version-DbvVCdbm.js.map → version-FXnnI00G.js.map} +1 -1
  10. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js +3 -3
  11. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js.map +1 -1
  12. package/dist/collection/version.js +1 -1
  13. package/dist/collection/version.js.map +1 -1
  14. package/dist/components/nylas-editor-tabs-group.js +1 -1
  15. package/dist/components/nylas-editor-tabs.js +1 -1
  16. package/dist/components/nylas-page-styling.js +1 -1
  17. package/dist/components/nylas-scheduler-editor.js +4 -4
  18. package/dist/components/nylas-scheduling.js +1 -1
  19. package/dist/components/{p-Bgb7cz6Z.js → p-77cQPnsG.js} +4 -4
  20. package/dist/components/{p-Bgb7cz6Z.js.map → p-77cQPnsG.js.map} +1 -1
  21. package/dist/components/{p-DmOB6JTr.js → p-Cl71OI5D.js} +3 -3
  22. package/dist/components/{p-DmOB6JTr.js.map → p-Cl71OI5D.js.map} +1 -1
  23. package/dist/components/{p-DP3OiAjS.js → p-Cm6e2qUq.js} +4 -4
  24. package/dist/components/{p-DP3OiAjS.js.map → p-Cm6e2qUq.js.map} +1 -1
  25. package/dist/components/{p-B05sg_l1.js → p-DvPuyp-I.js} +5 -5
  26. package/dist/components/p-DvPuyp-I.js.map +1 -0
  27. package/dist/esm/calendar-agenda-fill-icon_39.entry.js +3 -3
  28. package/dist/esm/calendar-agenda-fill-icon_39.entry.js.map +1 -1
  29. package/dist/esm/google-logo-icon_6.entry.js +1 -1
  30. package/dist/esm/nylas-scheduler-editor.entry.js +1 -1
  31. package/dist/esm/nylas-scheduling.entry.js +1 -1
  32. package/dist/esm/{version-BHcQFl5b.js → version-BEjJeakd.js} +3 -3
  33. package/dist/esm/{version-BHcQFl5b.js.map → version-BEjJeakd.js.map} +1 -1
  34. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  35. package/dist/nylas-web-elements/{p-0a7c5cd7.entry.js → p-32e39f3d.entry.js} +2 -2
  36. package/dist/nylas-web-elements/{p-f1942b81.entry.js → p-7c1bc27a.entry.js} +3 -3
  37. package/dist/nylas-web-elements/p-7c1bc27a.entry.js.map +1 -0
  38. package/dist/nylas-web-elements/{p-BHcQFl5b.js → p-BEjJeakd.js} +2 -2
  39. package/dist/nylas-web-elements/{p-BHcQFl5b.js.map → p-BEjJeakd.js.map} +1 -1
  40. package/dist/nylas-web-elements/{p-620804db.entry.js → p-ad0e7f3b.entry.js} +2 -2
  41. package/dist/nylas-web-elements/{p-8a1b1bb7.entry.js → p-fe855b8f.entry.js} +2 -2
  42. package/dist/types/version.d.ts +1 -1
  43. package/package.json +1 -1
  44. package/dist/components/p-B05sg_l1.js.map +0 -1
  45. package/dist/nylas-web-elements/p-f1942b81.entry.js.map +0 -1
  46. /package/dist/nylas-web-elements/{p-0a7c5cd7.entry.js.map → p-32e39f3d.entry.js.map} +0 -0
  47. /package/dist/nylas-web-elements/{p-620804db.entry.js.map → p-ad0e7f3b.entry.js.map} +0 -0
  48. /package/dist/nylas-web-elements/{p-8a1b1bb7.entry.js.map → p-fe855b8f.entry.js.map} +0 -0
@@ -211,8 +211,8 @@ const NylasPageStyling = proxyCustomElement(class NylasPageStyling extends H {
211
211
  const findElement = document?.querySelector(`[slot="custom-page-style-inputs"] [name="${name}"]`);
212
212
  if (findElement)
213
213
  return true;
214
- const shadowElement = this.host.shadowRoot?.querySelector(`[data-page-styling] [name="${name}"], [data-page-styling][name="${name}"]`);
215
- return !!shadowElement;
214
+ const shadowInputs = this.host.shadowRoot?.querySelectorAll('[data-page-styling]') ?? [];
215
+ return Array.from(shadowInputs).some(el => el.name === name || el.getAttribute('name') === name);
216
216
  }
217
217
  async nylasFormInputChangeHandler(event) {
218
218
  const { name, value } = event.detail;
@@ -290,7 +290,7 @@ const NylasPageStyling = proxyCustomElement(class NylasPageStyling extends H {
290
290
  }
291
291
  render() {
292
292
  const showContent = this.customInputsSlot || (!this.hasCustomSlot && !!this.currentAppearance);
293
- return (h(Host, { key: 'ce93f8a170b47e4025dc9b9f976d7478b19f829b' }, h("div", { key: '7349f7a686daf87ed6205203e11eb6070509f36e', part: "nps", class: { 'nylas-page-styling': true, 'no-border': !showContent } }, showContent ? (h("div", { class: "header", part: "nps__header" }, h("div", null, h("h3", null, instance.t('nylasPageStyling.headerTitle'))), h("div", { class: "drawer-toggle", part: "nps__drawer-toggle--container" }, h("span", { class: `chevron ${this.isOpen ? 'open' : 'closed'} `, onClick: () => this.toggleConfirmationEmail() }, h("chevron-icon", { width: "24", height: "24" }))))) : null, h("div", { key: '3143051673a60f6d8f599c489bbfdcfeb224079b', class: "hidden" }, h("input-color-picker", { key: 'b2810fd05ec4eaadc9b2a855db24c31ea8fe8aac', name: "color-picker" })), h("div", { key: '4f63127edb25f1cf26f81f3ce8392bdc35b9051f', id: "nylas-page-styling__body", class: "nylas-page-styling__body", part: "nps__body" }, h("div", { key: '15d7b4435632934794fb2db68243371915ecf901', class: { 'nylas-page-styling__section': true, 'no-padding': !showContent } }, h("div", { key: '6a38e8a555fb599d7ed5d693886094d2bec7117d', class: "nylas-page-styling__row" }, h("div", { key: 'a41daf424157f598f7c8418960cd439b3b102abb', class: { subsection: true, hide: !this.isOpen } }, !this.hasCustomSlot && this.currentAppearance ? this.renderDefaultInputs() : null)))))));
293
+ return (h(Host, { key: '68ff4f23782f0d5fbfa30d006d804663cfd4c7a2' }, h("div", { key: '4db1b16c2a559b759666a18cfc5ce1df427e3120', part: "nps", class: { 'nylas-page-styling': true, 'no-border': !showContent } }, showContent ? (h("div", { class: "header", part: "nps__header" }, h("div", null, h("h3", null, instance.t('nylasPageStyling.headerTitle'))), h("div", { class: "drawer-toggle", part: "nps__drawer-toggle--container" }, h("span", { class: `chevron ${this.isOpen ? 'open' : 'closed'} `, onClick: () => this.toggleConfirmationEmail() }, h("chevron-icon", { width: "24", height: "24" }))))) : null, h("div", { key: 'cbd697408c8794ed3da1a7240cde839c28bd8e71', class: "hidden" }, h("input-color-picker", { key: 'b378ea6f4174ca07ad2f8c363f4dbfb108211a5d', name: "color-picker" })), h("div", { key: '6f210a564f347f40c18516bf4e39475cc48d9f57', id: "nylas-page-styling__body", class: "nylas-page-styling__body", part: "nps__body" }, h("div", { key: '793428c898c430412ebc3474aa01498c11a46842', class: { 'nylas-page-styling__section': true, 'no-padding': !showContent } }, h("div", { key: '18d8e84857d9ca6cb82b055f4218577d9974d0bb', class: "nylas-page-styling__row" }, h("div", { key: '4c17031c6f90a042bfad62c202bc0e9f9704471c', class: { subsection: true, hide: !this.isOpen } }, !this.hasCustomSlot && this.currentAppearance ? this.renderDefaultInputs() : null)))))));
294
294
  }
295
295
  static get formAssociated() { return true; }
296
296
  get host() { return this; }
@@ -389,6 +389,6 @@ function defineCustomElement() {
389
389
  }
390
390
 
391
391
  export { NylasPageStyling as N, defineCustomElement as d };
392
- //# sourceMappingURL=p-B05sg_l1.js.map
392
+ //# sourceMappingURL=p-DvPuyp-I.js.map
393
393
 
394
- //# sourceMappingURL=p-B05sg_l1.js.map
394
+ //# sourceMappingURL=p-DvPuyp-I.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-DvPuyp-I.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-page-styling/nylas-page-styling.scss?tag=nylas-page-styling&encapsulation=shadow","src/components/scheduler-editor/nylas-page-styling/nylas-page-styling.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-page-styling {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n text-align: left;\n\n .hidden {\n display: none;\n }\n\n &.no-border {\n border: none;\n }\n\n .header {\n padding: 1rem;\n display: grid;\n grid-template-columns: 1fr auto;\n border-bottom: 1px solid var(--nylas-base-200);\n\n h3 {\n border-radius: var(--nylas-border-radius-2x);\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n\n .drawer-toggle {\n display: flex;\n gap: 24px;\n align-items: center;\n\n .chevron {\n display: flex;\n align-self: center;\n cursor: pointer;\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n\n &.open {\n transform: rotate(90deg);\n }\n\n &.closed {\n transform: rotate(270deg);\n }\n\n &.disabled {\n cursor: not-allowed;\n color: var(--nylas-base-300);\n\n &:hover {\n color: var(--nylas-base-300);\n }\n }\n }\n }\n }\n\n .nylas-page-styling__body {\n display: grid;\n grid-template-columns: 1fr auto;\n background-color: var(--nylas-base-25);\n border-radius: 0 0 var(--nylas-border-radius-2x);\n\n @media #{$mobile} {\n grid-template-columns: 1fr;\n }\n\n .nylas-page-styling__section {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n color: var(--nylas-base-800);\n\n &.no-padding {\n padding: 0;\n }\n\n @media #{$mobile} {\n border: none;\n }\n\n .nylas-page-styling__row {\n display: grid;\n grid-template-columns: 1fr;\n align-items: center;\n\n label {\n display: flex;\n align-items: center;\n\n span.required {\n color: var(--nylas-error, #cc4841);\n }\n\n span.label-icon {\n margin-left: 4px;\n\n tooltip-component {\n display: flex;\n }\n }\n }\n\n p {\n margin: 0.25rem 0 0 0;\n font-size: 16px;\n font-weight: 500;\n line-height: 24px;\n color: var(--nylas-base-900);\n }\n\n .subsection {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n\n &.hide {\n display: none;\n }\n\n h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n\n .input-container,\n >* {\n display: flex;\n flex-direction: column;\n column-gap: 2rem;\n row-gap: 0.25rem;\n width: 100%;\n flex: 1;\n\n textarea {\n padding: 12px 16px;\n border-width: 1;\n resize: vertical;\n border-radius: 8px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n border: 1px solid var(--nylas-base-200);\n }\n }\n }\n }\n }\n\n span.error-message {\n color: var(--nylas-error);\n }\n\n span.help-text {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n}","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, error, sanitize } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Appearance, Configuration, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-page-styling` component is a UI component that allows users to customize the styling of the scheduling page.\n * To use this component, pass a slot `custom-page-style-inputs` to the `nylas-scheduler-editor` component with the input\n * fields you want to display. The component will automatically update the appearance object when the input fields are changed.\n * Ensure that the input fields have the `name` attribute set to the key in the appearance object.\n *\n * If you want to style the Nylas hosted scheduler page, you can use this component to customize the appearance of the page.\n * The fields that can be customized in the Nylas hosted scheduler page are:\n * - Primary color: (name: color)\n * - Company logo: (name: company_logo_url)\n * - Submit button label: (name: submit_button_label)\n * - Thank you message: (name: thank_you_message)\n *\n * This component cannot be used as an independent component. It must be used within the `nylas-scheduler-editor` component.\n *\n * @slot custom-page-style-inputs - This slot is used to pass a custom page style form to the Nylas Scheduler Editor component.\n * @part nps - The nylas-page-styling container\n * @part nps__header - The header of the page styling section\n * @part nps__drawer-toggle--container - The page styling drawer toggle container\n * @part nps__body - The body of the page styling section\n * @part nps__title-input-textfield - The page styling page title input textfield\n * @part nps__company-name-input-textfield - The page styling company name input textfield\n * @part nps__input-image-url - The page styling company logo input textfield\n * @part nps__color-picker - The page styling color picker\n * @part nps__color-picker-button - The page styling color picker button\n * @part nps__color-picker-button-label - The page styling color input field label *\n * @part nps__color-picker-button-selected-label - The page styling color picker label denoting which color is selected\n * @part nps__submit-button-label-input-textfield - The page styling submut button label input textfield\n * @part nps__message-textarea - The page styling thank you message textarea\n */\n@Component({\n tag: 'nylas-page-styling',\n styleUrl: 'nylas-page-styling.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasPageStyling {\n @Element() host!: HTMLNylasPageStylingElement;\n /**\n * @internal\n * The selected configuration.\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @internal\n * The name of the component\n */\n @Prop() name: string = 'page-styling';\n /**\n * @internal\n * The appearance data to display\n */\n @Prop() appearance?: Appearance;\n /**\n * @internal\n * Is the page styling card open\n */\n @Prop() isOpen: boolean = true;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The confirmation email template state.\n */\n @State() currentAppearance!: Appearance;\n /**\n * The cloned custom slot content provided by consumers.\n */\n @State() customInputsSlot: Element | null = null;\n\n /**\n * Whether a custom slot was provided. When false, default translated inputs are rendered.\n */\n @State() hasCustomSlot: boolean = false;\n\n /**\n * This event is fired when the email reminders change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\n }>;\n\n /**\n * This event is fired when the form is submitted in the parent component.\n */\n @Event() bookingFormSubmitted!: EventEmitter<void>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-page-styling', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {\n debug('nylas-page-styling', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-page-styling', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-page-styling', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n }\n }\n\n componentWillUpdate() {\n debug('nylas-page-styling', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-page-styling', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-page-styling', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-page-styling', 'componentDidRender');\n }\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-page-styling', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n customInputsSlotChangedHandler(newValue: Element | null) {\n debug('nylas-page-styling', 'customInputsSlotChangedHandler', newValue);\n\n const appearance = this.currentAppearance;\n\n function updateInputDefaultValues(element: HTMLElement) {\n // Process elements with a 'name' attribute\n if (element.hasAttribute && element.hasAttribute('name')) {\n const key = element.getAttribute('name');\n if (appearance && key && key in appearance && appearance[key] !== undefined) {\n // Update attributes based on component type\n const componentType = element.getAttribute('component-type');\n\n element.setAttribute('data-page-styling', 'true');\n\n if (componentType === 'checkbox') {\n element.setAttribute('checked', appearance[key]);\n } else if (componentType === 'radio-group') {\n element.setAttribute('default-selected-value', appearance[key]);\n } else if (componentType === 'color-picker') {\n element.setAttribute('default-selected-color', appearance[key]);\n } else if (componentType === 'select-dropdown') {\n const options = element.getAttribute('options');\n const selectedOption = options ? JSON.parse(options).find((option: { value: string }) => option.value === appearance[key]) : null;\n element.setAttribute('default-selected-option', JSON.stringify(selectedOption));\n } else if (componentType === 'image-url') {\n element.setAttribute('image-url', appearance[key]);\n } else {\n // Default case: set the default value\n element.setAttribute('default-value', appearance[key]);\n }\n }\n }\n\n // Recursively process child elements (skip text nodes)\n element.childNodes.forEach(child => {\n if (child.nodeType === Node.ELEMENT_NODE) {\n updateInputDefaultValues(child as HTMLElement); // Cast child to HTMLElement\n }\n });\n }\n\n // Start the recursive process with the cloned element (newValue)\n if (newValue) {\n updateInputDefaultValues(newValue as HTMLElement);\n }\n }\n\n cloneAndCopyProps(element: HTMLElement): HTMLElement {\n // Clone the current element\n const clonedElement = element.cloneNode(false) as HTMLElement; // Do a shallow clone first\n const componentType = element.getAttribute('component-type');\n const key = element.getAttribute('name');\n\n // Copy properties like 'options' and 'value' for custom elements\n if ((element as any).options) {\n const options = (element as any).getAttribute('options');\n debug('page-styling options', element, options);\n if (typeof options === 'string') {\n try {\n const parsedOptions = JSON.parse(options);\n (clonedElement as any).options = parsedOptions; // Parse the 'options' string\n if (componentType === 'select-dropdown' && key && key in this.currentAppearance) {\n const selectedOption = parsedOptions.find((option: { value: string }) => option.value === this.currentAppearance[key]);\n (clonedElement as any).setAttribute('default-selected-option', JSON.stringify(selectedOption));\n }\n } catch (e) {\n error('Error parsing options', e);\n }\n } else {\n (clonedElement as any).options = (element as any).options; // Copy 'options' property\n }\n }\n\n if ((element as any).value) {\n (clonedElement as any).value = (element as any).value; // Copy 'value' property\n }\n\n // Recursively process child elements\n element.childNodes.forEach(child => {\n if (child.nodeType === Node.ELEMENT_NODE) {\n // If the child is an element, recursively clone and process it\n const clonedChild = this.cloneAndCopyProps(child as HTMLElement);\n clonedElement.appendChild(clonedChild); // Append the cloned child to the parent clone\n } else if (child.nodeType === Node.TEXT_NODE) {\n // For text nodes, just clone and append the text content\n clonedElement.appendChild(child.cloneNode(true));\n }\n });\n\n return clonedElement; // Return the cloned element with its children\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newValue: Configuration) {\n debug('nylas-page-styling', 'selectedConfigurationChangedHandler', newValue);\n this.currentAppearance = newValue?.appearance || {};\n // Register the loaded appearance with the form so it is included on submit. The form\n // value was previously only set on user input, so loading/reloading a configuration\n // (initial mount, tab switch, parent re-broadcast) left appearance unregistered and the\n // save sent `appearance: null` — dropping the thank-you message and other page-styling\n // fields. Done before the slot early-returns below so it always runs. (CUST-5437)\n if (typeof this.internals?.setFormValue === 'function') {\n this.internals.setFormValue(JSON.stringify(this.currentAppearance), this.name);\n }\n // Get the slot element\n const editor = document.querySelector('nylas-scheduler-editor');\n const slotElement = editor?.shadowRoot?.querySelector('slot[name=\"custom-page-style-inputs\"]') as HTMLSlotElement;\n if (!slotElement) {\n this.hasCustomSlot = false;\n return;\n }\n\n // Get the slotted content (the nodes passed into the slot)\n const slottedElements = slotElement?.assignedElements({ flatten: true });\n\n if (!slottedElements || slottedElements.length === 0) {\n this.hasCustomSlot = false;\n return;\n }\n\n this.hasCustomSlot = true;\n\n const divElement = document.createElement('div');\n\n // Clone each of the slotted nodes and append them to the cloned slot\n slottedElements?.forEach(element => {\n const clonedElement = this.cloneAndCopyProps(element as HTMLElement); // Clone recursively and copy properties\n\n // Clone the slotted element (deep clone)\n this.customInputsSlotChangedHandler(clonedElement);\n // Append the cloned element to the document fragment\n divElement.appendChild(clonedElement);\n });\n\n // Replace the original content with the new cloned and updated content\n const bodyElement = this.host.shadowRoot?.querySelector('.nylas-page-styling');\n const slotContainer = bodyElement?.querySelector('.nylas-page-styling__body .subsection');\n\n if (slotContainer) {\n // Remove existing children (if necessary) and append the new content\n slotContainer.innerHTML = ''; // Clear existing content\n divElement.childNodes.forEach(child => {\n slotContainer.appendChild(child); // Append each child of divElement\n });\n this.customInputsSlot = divElement;\n }\n }\n\n checkIfElementIsInSlot(name: string): boolean {\n // Custom slotted inputs (light DOM): embedders set `name` as an HTML attribute.\n const findElement = document?.querySelector(`[slot=\"custom-page-style-inputs\"] [name=\"${name}\"]`);\n if (findElement) return true;\n // Default inputs (shadow DOM): the design-system inputs receive `name` as a Stencil\n // @Prop that is NOT reflected to an HTML attribute, so an attribute selector (`[name=...]`)\n // never matches them. Match the data-page-styling inputs by their `name` property (falling\n // back to the attribute for any input that does reflect it). (CUST-5437)\n const shadowInputs = this.host.shadowRoot?.querySelectorAll('[data-page-styling]') ?? [];\n return Array.from(shadowInputs).some(el => (el as { name?: string }).name === name || el.getAttribute('name') === name);\n }\n\n @Listen('nylasFormInputChanged', { target: 'document' })\n async nylasFormInputChangeHandler(event: CustomEvent<{ value: string; name: string; type?: string }>) {\n const { name, value } = event.detail;\n const type = event.detail?.type;\n\n if (!this.checkIfElementIsInSlot(name)) {\n return;\n }\n switch (name) {\n case 'submit_button_label':\n this.currentAppearance = { ...this.currentAppearance, submit_button_label: value };\n break;\n case 'thank_you_message':\n if (type === 'multi_line_text') {\n const value = sanitize(event.detail.value);\n this.currentAppearance = { ...this.currentAppearance, thank_you_message: value };\n }\n break;\n default:\n this.currentAppearance = { ...this.currentAppearance, [name]: value };\n break;\n }\n this.updateConfirmationFormValue();\n }\n\n @Listen('nylasFormDropdownChanged', { target: 'document' })\n nylasFormDropdownChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-page-styling', 'nylasFormDropdownChangedHandler', event.detail);\n const { value, name } = event.detail;\n\n if (!this.checkIfElementIsInSlot(name)) {\n return;\n }\n if (name === 'color') {\n this.currentAppearance = { ...this.currentAppearance, color: value };\n } else {\n this.currentAppearance = { ...this.currentAppearance, [name]: value };\n }\n this.updateConfirmationFormValue();\n }\n\n @Listen('valueChanged', { target: 'document' })\n valueChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-page-styling', 'valueChangedHandler', event.detail);\n const { value, name } = event.detail;\n\n if (!this.checkIfElementIsInSlot(name)) {\n return;\n }\n this.currentAppearance = { ...this.currentAppearance, [name]: value };\n this.updateConfirmationFormValue(false);\n }\n\n @Listen('nylasFormCheckboxToggled', { target: 'document' })\n checkboxToggledHandler(event: CustomEvent<{ checked: boolean; name: string; label: string }>) {\n const { checked, name } = event.detail;\n if (!this.checkIfElementIsInSlot(name)) {\n return;\n }\n this.currentAppearance = { ...this.currentAppearance, [name]: checked };\n this.updateConfirmationFormValue();\n }\n\n @Listen('nylasFormRadioChanged', { target: 'document' })\n radioChangedHandler(event: CustomEvent<{ value: string; name: string; label: string; type: string }>) {\n const { value, name } = event.detail;\n if (!this.checkIfElementIsInSlot(name)) {\n return;\n }\n this.currentAppearance = { ...this.currentAppearance, [name]: value };\n this.updateConfirmationFormValue();\n }\n\n updateConfirmationFormValue(valueChanged: boolean = true) {\n debug('nylas-page-styling', 'updateConfirmationFormValue');\n this.internals.setFormValue(JSON.stringify(this.currentAppearance), this.name);\n if (valueChanged) {\n this.valueChanged.emit({ value: JSON.stringify(this.currentAppearance), name: this.name });\n }\n }\n\n toggleConfirmationEmail() {\n this.isOpen = !this.isOpen;\n }\n\n renderDefaultInputs() {\n return (\n <div>\n <div>\n <label part=\"nps__input-image-url\">{i18next.t('nylasPageStyling.companyLogoUrl')}</label>\n <input-image-url name=\"company_logo_url\" image-url={this.currentAppearance?.company_logo_url} data-page-styling=\"true\" />\n </div>\n <div>\n <label part=\"nps__color-picker-button-label\">{i18next.t('nylasPageStyling.primaryColor')}</label>\n <div>\n <div class=\"color-picker-container\">\n <input-color-picker name=\"color\" default-selected-color={this.currentAppearance?.color} data-page-styling=\"true\" />\n </div>\n </div>\n </div>\n <div>\n <label part=\"nps__submit-button-label-input-textfield\">{i18next.t('nylasPageStyling.submitButtonLabel')}</label>\n <div>\n <input-component name=\"submit_button_label\" type=\"text\" default-value={this.currentAppearance?.submit_button_label} data-page-styling=\"true\" />\n </div>\n </div>\n <div>\n <label part=\"nps__message-textarea\">{i18next.t('nylasPageStyling.thankYouMessage')}</label>\n <div>\n <textarea-component\n name=\"thank_you_message\"\n placeholder={i18next.t('nylasPageStyling.thankYouMessagePlaceholder')}\n default-value={this.currentAppearance?.thank_you_message}\n maxLength={500}\n data-page-styling=\"true\"\n />\n </div>\n </div>\n </div>\n );\n }\n\n @RegisterComponent<NylasPageStyling, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-page-styling',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string; name: string; valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChanged } = event.detail;\n // If a handler is passed, call it.\n if (valueChanged) {\n valueChanged(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const showContent = this.customInputsSlot || (!this.hasCustomSlot && !!this.currentAppearance);\n\n return (\n <Host>\n <div part=\"nps\" class={{ 'nylas-page-styling': true, 'no-border': !showContent }}>\n {showContent ? (\n <div class=\"header\" part=\"nps__header\">\n <div>\n <h3>{i18next.t('nylasPageStyling.headerTitle')}</h3>\n </div>\n <div class=\"drawer-toggle\" part=\"nps__drawer-toggle--container\">\n <span class={`chevron ${this.isOpen ? 'open' : 'closed'} `} onClick={() => this.toggleConfirmationEmail()}>\n <chevron-icon width=\"24\" height=\"24\" />\n </span>\n </div>\n </div>\n ) : null}\n <div class=\"hidden\">\n <input-color-picker name=\"color-picker\" />\n </div>\n <div id=\"nylas-page-styling__body\" class=\"nylas-page-styling__body\" part=\"nps__body\">\n <div class={{ 'nylas-page-styling__section': true, 'no-padding': !showContent }}>\n <div class=\"nylas-page-styling__row\">\n <div class={{ subsection: true, hide: !this.isOpen }}>{!this.hasCustomSlot && this.currentAppearance ? this.renderDefaultInputs() : null}</div>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -7642,8 +7642,8 @@ const NylasPageStyling = class {
7642
7642
  const findElement = document?.querySelector(`[slot="custom-page-style-inputs"] [name="${name}"]`);
7643
7643
  if (findElement)
7644
7644
  return true;
7645
- const shadowElement = this.host.shadowRoot?.querySelector(`[data-page-styling] [name="${name}"], [data-page-styling][name="${name}"]`);
7646
- return !!shadowElement;
7645
+ const shadowInputs = this.host.shadowRoot?.querySelectorAll('[data-page-styling]') ?? [];
7646
+ return Array.from(shadowInputs).some(el => el.name === name || el.getAttribute('name') === name);
7647
7647
  }
7648
7648
  async nylasFormInputChangeHandler(event) {
7649
7649
  const { name, value } = event.detail;
@@ -7721,7 +7721,7 @@ const NylasPageStyling = class {
7721
7721
  }
7722
7722
  render() {
7723
7723
  const showContent = this.customInputsSlot || (!this.hasCustomSlot && !!this.currentAppearance);
7724
- return (h(Host, { key: 'ce93f8a170b47e4025dc9b9f976d7478b19f829b' }, h("div", { key: '7349f7a686daf87ed6205203e11eb6070509f36e', part: "nps", class: { 'nylas-page-styling': true, 'no-border': !showContent } }, showContent ? (h("div", { class: "header", part: "nps__header" }, h("div", null, h("h3", null, instance.t('nylasPageStyling.headerTitle'))), h("div", { class: "drawer-toggle", part: "nps__drawer-toggle--container" }, h("span", { class: `chevron ${this.isOpen ? 'open' : 'closed'} `, onClick: () => this.toggleConfirmationEmail() }, h("chevron-icon", { width: "24", height: "24" }))))) : null, h("div", { key: '3143051673a60f6d8f599c489bbfdcfeb224079b', class: "hidden" }, h("input-color-picker", { key: 'b2810fd05ec4eaadc9b2a855db24c31ea8fe8aac', name: "color-picker" })), h("div", { key: '4f63127edb25f1cf26f81f3ce8392bdc35b9051f', id: "nylas-page-styling__body", class: "nylas-page-styling__body", part: "nps__body" }, h("div", { key: '15d7b4435632934794fb2db68243371915ecf901', class: { 'nylas-page-styling__section': true, 'no-padding': !showContent } }, h("div", { key: '6a38e8a555fb599d7ed5d693886094d2bec7117d', class: "nylas-page-styling__row" }, h("div", { key: 'a41daf424157f598f7c8418960cd439b3b102abb', class: { subsection: true, hide: !this.isOpen } }, !this.hasCustomSlot && this.currentAppearance ? this.renderDefaultInputs() : null)))))));
7724
+ return (h(Host, { key: '68ff4f23782f0d5fbfa30d006d804663cfd4c7a2' }, h("div", { key: '4db1b16c2a559b759666a18cfc5ce1df427e3120', part: "nps", class: { 'nylas-page-styling': true, 'no-border': !showContent } }, showContent ? (h("div", { class: "header", part: "nps__header" }, h("div", null, h("h3", null, instance.t('nylasPageStyling.headerTitle'))), h("div", { class: "drawer-toggle", part: "nps__drawer-toggle--container" }, h("span", { class: `chevron ${this.isOpen ? 'open' : 'closed'} `, onClick: () => this.toggleConfirmationEmail() }, h("chevron-icon", { width: "24", height: "24" }))))) : null, h("div", { key: 'cbd697408c8794ed3da1a7240cde839c28bd8e71', class: "hidden" }, h("input-color-picker", { key: 'b378ea6f4174ca07ad2f8c363f4dbfb108211a5d', name: "color-picker" })), h("div", { key: '6f210a564f347f40c18516bf4e39475cc48d9f57', id: "nylas-page-styling__body", class: "nylas-page-styling__body", part: "nps__body" }, h("div", { key: '793428c898c430412ebc3474aa01498c11a46842', class: { 'nylas-page-styling__section': true, 'no-padding': !showContent } }, h("div", { key: '18d8e84857d9ca6cb82b055f4218577d9974d0bb', class: "nylas-page-styling__row" }, h("div", { key: '4c17031c6f90a042bfad62c202bc0e9f9704471c', class: { subsection: true, hide: !this.isOpen } }, !this.hasCustomSlot && this.currentAppearance ? this.renderDefaultInputs() : null)))))));
7725
7725
  }
7726
7726
  static get formAssociated() { return true; }
7727
7727
  get host() { return getElement(this); }