legalesign-document-viewer 1.0.4 → 1.0.6

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 (137) hide show
  1. package/dist/cjs/{editorUtils-CRCLbYrX.js → editorUtils-CskM29uR.js} +3 -3
  2. package/dist/cjs/{editorUtils-CRCLbYrX.js.map → editorUtils-CskM29uR.js.map} +1 -1
  3. package/dist/cjs/{history-BBZQuObJ.js → history-C8Dy_82r.js} +16 -2
  4. package/dist/{esm/history-xqZBqrca.js.map → cjs/history-C8Dy_82r.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/ls-add-new-button_20.cjs.entry.js +2 -2
  7. package/dist/cjs/ls-assignee-select_21.cjs.entry.js +16 -31
  8. package/dist/cjs/ls-compose-loader_7.cjs.entry.js +14 -12
  9. package/dist/cjs/ls-document-viewer.cjs.entry.js +55 -9
  10. package/dist/cjs/ls-document-viewer.cjs.js +1 -1
  11. package/dist/cjs/ls-field-alignment_3.cjs.entry.js +3 -3
  12. package/dist/cjs/ls-field-format_2.cjs.entry.js +10 -10
  13. package/dist/cjs/{mouseHandlers-BvqJ2tsu.js → mouseHandlers-DvI94o4n.js} +4 -4
  14. package/dist/cjs/{mouseHandlers-BvqJ2tsu.js.map → mouseHandlers-DvI94o4n.js.map} +1 -1
  15. package/dist/collection/components/ls-document-viewer/history.js +1 -0
  16. package/dist/collection/components/ls-document-viewer/history.js.map +1 -1
  17. package/dist/collection/components/ls-document-viewer/keyHandlers.js +2 -3
  18. package/dist/collection/components/ls-document-viewer/keyHandlers.js.map +1 -1
  19. package/dist/collection/components/ls-document-viewer/ls-document-viewer.js +53 -4
  20. package/dist/collection/components/ls-document-viewer/ls-document-viewer.js.map +1 -1
  21. package/dist/collection/components/ls-editor-field/ls-editor-field.js +9 -18
  22. package/dist/collection/components/ls-editor-field/ls-editor-field.js.map +1 -1
  23. package/dist/collection/components/ls-field-content/ls-field-content.js +5 -11
  24. package/dist/collection/components/ls-field-content/ls-field-content.js.map +1 -1
  25. package/dist/collection/components/ls-field-format/ls-field-format.js +10 -10
  26. package/dist/collection/components/ls-field-format/ls-field-format.js.map +1 -1
  27. package/dist/collection/components/ls-statusbar/ls-statusbar.js +52 -10
  28. package/dist/collection/components/ls-statusbar/ls-statusbar.js.map +1 -1
  29. package/dist/components/ls-document-viewer.js +71 -24
  30. package/dist/components/ls-document-viewer.js.map +1 -1
  31. package/dist/components/ls-editor-field.js +1 -1
  32. package/dist/components/ls-field-content.js +1 -1
  33. package/dist/components/ls-field-distribute.js +1 -1
  34. package/dist/components/ls-field-format.js +1 -1
  35. package/dist/components/ls-field-properties-checkbox.js +1 -1
  36. package/dist/components/ls-field-properties-date.js +1 -1
  37. package/dist/components/ls-field-properties-dropdown.js +2 -2
  38. package/dist/components/ls-field-properties-email.js +1 -1
  39. package/dist/components/ls-field-properties-file.js +1 -1
  40. package/dist/components/ls-field-properties-general.js +1 -1
  41. package/dist/components/ls-field-properties-multiple.js +1 -1
  42. package/dist/components/ls-field-properties-number.js +1 -1
  43. package/dist/components/ls-field-properties-signature.js +1 -1
  44. package/dist/components/ls-field-properties-text.js +1 -1
  45. package/dist/components/ls-field-properties.js +1 -1
  46. package/dist/components/ls-left-bar.js +1 -1
  47. package/dist/components/ls-statusbar.js +1 -1
  48. package/dist/components/ls-toolbar.js +1 -1
  49. package/dist/components/{p-BUAS2e6p.js → p--onI05IE.js} +12 -12
  50. package/dist/components/p--onI05IE.js.map +1 -0
  51. package/dist/components/{p-xSOFT8uc.js → p-7AZBNv_W.js} +4 -4
  52. package/dist/components/{p-xSOFT8uc.js.map → p-7AZBNv_W.js.map} +1 -1
  53. package/dist/components/{p-Ce1yNs3F.js → p-B-P0RM5X.js} +14 -14
  54. package/dist/components/{p-Ce1yNs3F.js.map → p-B-P0RM5X.js.map} +1 -1
  55. package/dist/components/{p-VFHHgnl2.js → p-BJoHocUQ.js} +8 -14
  56. package/dist/components/p-BJoHocUQ.js.map +1 -0
  57. package/dist/components/{p-CU_v-klT.js → p-BLMY8rNM.js} +12 -21
  58. package/dist/components/p-BLMY8rNM.js.map +1 -0
  59. package/dist/components/{p-BN_BZ9eU.js → p-BOg59Hui.js} +4 -4
  60. package/dist/components/{p-BN_BZ9eU.js.map → p-BOg59Hui.js.map} +1 -1
  61. package/dist/components/{p-Cue0UgwB.js → p-BRbTJsNX.js} +4 -4
  62. package/dist/components/{p-Cue0UgwB.js.map → p-BRbTJsNX.js.map} +1 -1
  63. package/dist/components/{p-thlkOeP_.js → p-Bi1odRMK.js} +4 -4
  64. package/dist/components/{p-thlkOeP_.js.map → p-Bi1odRMK.js.map} +1 -1
  65. package/dist/components/{p-Cts0eCoL.js → p-C4nAOEBk.js} +3 -3
  66. package/dist/components/{p-Cts0eCoL.js.map → p-C4nAOEBk.js.map} +1 -1
  67. package/dist/components/{p-DP3FTRHD.js → p-CWbixCW0.js} +4 -4
  68. package/dist/components/{p-DP3FTRHD.js.map → p-CWbixCW0.js.map} +1 -1
  69. package/dist/components/{p-Dw0UiotU.js → p-CXfWNJjL.js} +18 -14
  70. package/dist/components/p-CXfWNJjL.js.map +1 -0
  71. package/dist/components/{p-Cwf28UAj.js → p-CZCkljMh.js} +15 -15
  72. package/dist/components/{p-Cwf28UAj.js.map → p-CZCkljMh.js.map} +1 -1
  73. package/dist/components/{p-dLpaJicA.js → p-CvU1rUiv.js} +4 -4
  74. package/dist/components/{p-dLpaJicA.js.map → p-CvU1rUiv.js.map} +1 -1
  75. package/dist/components/{p-BzEVOvpL.js → p-CwR2DcQ8.js} +4 -4
  76. package/dist/components/{p-BzEVOvpL.js.map → p-CwR2DcQ8.js.map} +1 -1
  77. package/dist/components/{p-D7o_Ls97.js → p-DKz0A1Hf.js} +4 -4
  78. package/dist/components/{p-D7o_Ls97.js.map → p-DKz0A1Hf.js.map} +1 -1
  79. package/dist/components/{p-DydgLtEF.js → p-DmQNqtPP.js} +14 -3
  80. package/dist/components/p-DmQNqtPP.js.map +1 -0
  81. package/dist/components/{p-BvZKfSxt.js → p-TQAB33L1.js} +4 -4
  82. package/dist/components/{p-BvZKfSxt.js.map → p-TQAB33L1.js.map} +1 -1
  83. package/dist/components/{p-DVfpfKI7.js → p-ihnCvIHa.js} +4 -4
  84. package/dist/components/{p-DVfpfKI7.js.map → p-ihnCvIHa.js.map} +1 -1
  85. package/dist/esm/{editorUtils-DcBt3fOj.js → editorUtils-DF1r6W-l.js} +3 -3
  86. package/dist/esm/{editorUtils-DcBt3fOj.js.map → editorUtils-DF1r6W-l.js.map} +1 -1
  87. package/dist/esm/{history-xqZBqrca.js → history-CmJjDhcp.js} +14 -3
  88. package/dist/esm/history-CmJjDhcp.js.map +1 -0
  89. package/dist/esm/loader.js +1 -1
  90. package/dist/esm/ls-add-new-button_20.entry.js +2 -2
  91. package/dist/esm/ls-assignee-select_21.entry.js +16 -31
  92. package/dist/esm/ls-compose-loader_7.entry.js +14 -12
  93. package/dist/esm/ls-document-viewer.entry.js +55 -9
  94. package/dist/esm/ls-document-viewer.entry.js.map +1 -1
  95. package/dist/esm/ls-document-viewer.js +1 -1
  96. package/dist/esm/ls-field-alignment_3.entry.js +3 -3
  97. package/dist/esm/ls-field-format_2.entry.js +10 -10
  98. package/dist/esm/{mouseHandlers-CUHWhJed.js → mouseHandlers-Bwr3Oepx.js} +4 -4
  99. package/dist/esm/{mouseHandlers-CUHWhJed.js.map → mouseHandlers-Bwr3Oepx.js.map} +1 -1
  100. package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
  101. package/dist/ls-document-viewer/{p-3ba7f381.entry.js → p-12f94755.entry.js} +2 -2
  102. package/dist/ls-document-viewer/p-12f94755.entry.js.map +1 -0
  103. package/dist/ls-document-viewer/{p-d5c42d5f.entry.js → p-6f2687fc.entry.js} +2 -2
  104. package/dist/ls-document-viewer/p-885d302d.entry.js +2 -0
  105. package/dist/ls-document-viewer/p-885d302d.entry.js.map +1 -0
  106. package/dist/ls-document-viewer/p-9b6efe5e.entry.js +24 -0
  107. package/dist/ls-document-viewer/p-9b6efe5e.entry.js.map +1 -0
  108. package/dist/ls-document-viewer/{p-ChvyHQhX.js → p-BWxpQfiq.js} +2 -2
  109. package/dist/ls-document-viewer/{p-ChvyHQhX.js.map → p-BWxpQfiq.js.map} +1 -1
  110. package/dist/ls-document-viewer/p-CmJjDhcp.js +2 -0
  111. package/dist/ls-document-viewer/p-CmJjDhcp.js.map +1 -0
  112. package/dist/ls-document-viewer/{p-CEM1EUk-.js → p-SfEjlcdN.js} +2 -2
  113. package/dist/ls-document-viewer/{p-CEM1EUk-.js.map → p-SfEjlcdN.js.map} +1 -1
  114. package/dist/ls-document-viewer/{p-e3cf0df0.entry.js → p-a4a0858b.entry.js} +2 -2
  115. package/dist/ls-document-viewer/p-de351297.entry.js +2 -0
  116. package/dist/ls-document-viewer/p-de351297.entry.js.map +1 -0
  117. package/dist/types/components/ls-document-viewer/ls-document-viewer.d.ts +4 -0
  118. package/dist/types/components/ls-statusbar/ls-statusbar.d.ts +2 -0
  119. package/dist/types/components.d.ts +16 -0
  120. package/package.json +1 -1
  121. package/dist/cjs/history-BBZQuObJ.js.map +0 -1
  122. package/dist/components/p-BUAS2e6p.js.map +0 -1
  123. package/dist/components/p-CU_v-klT.js.map +0 -1
  124. package/dist/components/p-Dw0UiotU.js.map +0 -1
  125. package/dist/components/p-DydgLtEF.js.map +0 -1
  126. package/dist/components/p-VFHHgnl2.js.map +0 -1
  127. package/dist/ls-document-viewer/p-0340d8ac.entry.js +0 -24
  128. package/dist/ls-document-viewer/p-0340d8ac.entry.js.map +0 -1
  129. package/dist/ls-document-viewer/p-3ba7f381.entry.js.map +0 -1
  130. package/dist/ls-document-viewer/p-ba48b708.entry.js +0 -2
  131. package/dist/ls-document-viewer/p-ba48b708.entry.js.map +0 -1
  132. package/dist/ls-document-viewer/p-c47ad3e6.entry.js +0 -2
  133. package/dist/ls-document-viewer/p-c47ad3e6.entry.js.map +0 -1
  134. package/dist/ls-document-viewer/p-xqZBqrca.js +0 -2
  135. package/dist/ls-document-viewer/p-xqZBqrca.js.map +0 -1
  136. /package/dist/ls-document-viewer/{p-d5c42d5f.entry.js.map → p-6f2687fc.entry.js.map} +0 -0
  137. /package/dist/ls-document-viewer/{p-e3cf0df0.entry.js.map → p-a4a0858b.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ls-editor-field.js","sourceRoot":"","sources":["../../../../src/components/ls-editor-field/ls-editor-field.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, State, Prop, Watch, Listen, Event, EventEmitter } from '@stencil/core';\nimport { LSApiElement } from '../../components';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { validationTypes, getInputType } from '../ls-document-viewer/editorUtils';\nimport { defaultRolePalette } from '../ls-document-viewer/defaultPalette';\nimport { dvI18n } from '../../i18n/i18n';\nimport { validateFieldValue } from '../../utils/fieldValueValidator';\nimport { forceCloseDatePicker } from '../../utils/utils';\n\nconst fieldTypeKeyMap: { [key: string]: string } = {\n 'signature': 'toolbox.signature',\n 'auto sign': 'toolbox.autosign',\n 'text': 'toolbox.text',\n 'signing date': 'toolbox.signingdate',\n 'date': 'toolbox.date',\n 'initials': 'toolbox.initials',\n 'checkbox': 'toolbox.checkbox',\n 'email': 'toolbox.email',\n 'number': 'toolbox.number',\n 'dropdown': 'toolbox.dropdown',\n 'file': 'toolbox.file',\n 'drawn field': 'toolbox.drawn',\n 'regular expression': 'toolbox.regex',\n 'regex': 'toolbox.regex',\n};\n\nconst checkboxSymbols: { [key: number]: [string, string] } = {\n 24: ['✔', '✗'],\n 25: ['✔', ''],\n 26: ['✗', ''],\n};\n\n@Component({\n tag: 'ls-editor-field',\n styleUrl: 'ls-editor-field.scss',\n shadow: true,\n})\nexport class LsEditorField {\n @Element() component: HTMLElement;\n @Prop({ mutable: true }) assignee: string;\n @Prop({ mutable: true }) dataItem: LSApiElement;\n @Prop() selected: boolean = false;\n @Prop() multiSelected: boolean = false;\n @Prop() readonly: boolean;\n @Prop() type: 'text' | 'signature' | 'date' | 'regular expression' | 'file' | 'number' | 'signing date';\n @Prop() page: { height: number; width: number };\n\n private getFieldTypeKey(): string {\n return fieldTypeKeyMap[this.dataItem?.formElementType] || 'toolbox.text';\n }\n\n private getCheckboxSymbol(): string {\n const symbols = checkboxSymbols[this.dataItem?.validation];\n if (!symbols) return '';\n return this.dataItem?.value === 'true' ? symbols[0] : symbols[1];\n }\n @Prop() fixedAspect: number | null = null;\n @State() isEditing: boolean = false;\n\n private static readonly NO_EDIT_TYPES = ['signature', 'initials', 'signing date', 'checkbox', 'dropdown', 'drawn field', 'file'];\n\n @Watch('dataItem')\n dataItemChanged() {\n if (this.isEditing && LsEditorField.NO_EDIT_TYPES.includes(this.dataItem?.formElementType as string)) {\n this.isEditing = false;\n }\n }\n @State() heldEdge: string = null;\n @State() isEdgeDragging: boolean = false;\n @State() innerValue: string;\n @State() valueError: string | null = null;\n @Prop() zoom: string;\n\n private sizeObserver: ResizeObserver;\n\n @Event({\n bubbles: true,\n cancelable: false,\n composed: true,\n })\n mutate: EventEmitter<LSMutateEvent[]>;\n\n @Event({\n bubbles: true,\n cancelable: false,\n composed: true,\n })\n update: EventEmitter<LSMutateEvent[]>;\n\n /**\n * Controls whether floating elements are visible. Set by mouse enter/leave events.\n */\n @Prop({ mutable: true, reflect: true }) floatingActive: boolean = false;\n\n // Set floatingActive true on mouse enter, false on mouse leave\n private handleMouseEnter = () => {\n this.floatingActive = true;\n };\n\n private handleMouseLeave = () => {\n this.floatingActive = false;\n };\n\n @Listen('keydown')\n handleInput(e: KeyboardEvent) {\n if (e.code === 'Enter' && !e.ctrlKey && !e.metaKey) {\n this.isEditing = false;\n this.sizeObserver.observe(this.component.shadowRoot.getElementById('field-info'));\n e.preventDefault();\n }\n\n // Let undo/redo pass through to document handler\n const isMod = e.ctrlKey || e.metaKey;\n if (isMod && (e.key === 'z' || e.key === 'Z' || e.key === 'y' || e.key === 'Y')) {\n e.preventDefault();\n // If there's a pending debounce, just cancel it and revert locally\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n // Revert to the last committed value by re-reading from the DOM\n // The textarea will update on next render via dataItem binding\n return;\n }\n // No pending debounce — dispatch to document for history undo/redo\n document.dispatchEvent(new KeyboardEvent('keydown', {\n key: e.key,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n }));\n return;\n }\n\n // Let Delete/Backspace propagate for date fields (no text to edit)\n if ((e.key === 'Delete' || e.key === 'Backspace') && this.isDateField()) {\n return;\n }\n\n e.stopPropagation();\n }\n\n @Listen('mousemove', { capture: true })\n handleMouseMove(e) {\n if (this.readonly) {\n this.component.style.cursor = 'not-allowed';\n return;\n }\n if (!e.clientX) return;\n\n // While dragging (button held), keep current cursor\n if (e.buttons === 1) return;\n\n // Use getBoundingClientRect + clientX/clientY so cursor detection matches\n // the mouseDown hit-test in mouseHandlers.ts exactly\n const { left, top, right, bottom, width, height } = this.component.getBoundingClientRect();\n const edgeX = Math.min(8, width * 0.25);\n const edgeY = Math.min(8, height * 0.25);\n const cornerX = Math.min(16, width * 0.35);\n const cornerY = Math.min(16, height * 0.35);\n\n const nearLeft = Math.abs(e.clientX - left) < edgeX;\n const nearRight = Math.abs(e.clientX - right) < edgeX;\n const nearTop = Math.abs(e.clientY - top) < edgeY;\n const nearBottom = Math.abs(e.clientY - bottom) < edgeY;\n\n const cornerLeft = Math.abs(e.clientX - left) < cornerX;\n const cornerRight = Math.abs(e.clientX - right) < cornerX;\n const cornerTop = Math.abs(e.clientY - top) < cornerY;\n const cornerBottom = Math.abs(e.clientY - bottom) < cornerY;\n\n // Corners first (larger zone)\n if ((cornerRight && cornerBottom) || (cornerLeft && cornerTop)) {\n this.component.style.cursor = 'nwse-resize';\n } else if ((cornerLeft && cornerBottom) || (cornerRight && cornerTop)) {\n this.component.style.cursor = 'nesw-resize';\n } else if (nearLeft || nearRight) {\n this.component.style.cursor = 'ew-resize';\n } else if (nearTop || nearBottom) {\n this.component.style.cursor = 'ns-resize';\n } else {\n this.component.style.cursor = 'move';\n }\n }\n\n @Listen('dblclick', { capture: true })\n handleDoubleClick(e: MouseEvent) {\n if (this.readonly) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n // Date fields open the picker on double-click\n if (this.isDateField()) {\n this.isEditing = true;\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n if (LsEditorField.NO_EDIT_TYPES.includes(this.dataItem.formElementType as string)) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n this.isEditing = true;\n this.heldEdge = null;\n this.isEdgeDragging = false;\n this.sizeObserver.disconnect();\n this.innerValue = this.innerValue ? this.innerValue : this.dataItem?.value;\n\n const editbox = this.component.shadowRoot.getElementById('editing-input') as HTMLInputElement;\n console.log(this.dataItem);\n\n if (editbox) {\n editbox.className = 'ls-dv-editor-field-editable';\n editbox.focus();\n }\n e.preventDefault();\n e.stopPropagation();\n }\n\n @Listen('mousedown', { capture: true })\n handleMouseDown(e) {\n if (this.readonly) return;\n const edgeX = Math.min(8, this.component.clientWidth * 0.25);\n const edgeY = Math.min(8, this.component.clientHeight * 0.25);\n\n const nearLeft = e.offsetX < edgeX;\n const nearRight = (this.component.clientWidth - e.offsetX) < edgeX;\n const nearTop = e.offsetY < edgeY;\n const nearBottom = (this.component.clientHeight - e.offsetY) < edgeY;\n\n if (nearLeft || nearRight || nearTop || nearBottom) {\n // Prevent native drag so mousemove keeps firing during resize\n e.preventDefault();\n }\n }\n\n @Listen('dragstart', { capture: false, passive: false })\n handleDragStart(event) {\n // Add the target element's id to the data transfer object\n event.dataTransfer.setData(\n 'application/json',\n JSON.stringify({\n type: this.type,\n }),\n );\n event.dataTransfer.dropEffect = 'move';\n }\n\n @Watch('dataItem')\n watchDataItemHandler() {\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n if (this.selected) {\n this.component.style.background = this.hexToRgba(defaultRolePalette[this.dataItem?.signer % 100].s20, 0.5);\n }\n }\n\n @Watch('selected')\n watchSelectedHandler(_newValue: boolean, _oldValue: boolean) {\n if (_newValue) {\n this.component.style.background = this.hexToRgba(defaultRolePalette[this.dataItem?.signer % 100].s20, 0.5);\n this.component.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n } else {\n this.component.style.background = 'rgba(255,255,255,0.5)';\n this.component.style.boxShadow = 'none';\n this.isEditing = false;\n // Flush pending debounced mutate so validation fires immediately\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n this.mutate.emit([{ action: 'update', data: this.dataItem }]);\n }\n // Force close date picker (Safari ignores blur)\n const input = this.component.shadowRoot?.getElementById('editing-input') as HTMLInputElement;\n if (input && input.type === 'date') {\n setTimeout(() => {\n if (!this.selected) forceCloseDatePicker(input);\n }, 50);\n }\n }\n }\n\n deleteField = () => {\n this.mutate.emit([{ action: 'delete', data: this.dataItem }]);\n this.update.emit([{ action: 'delete', data: this.dataItem }]);\n };\n\n componentWillLoad() {\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n }\n\n componentDidLoad() {\n this.sizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n if (entry.contentRect) {\n const movebox = this.component.shadowRoot.getElementById('field-info') as HTMLElement;\n\n movebox.style.height = '100%';\n }\n }\n });\n\n this.sizeObserver.observe(this.component);\n\n // New dropped components automatically need selecting.\n if (this.selected) {\n this.component.style.background = this.hexToRgba(defaultRolePalette[this.dataItem?.signer % 100].s20, 0.5);\n this.component.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n } else {\n this.component.style.background = this.hexToRgba('ffffff', 0.7);\n this.component.style.boxShadow = 'none';\n }\n }\n\n // Send one or more mutations up the chain\n // The source of the chain fires the mutation\n // NOTE this alter is debounced to account for typing\n alter(diff: object) {\n this.dataItem = { ...this.dataItem, ...diff };\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n this.debounce(this.dataItem, 1500);\n }\n\n private labeltimer;\n\n debounce(data, delay) {\n if (this.labeltimer) clearTimeout(this.labeltimer);\n\n this.labeltimer = setTimeout(() => {\n const diffs: LSMutateEvent[] = [{ action: 'update', data }];\n this.mutate.emit(diffs);\n }, delay);\n }\n\n hexToRgba(hex: string, alpha: number): string {\n hex = hex.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n return `rgba(${r},${g},${b},${alpha})`;\n }\n\n private isDateField(): boolean {\n return getInputType(this.dataItem?.validation)?.inputType === 'date';\n }\n\n private getDateFormat(): string | null {\n const vType = validationTypes.find(v => v.id === this.dataItem?.validation);\n if (!vType || vType.inputType !== 'date') return null;\n return vType.description;\n }\n\n private toISODate(value: string): string {\n if (!value) return '';\n const format = this.getDateFormat();\n if (!format) return value;\n\n const sep = format.match(/[/.-]/)?.[0] || '/';\n const parts = format.split(/[/.-]/);\n const valueParts = value.split(sep);\n if (valueParts.length < 2) return value;\n\n let y = '', m = '', d = '';\n parts.forEach((p, i) => {\n const v = valueParts[i] || '';\n if (p.startsWith('y')) y = v;\n else if (p.startsWith('m')) m = v;\n else if (p.startsWith('d')) d = v;\n });\n\n if (y.length === 2) y = '20' + y;\n if (!d) d = '01';\n\n return `${y.padStart(4, '0')}-${m.padStart(2, '0')}-${d.padStart(2, '0')}`;\n }\n\n private formatDateFromISO(isoValue: string): string {\n if (!isoValue) return '';\n const [y, m, d] = isoValue.split('-');\n const format = this.getDateFormat();\n if (!format) return isoValue;\n\n return format\n .replace('yyyy', y)\n .replace('yy', y.slice(-2))\n .replace('mm', m)\n .replace('dd', d)\n .replace('d', String(parseInt(d)));\n }\n\n render() {\n const borderColor = this.valueError\n ? 'var(--red-50, #FF5C56)'\n : defaultRolePalette[this.dataItem?.signer % 100].s60;\n\n const hostStyle = this.floatingActive && !this.readonly\n ? { outline: `2px ${this.dataItem?.signer > 99 ? 'dashed' : 'solid'} ${borderColor}`, outlineOffset: '-2px', boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)', '--field-border-color': borderColor }\n : { outline: `2px ${this.dataItem?.signer > 99 ? 'dashed' : 'solid'} ${borderColor}`, outlineOffset: '-2px', '--field-border-color': borderColor };\n\n const zoomValue = parseFloat(this.zoom) || 1;\n // const topOffset = (this.dataItem.height ?? 1) + 4;\n const topOffset = 24;\n \n\n return (\n <Host id={this.dataItem ? 'ls-field-' + this.dataItem.id : undefined} style={hostStyle} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>\n <div\n class={{\n 'ls-editor-field': true,\n 'is-selected': this.selected,\n }}\n >\n {!this.dataItem?.optional && this.dataItem?.formElementType !== 'checkbox' && (\n <ls-icon\n name=\"required-icon\"\n size={Math.round(12 * zoomValue)}\n class=\"ls-dv-required-icon\"\n customStyle={{\n position: 'absolute',\n top: '50%',\n right: `${0.25 * zoomValue}rem`,\n transform: 'translateY(-50%)',\n lineHeight: '1',\n fontSize: `${0.75 * zoomValue}rem`,\n }}\n />\n )}\n {!this.dataItem?.optional && this.dataItem?.formElementType === 'checkbox' && (\n <ls-icon\n name=\"required-icon\"\n size={Math.round(8 * zoomValue)}\n class=\"ls-dv-required-icon\"\n customStyle={{\n position: 'absolute',\n top: `-${3 * zoomValue}px`,\n right: `-${3 * zoomValue}px`,\n lineHeight: '1',\n fontSize: `${0.5 * zoomValue}rem`,\n }}\n />\n )}\n {this.isDateField() ? (\n this.isEditing ? (\n <input\n id=\"editing-input\"\n class=\"ls-dv-date-field-input ls-dv-date-field-active\"\n type=\"date\"\n aria-label={dvI18n.t('toolbox.date')}\n style={{ color: `${defaultRolePalette[this.dataItem?.signer % 100].s100}`, textAlign: 'inherit' }}\n value={this.toISODate(this.dataItem?.value)}\n onInput={e => {\n const val = (e.target as HTMLInputElement).value;\n this.alter({ value: this.formatDateFromISO(val) });\n }}\n onChange={e => {\n const input = e.target as HTMLInputElement;\n this.alter({ value: this.formatDateFromISO(input.value) });\n this.isEditing = false;\n forceCloseDatePicker(input);\n }}\n onBlur={() => {\n this.isEditing = false;\n }}\n ref={el => {\n if (el) {\n requestAnimationFrame(() => {\n el.focus();\n el.showPicker?.();\n });\n }\n }}\n />\n ) : null\n ) : (\n <textarea\n id=\"editing-input\"\n class={this.isEditing ? 'ls-dv-editor-field-editable' : 'ls-dv-hidden-field'}\n style={{ color: `${defaultRolePalette[this.dataItem?.signer % 100].s100}`, textAlign: 'inherit' }}\n value={this.dataItem?.value}\n placeholder={dvI18n.t(this.getFieldTypeKey())}\n rows={1}\n onInput={e => {\n const el = e.target as HTMLTextAreaElement;\n el.style.height = 'auto';\n el.style.height = el.scrollHeight + 'px';\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n el.value,\n this.dataItem?.options,\n );\n this.alter({ value: el.value });\n }}\n ref={el => {\n if (el && this.isEditing) {\n requestAnimationFrame(() => {\n el.style.height = 'auto';\n el.style.height = el.scrollHeight + 'px';\n });\n }\n }}\n />\n )}\n\n <div id=\"field-info\" class={this.isEditing ? 'ls-dv-hidden-field' : 'ls-dv-editor-field-draggable'} style={{ color: `${defaultRolePalette[this.dataItem?.signer % 100].s100}`, ...(this.dataItem?.formElementType === 'checkbox' ? { width: '100%', overflow: 'visible', justifyContent: 'center', alignItems: 'center' } : {}) }}>\n <span style={{ width: '100%', display: 'block', textAlign: this.dataItem?.formElementType === 'checkbox' ? 'center' : 'inherit' }}>\n {this.dataItem?.formElementType === 'checkbox'\n ? this.getCheckboxSymbol()\n : this.dataItem?.value || dvI18n.t(this.getFieldTypeKey())}\n </span>\n </div>\n {(this.floatingActive || this.selected) && !this.multiSelected && this.dataItem?.label && (\n <div\n style={{\n position: 'absolute',\n background: `${defaultRolePalette[this.dataItem?.signer % 100].s20}`,\n color: `${defaultRolePalette[this.dataItem?.signer % 100].s80}`,\n borderRadius: `${0.25 * zoomValue}rem`,\n padding: `${0.125 * zoomValue}rem ${0.25 * zoomValue}rem`,\n top: `-${topOffset * zoomValue}px`,\n fontWeight: '500',\n fontSize: `${0.75 * zoomValue}rem`, \n left: `-${2 * zoomValue}px`,\n whiteSpace: 'nowrap',\n width: 'fit-content',\n }}\n >\n {this.dataItem?.label}\n </div>\n )}\n {(this.floatingActive || this.selected) && !this.multiSelected && (\n <p\n style={{\n position: 'absolute',\n color: 'var(--gray-80, #3a3a3a)',\n bottom: `-${1.75 * zoomValue}rem`,\n fontSize: `${0.625 * zoomValue}rem`,\n left: '0',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: `${10 * zoomValue}rem`,\n fontFamily: 'sans-serif',\n }}\n >\n {dvI18n.t('fieldproperties.assignedto')} {this.assignee}\n </p>\n )}\n {this.selected && !this.multiSelected && (\n <div class=\"resize-handles\">\n <div class=\"resize-handle handle-e\" />\n <div class=\"resize-handle handle-s\" />\n <div class=\"resize-handle handle-se\" />\n </div>\n )}\n {this.floatingActive && !this.readonly && (\n <button\n class={'ls-dv-x-button'}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: `${0.875 * zoomValue}rem`,\n height: `${0.875 * zoomValue}rem`,\n lineHeight: `${0.75 * zoomValue}rem`,\n fontSize: `${0.75 * zoomValue}rem`,\n ...(this.dataItem?.formElementType === 'checkbox' ? { transform: `translate(75%, -75%)` } : {}),\n }}\n onClick={() => this.deleteField()}\n >\n <ls-icon name=\"x-icon\" size={Math.round(12 * zoomValue)} />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ls-editor-field.js","sourceRoot":"","sources":["../../../../src/components/ls-editor-field/ls-editor-field.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, State, Prop, Watch, Listen, Event, EventEmitter } from '@stencil/core';\nimport { LSApiElement } from '../../components';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { validationTypes, getInputType } from '../ls-document-viewer/editorUtils';\nimport { defaultRolePalette } from '../ls-document-viewer/defaultPalette';\nimport { dvI18n } from '../../i18n/i18n';\nimport { validateFieldValue } from '../../utils/fieldValueValidator';\nimport { forceCloseDatePicker } from '../../utils/utils';\n\nconst fieldTypeKeyMap: { [key: string]: string } = {\n 'signature': 'toolbox.signature',\n 'auto sign': 'toolbox.autosign',\n 'text': 'toolbox.text',\n 'signing date': 'toolbox.signingdate',\n 'date': 'toolbox.date',\n 'initials': 'toolbox.initials',\n 'checkbox': 'toolbox.checkbox',\n 'email': 'toolbox.email',\n 'number': 'toolbox.number',\n 'dropdown': 'toolbox.dropdown',\n 'file': 'toolbox.file',\n 'drawn field': 'toolbox.drawn',\n 'regular expression': 'toolbox.regex',\n 'regex': 'toolbox.regex',\n};\n\nconst checkboxSymbols: { [key: number]: [string, string] } = {\n 24: ['✔', '✗'],\n 25: ['✔', ''],\n 26: ['✗', ''],\n};\n\n@Component({\n tag: 'ls-editor-field',\n styleUrl: 'ls-editor-field.scss',\n shadow: true,\n})\nexport class LsEditorField {\n @Element() component: HTMLElement;\n @Prop({ mutable: true }) assignee: string;\n @Prop({ mutable: true }) dataItem: LSApiElement;\n @Prop() selected: boolean = false;\n @Prop() multiSelected: boolean = false;\n @Prop() readonly: boolean;\n @Prop() type: 'text' | 'signature' | 'date' | 'regular expression' | 'file' | 'number' | 'signing date';\n @Prop() page: { height: number; width: number };\n\n private getFieldTypeKey(): string {\n return fieldTypeKeyMap[this.dataItem?.formElementType] || 'toolbox.text';\n }\n\n private getCheckboxSymbol(): string {\n const symbols = checkboxSymbols[this.dataItem?.validation];\n if (!symbols) return '';\n return this.dataItem?.value === 'true' ? symbols[0] : symbols[1];\n }\n @Prop() fixedAspect: number | null = null;\n @State() isEditing: boolean = false;\n\n private static readonly NO_EDIT_TYPES = ['signature', 'initials', 'signing date', 'checkbox', 'dropdown', 'drawn field', 'file'];\n\n @Watch('dataItem')\n dataItemChanged() {\n if (this.isEditing && LsEditorField.NO_EDIT_TYPES.includes(this.dataItem?.formElementType as string)) {\n this.isEditing = false;\n }\n }\n @State() heldEdge: string = null;\n @State() isEdgeDragging: boolean = false;\n @State() innerValue: string;\n @State() valueError: string | null = null;\n @Prop() zoom: string;\n\n private sizeObserver: ResizeObserver;\n\n @Event({\n bubbles: true,\n cancelable: false,\n composed: true,\n })\n mutate: EventEmitter<LSMutateEvent[]>;\n\n @Event({\n bubbles: true,\n cancelable: false,\n composed: true,\n })\n update: EventEmitter<LSMutateEvent[]>;\n\n /**\n * Controls whether floating elements are visible. Set by mouse enter/leave events.\n */\n @Prop({ mutable: true, reflect: true }) floatingActive: boolean = false;\n\n // Set floatingActive true on mouse enter, false on mouse leave\n private handleMouseEnter = () => {\n this.floatingActive = true;\n };\n\n private handleMouseLeave = () => {\n this.floatingActive = false;\n };\n\n @Listen('keydown')\n handleInput(e: KeyboardEvent) {\n if (e.code === 'Enter' && !e.ctrlKey && !e.metaKey) {\n this.isEditing = false;\n this.sizeObserver.observe(this.component.shadowRoot.getElementById('field-info'));\n e.preventDefault();\n }\n\n // Let undo/redo pass through to document handler\n const isMod = e.ctrlKey || e.metaKey;\n if (isMod && (e.key === 'z' || e.key === 'Z' || e.key === 'y' || e.key === 'Y')) {\n e.preventDefault();\n // If there's a pending debounce, just cancel it and revert locally\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n }\n // Don't stopPropagation — let the event reach the document-level keydown handler\n return;\n }\n\n // Let Delete/Backspace propagate for date fields (no text to edit)\n if ((e.key === 'Delete' || e.key === 'Backspace') && this.isDateField()) {\n return;\n }\n\n e.stopPropagation();\n }\n\n @Listen('mousemove', { capture: true })\n handleMouseMove(e) {\n if (this.readonly) {\n this.component.style.cursor = 'not-allowed';\n return;\n }\n if (!e.clientX) return;\n\n // While dragging (button held), keep current cursor\n if (e.buttons === 1) return;\n\n // Use getBoundingClientRect + clientX/clientY so cursor detection matches\n // the mouseDown hit-test in mouseHandlers.ts exactly\n const { left, top, right, bottom, width, height } = this.component.getBoundingClientRect();\n const edgeX = Math.min(8, width * 0.25);\n const edgeY = Math.min(8, height * 0.25);\n const cornerX = Math.min(16, width * 0.35);\n const cornerY = Math.min(16, height * 0.35);\n\n const nearLeft = Math.abs(e.clientX - left) < edgeX;\n const nearRight = Math.abs(e.clientX - right) < edgeX;\n const nearTop = Math.abs(e.clientY - top) < edgeY;\n const nearBottom = Math.abs(e.clientY - bottom) < edgeY;\n\n const cornerLeft = Math.abs(e.clientX - left) < cornerX;\n const cornerRight = Math.abs(e.clientX - right) < cornerX;\n const cornerTop = Math.abs(e.clientY - top) < cornerY;\n const cornerBottom = Math.abs(e.clientY - bottom) < cornerY;\n\n // Corners first (larger zone)\n if ((cornerRight && cornerBottom) || (cornerLeft && cornerTop)) {\n this.component.style.cursor = 'nwse-resize';\n } else if ((cornerLeft && cornerBottom) || (cornerRight && cornerTop)) {\n this.component.style.cursor = 'nesw-resize';\n } else if (nearLeft || nearRight) {\n this.component.style.cursor = 'ew-resize';\n } else if (nearTop || nearBottom) {\n this.component.style.cursor = 'ns-resize';\n } else {\n this.component.style.cursor = 'move';\n }\n }\n\n @Listen('dblclick', { capture: true })\n handleDoubleClick(e: MouseEvent) {\n if (this.readonly) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n // Date fields open the picker on double-click\n if (this.isDateField()) {\n this.isEditing = true;\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n if (LsEditorField.NO_EDIT_TYPES.includes(this.dataItem.formElementType as string)) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n this.isEditing = true;\n this.heldEdge = null;\n this.isEdgeDragging = false;\n this.sizeObserver.disconnect();\n this.innerValue = this.innerValue ? this.innerValue : this.dataItem?.value;\n\n const editbox = this.component.shadowRoot.getElementById('editing-input') as HTMLInputElement;\n console.log(this.dataItem);\n\n if (editbox) {\n editbox.className = 'ls-dv-editor-field-editable';\n editbox.focus();\n }\n e.preventDefault();\n e.stopPropagation();\n }\n\n @Listen('mousedown', { capture: true })\n handleMouseDown(e) {\n if (this.readonly) return;\n const edgeX = Math.min(8, this.component.clientWidth * 0.25);\n const edgeY = Math.min(8, this.component.clientHeight * 0.25);\n\n const nearLeft = e.offsetX < edgeX;\n const nearRight = (this.component.clientWidth - e.offsetX) < edgeX;\n const nearTop = e.offsetY < edgeY;\n const nearBottom = (this.component.clientHeight - e.offsetY) < edgeY;\n\n if (nearLeft || nearRight || nearTop || nearBottom) {\n // Prevent native drag so mousemove keeps firing during resize\n e.preventDefault();\n }\n }\n\n @Listen('dragstart', { capture: false, passive: false })\n handleDragStart(event) {\n // Add the target element's id to the data transfer object\n event.dataTransfer.setData(\n 'application/json',\n JSON.stringify({\n type: this.type,\n }),\n );\n event.dataTransfer.dropEffect = 'move';\n }\n\n @Watch('dataItem')\n watchDataItemHandler() {\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n if (this.selected) {\n this.component.style.background = this.hexToRgba(defaultRolePalette[this.dataItem?.signer % 100].s20, 0.5);\n }\n }\n\n @Watch('selected')\n watchSelectedHandler(_newValue: boolean, _oldValue: boolean) {\n if (_newValue) {\n this.component.style.background = this.hexToRgba(defaultRolePalette[this.dataItem?.signer % 100].s20, 0.5);\n this.component.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n } else {\n this.component.style.background = 'rgba(255,255,255,0.5)';\n this.component.style.boxShadow = 'none';\n this.isEditing = false;\n // Flush pending debounced mutate so validation fires immediately\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n this.mutate.emit([{ action: 'update', data: this.dataItem }]);\n }\n // Force close date picker (Safari ignores blur)\n const input = this.component.shadowRoot?.getElementById('editing-input') as HTMLInputElement;\n if (input && input.type === 'date') {\n setTimeout(() => {\n if (!this.selected) forceCloseDatePicker(input);\n }, 50);\n }\n }\n }\n\n deleteField = () => {\n this.mutate.emit([{ action: 'delete', data: this.dataItem }]);\n this.update.emit([{ action: 'delete', data: this.dataItem }]);\n };\n\n componentWillLoad() {\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n }\n\n componentDidLoad() {\n this.sizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n if (entry.contentRect) {\n const movebox = this.component.shadowRoot.getElementById('field-info') as HTMLElement;\n\n movebox.style.height = '100%';\n }\n }\n });\n\n this.sizeObserver.observe(this.component);\n\n // New dropped components automatically need selecting.\n if (this.selected) {\n this.component.style.background = this.hexToRgba(defaultRolePalette[this.dataItem?.signer % 100].s20, 0.5);\n this.component.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n } else {\n this.component.style.background = this.hexToRgba('ffffff', 0.7);\n this.component.style.boxShadow = 'none';\n }\n }\n\n // Send one or more mutations up the chain\n // The source of the chain fires the mutation\n // NOTE this alter is debounced to account for typing\n alter(diff: object) {\n this.dataItem = { ...this.dataItem, ...diff };\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n this.debounce(this.dataItem, 1500);\n }\n\n private labeltimer;\n\n debounce(data, delay) {\n if (this.labeltimer) clearTimeout(this.labeltimer);\n\n this.labeltimer = setTimeout(() => {\n const diffs: LSMutateEvent[] = [{ action: 'update', data }];\n this.mutate.emit(diffs);\n }, delay);\n }\n\n hexToRgba(hex: string, alpha: number): string {\n hex = hex.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n return `rgba(${r},${g},${b},${alpha})`;\n }\n\n private isDateField(): boolean {\n return getInputType(this.dataItem?.validation)?.inputType === 'date';\n }\n\n private getDateFormat(): string | null {\n const vType = validationTypes.find(v => v.id === this.dataItem?.validation);\n if (!vType || vType.inputType !== 'date') return null;\n return vType.description;\n }\n\n private toISODate(value: string): string {\n if (!value) return '';\n const format = this.getDateFormat();\n if (!format) return value;\n\n const sep = format.match(/[/.-]/)?.[0] || '/';\n const parts = format.split(/[/.-]/);\n const valueParts = value.split(sep);\n if (valueParts.length < 2) return value;\n\n let y = '', m = '', d = '';\n parts.forEach((p, i) => {\n const v = valueParts[i] || '';\n if (p.startsWith('y')) y = v;\n else if (p.startsWith('m')) m = v;\n else if (p.startsWith('d')) d = v;\n });\n\n if (y.length === 2) y = '20' + y;\n if (!d) d = '01';\n\n return `${y.padStart(4, '0')}-${m.padStart(2, '0')}-${d.padStart(2, '0')}`;\n }\n\n private formatDateFromISO(isoValue: string): string {\n if (!isoValue) return '';\n const [y, m, d] = isoValue.split('-');\n const format = this.getDateFormat();\n if (!format) return isoValue;\n\n return format\n .replace('yyyy', y)\n .replace('yy', y.slice(-2))\n .replace('mm', m)\n .replace('dd', d)\n .replace('d', String(parseInt(d)));\n }\n\n render() {\n const borderColor = this.valueError\n ? 'var(--red-50, #FF5C56)'\n : defaultRolePalette[this.dataItem?.signer % 100].s60;\n\n const hostStyle = this.floatingActive && !this.readonly\n ? { outline: `2px ${this.dataItem?.signer > 99 ? 'dashed' : 'solid'} ${borderColor}`, outlineOffset: '-2px', boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)', '--field-border-color': borderColor }\n : { outline: `2px ${this.dataItem?.signer > 99 ? 'dashed' : 'solid'} ${borderColor}`, outlineOffset: '-2px', '--field-border-color': borderColor };\n\n const zoomValue = parseFloat(this.zoom) || 1;\n // const topOffset = (this.dataItem.height ?? 1) + 4;\n const topOffset = 24;\n \n\n return (\n <Host id={this.dataItem ? 'ls-field-' + this.dataItem.id : undefined} style={hostStyle} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>\n <div\n class={{\n 'ls-editor-field': true,\n 'is-selected': this.selected,\n }}\n >\n {!this.dataItem?.optional && this.dataItem?.formElementType !== 'checkbox' && (\n <ls-icon\n name=\"required-icon\"\n size={Math.round(12 * zoomValue)}\n class=\"ls-dv-required-icon\"\n customStyle={{\n position: 'absolute',\n top: '50%',\n right: `${0.25 * zoomValue}rem`,\n transform: 'translateY(-50%)',\n lineHeight: '1',\n fontSize: `${0.75 * zoomValue}rem`,\n }}\n />\n )}\n {!this.dataItem?.optional && this.dataItem?.formElementType === 'checkbox' && (\n <ls-icon\n name=\"required-icon\"\n size={Math.round(8 * zoomValue)}\n class=\"ls-dv-required-icon\"\n customStyle={{\n position: 'absolute',\n top: `-${3 * zoomValue}px`,\n right: `-${3 * zoomValue}px`,\n lineHeight: '1',\n fontSize: `${0.5 * zoomValue}rem`,\n }}\n />\n )}\n {this.isDateField() ? (\n this.isEditing ? (\n <input\n id=\"editing-input\"\n class=\"ls-dv-date-field-input ls-dv-date-field-active\"\n type=\"date\"\n aria-label={dvI18n.t('toolbox.date')}\n style={{ color: `${defaultRolePalette[this.dataItem?.signer % 100].s100}`, textAlign: 'inherit' }}\n value={this.toISODate(this.dataItem?.value)}\n onInput={e => {\n const val = (e.target as HTMLInputElement).value;\n this.alter({ value: this.formatDateFromISO(val) });\n }}\n onChange={e => {\n const input = e.target as HTMLInputElement;\n this.alter({ value: this.formatDateFromISO(input.value) });\n this.isEditing = false;\n forceCloseDatePicker(input);\n }}\n onBlur={() => {\n this.isEditing = false;\n }}\n ref={el => {\n if (el) {\n requestAnimationFrame(() => {\n el.focus();\n el.showPicker?.();\n });\n }\n }}\n />\n ) : null\n ) : (\n <textarea\n id=\"editing-input\"\n class={this.isEditing ? 'ls-dv-editor-field-editable' : 'ls-dv-hidden-field'}\n style={{ color: `${defaultRolePalette[this.dataItem?.signer % 100].s100}`, textAlign: 'inherit' }}\n value={this.dataItem?.value}\n placeholder={dvI18n.t(this.getFieldTypeKey())}\n rows={1}\n onInput={e => {\n const el = e.target as HTMLTextAreaElement;\n el.style.height = 'auto';\n el.style.height = el.scrollHeight + 'px';\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n el.value,\n this.dataItem?.options,\n );\n this.alter({ value: el.value });\n }}\n ref={el => {\n if (el && this.isEditing) {\n requestAnimationFrame(() => {\n el.style.height = 'auto';\n el.style.height = el.scrollHeight + 'px';\n });\n }\n }}\n />\n )}\n\n <div id=\"field-info\" class={this.isEditing ? 'ls-dv-hidden-field' : 'ls-dv-editor-field-draggable'} style={{ color: `${defaultRolePalette[this.dataItem?.signer % 100].s100}`, ...(this.dataItem?.formElementType === 'checkbox' ? { width: '100%', overflow: 'visible', justifyContent: 'center', alignItems: 'center' } : {}) }}>\n <span style={{ width: '100%', display: 'block', textAlign: this.dataItem?.formElementType === 'checkbox' ? 'center' : 'inherit' }}>\n {this.dataItem?.formElementType === 'checkbox'\n ? this.getCheckboxSymbol()\n : this.dataItem?.value || dvI18n.t(this.getFieldTypeKey())}\n </span>\n </div>\n {(this.floatingActive || this.selected) && !this.multiSelected && this.dataItem?.label && (\n <div\n style={{\n position: 'absolute',\n background: `${defaultRolePalette[this.dataItem?.signer % 100].s20}`,\n color: `${defaultRolePalette[this.dataItem?.signer % 100].s80}`,\n borderRadius: `${0.25 * zoomValue}rem`,\n padding: `${0.125 * zoomValue}rem ${0.25 * zoomValue}rem`,\n top: `-${topOffset * zoomValue}px`,\n fontWeight: '500',\n fontSize: `${0.75 * zoomValue}rem`, \n left: `-${2 * zoomValue}px`,\n whiteSpace: 'nowrap',\n width: 'fit-content',\n }}\n >\n {this.dataItem?.label}\n </div>\n )}\n {(this.floatingActive || this.selected) && !this.multiSelected && (\n <p\n style={{\n position: 'absolute',\n color: 'var(--gray-80, #3a3a3a)',\n bottom: `-${1.75 * zoomValue}rem`,\n fontSize: `${0.625 * zoomValue}rem`,\n left: '0',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: `${10 * zoomValue}rem`,\n fontFamily: 'sans-serif',\n }}\n >\n {dvI18n.t('fieldproperties.assignedto')} {this.assignee}\n </p>\n )}\n {this.selected && !this.multiSelected && (\n <div class=\"resize-handles\">\n <div class=\"resize-handle handle-e\" />\n <div class=\"resize-handle handle-s\" />\n <div class=\"resize-handle handle-se\" />\n </div>\n )}\n {this.floatingActive && !this.readonly && (\n <button\n class={'ls-dv-x-button'}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: `${0.875 * zoomValue}rem`,\n height: `${0.875 * zoomValue}rem`,\n lineHeight: `${0.75 * zoomValue}rem`,\n fontSize: `${0.75 * zoomValue}rem`,\n ...(this.dataItem?.formElementType === 'checkbox' ? { transform: `translate(75%, -75%)` } : {}),\n }}\n onClick={() => this.deleteField()}\n >\n <ls-icon name=\"x-icon\" size={Math.round(12 * zoomValue)} />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -59,19 +59,13 @@ export class LsFieldContent {
59
59
  const isMod = e.ctrlKey || e.metaKey;
60
60
  if (isMod && (e.key === 'z' || e.key === 'Z' || e.key === 'y' || e.key === 'Y')) {
61
61
  e.preventDefault();
62
- e.stopPropagation();
63
62
  // Cancel any pending debounce (discard uncommitted changes)
64
63
  if (this.labeltimer) {
65
64
  clearTimeout(this.labeltimer);
66
65
  this.labeltimer = null;
67
66
  }
68
- // Dispatch to document so our undo/redo handler picks it up
69
- document.dispatchEvent(new KeyboardEvent('keydown', {
70
- key: e.key,
71
- ctrlKey: e.ctrlKey,
72
- metaKey: e.metaKey,
73
- shiftKey: e.shiftKey,
74
- }));
67
+ // Don't stopPropagation let the event reach the document-level keydown handler
68
+ return;
75
69
  }
76
70
  }
77
71
  handleValueChange(value) {
@@ -289,7 +283,7 @@ export class LsFieldContent {
289
283
  this.alterImmediate({ validation: newValidation, value: newValue });
290
284
  }
291
285
  render() {
292
- return (h(Host, { key: '77d2477ad29db3342739508eb567e04ad9cd4555' }, this.roles?.length > 0 && (h("ls-props-section", { key: '7770a050e6c78b3643cd0b16d39affbf63272eaf', sectionTitle: dvI18n.t('fieldproperties.assignee'), sectionDescription: dvI18n.t('fieldproperties.assigneedescription') }, h("ls-assignee-select", { key: '3cf7d48eff5b48843d4c3182217c64b84119cb0c', signer: this.dataItem?.signer, roles: this.roles, disabled: this.readonly, disabledSenderReason: this.getSenderDisabledReason(), disabledApproverReason: this.isSignatureType() ? dvI18n.t('fieldproperties.signaturecannotapproversingle') : '', onAssigneeChange: ev => this.handleReassign(ev.detail) }))), h("ls-props-section", { key: '56952bf5cd2b6b4413078bc78b38d15e71eb8c5a', sectionTitle: dvI18n.t('fieldproperties.fieldtype'), sectionDescription: dvI18n.t('fieldproperties.fieldtypedescription') }, h("ls-field-type-select", { key: 'a239160aa3899cf8168011b562ecb6f49b2d1795', fieldType: this.dataItem?.formElementType, assignee: this.dataItem?.signer, roles: this.roles, roleTypes: [this.getRoleType()], disabled: this.readonly, filtertoolbox: this.filtertoolbox, onFieldTypeChange: ev => this.handleFieldTypeChange(ev.detail) })), this.dataItem?.formElementType !== 'signature' && (h("ls-props-section", { key: 'fbe001f3fccbefa4a7f9e1771e81f54eb1b59dd0', sectionTitle: dvI18n.t('fieldproperties.requiredfield'), row: true, sectionDescription: dvI18n.t('fieldproperties.requiredfielddescription') }, h("ls-toggle", { key: '4717bec4884d240cce83bcf4703590f536f8261f', id: "toggle-required", checked: !this.dataItem?.optional, onValueChange: ev => !this.readonly && this.alterImmediate({ optional: !ev.detail }) }))), h("ls-props-section", { key: '4f9cc491f46ca2aed2fc1db000dacaa80d16478a', sectionTitle: dvI18n.t('fieldproperties.fieldlabel'), sectionDescription: dvI18n.t('fieldproperties.fieldlabeldescription') }, h("ls-formfield", { key: '8d22325b9240c019744589e39bf77d5ec01d56df', as: "text", name: "field-label", value: this.dataItem?.label, placeholder: getFieldTitleSuggestion(this.dataItem?.formElementType), disabled: this.readonly, onTextChange: e => this.alter({ label: e.detail.value }) })), this.supportsValue() && (h("ls-props-section", { key: '8dc887afd9d6cfe1f04c4eb73efd23e7b5f6beb3', sectionTitle: dvI18n.t('fieldproperties.value'), sectionDescription: dvI18n.t('fieldproperties.valuedescription') }, this.isDateField() ? (h("div", { class: "ls-dv-date-input-wrapper" }, h("input", { class: "ls-dv-date-display", type: "text", value: this.dataItem?.value, placeholder: this.getDateFormat(), readOnly: true, onClick: () => {
286
+ return (h(Host, { key: 'f2695d6b0be7a1f227e4ec0a402c8d30b230957f' }, this.roles?.length > 0 && (h("ls-props-section", { key: '90aa78e28c9248ab72427067edde3c4dced1d4d1', sectionTitle: dvI18n.t('fieldproperties.assignee'), sectionDescription: dvI18n.t('fieldproperties.assigneedescription') }, h("ls-assignee-select", { key: '3eae837f63bca4fa50f087920e81fdd274f0ac50', signer: this.dataItem?.signer, roles: this.roles, disabled: this.readonly, disabledSenderReason: this.getSenderDisabledReason(), disabledApproverReason: this.isSignatureType() ? dvI18n.t('fieldproperties.signaturecannotapproversingle') : '', onAssigneeChange: ev => this.handleReassign(ev.detail) }))), h("ls-props-section", { key: 'dd02103fdeb7aa059a70285f17606e9bc2475038', sectionTitle: dvI18n.t('fieldproperties.fieldtype'), sectionDescription: dvI18n.t('fieldproperties.fieldtypedescription') }, h("ls-field-type-select", { key: '1315446ded6cb4f6eeebde98138259c0fc49ac87', fieldType: this.dataItem?.formElementType, assignee: this.dataItem?.signer, roles: this.roles, roleTypes: [this.getRoleType()], disabled: this.readonly, filtertoolbox: this.filtertoolbox, onFieldTypeChange: ev => this.handleFieldTypeChange(ev.detail) })), this.dataItem?.formElementType !== 'signature' && (h("ls-props-section", { key: 'a9335a5e678251b47a561660c57ac90dc1db4a78', sectionTitle: dvI18n.t('fieldproperties.requiredfield'), row: true, sectionDescription: dvI18n.t('fieldproperties.requiredfielddescription') }, h("ls-toggle", { key: '2d6ad9045ed62d17dfc38b8d2998cd1ff90d8187', id: "toggle-required", checked: !this.dataItem?.optional, onValueChange: ev => !this.readonly && this.alterImmediate({ optional: !ev.detail }) }))), h("ls-props-section", { key: '6f4b480cea21715d2cf72583541296284406573a', sectionTitle: dvI18n.t('fieldproperties.fieldlabel'), sectionDescription: dvI18n.t('fieldproperties.fieldlabeldescription') }, h("ls-formfield", { key: '66a33605ec7344089b17a3ec6117d654496e8ad3', as: "text", name: "field-label", value: this.dataItem?.label, placeholder: getFieldTitleSuggestion(this.dataItem?.formElementType), disabled: this.readonly, onTextChange: e => this.alter({ label: e.detail.value }) })), this.supportsValue() && (h("ls-props-section", { key: '3e6af27f381635c6bc2235ee9e33b18c79f0e42e', sectionTitle: dvI18n.t('fieldproperties.value'), sectionDescription: dvI18n.t('fieldproperties.valuedescription') }, this.isDateField() ? (h("div", { class: "ls-dv-date-input-wrapper" }, h("input", { class: "ls-dv-date-display", type: "text", value: this.dataItem?.value, placeholder: this.getDateFormat(), readOnly: true, onClick: () => {
293
287
  if (this.readonly)
294
288
  return;
295
289
  const picker = this.component.shadowRoot.getElementById('ls-date-picker');
@@ -299,9 +293,9 @@ export class LsFieldContent {
299
293
  const input = e.target;
300
294
  this.alter({ value: this.formatDateFromISO(input.value) });
301
295
  forceCloseDatePicker(input);
302
- }, disabled: this.readonly }))) : (h("ls-formfield", { as: "text", name: "field-value", value: this.dataItem?.value, placeholder: getFieldPlaceholder(this.dataItem?.formElementType), valid: !this.valueError, dirty: this.isDirty, errorText: this.valueError, disabled: this.readonly, onTextChange: e => this.handleValueChange(e.detail.value) })))), this.dataItem.validation === 20 && (h("ls-props-section", { key: 'a5a5e24cba2cba332e129f83eb6de145f6327471', sectionTitle: dvI18n.t('fieldproperties.options'), sectionDescription: dvI18n.t('fieldproperties.optionsdescription') }, h("textarea", { key: '800c102d060381f75cbe725864354d8e4a208b19', value: this.dataItem?.options, placeholder: "Option 1\nOption 2\nOption 3", onInput: e => this.alter({ options: e.target.value }), disabled: this.readonly }))), this.showValidationTypes && this.dataItem?.formElementType !== 'drawn field' && this.dataItem?.formElementType !== 'regular expression' && this.dataItem?.formElementType !== 'initials' && (h("ls-props-section", { key: '76cdf0e1f569f226237c0b47ebdc88217e59df49', sectionTitle: dvI18n.t('fieldproperties.contentformat'), sectionDescription: dvI18n.t('fieldproperties.contentformatdescription') }, h("ls-input-wrapper", { key: 'b13ebdaae79d2730548e6cb90a644c145d6c7774', select: true }, h("select", { key: '2ba6462fa988f7b64749dada680cfeae5e6953f9', onChange: ev => !this.readonly && this.handleFormatChange(parseInt(ev.target.value)) }, validationTypes
296
+ }, disabled: this.readonly }))) : (h("ls-formfield", { as: "text", name: "field-value", value: this.dataItem?.value, placeholder: getFieldPlaceholder(this.dataItem?.formElementType), valid: !this.valueError, dirty: this.isDirty, errorText: this.valueError, disabled: this.readonly, onTextChange: e => this.handleValueChange(e.detail.value) })))), this.dataItem.validation === 20 && (h("ls-props-section", { key: '163081bd7416239c1b85971f1c4178724fcc7ca5', sectionTitle: dvI18n.t('fieldproperties.options'), sectionDescription: dvI18n.t('fieldproperties.optionsdescription') }, h("textarea", { key: '8c07efb5fa1153628ada1d28ee63142f8690a67d', value: this.dataItem?.options, placeholder: "Option 1\nOption 2\nOption 3", onInput: e => this.alter({ options: e.target.value }), disabled: this.readonly }))), this.showValidationTypes && this.dataItem?.formElementType !== 'drawn field' && this.dataItem?.formElementType !== 'regular expression' && this.dataItem?.formElementType !== 'initials' && (h("ls-props-section", { key: '776f6727b350957116a0f1bb7c3c80db0fc9c0b7', sectionTitle: dvI18n.t('fieldproperties.contentformat'), sectionDescription: dvI18n.t('fieldproperties.contentformatdescription') }, h("ls-input-wrapper", { key: '25a49f7b0f46803e322c7e4c0e76130882611e91', select: true }, h("select", { key: 'dcd4417138a42d0c008e85577c5734d7e46738eb', onChange: ev => !this.readonly && this.handleFormatChange(parseInt(ev.target.value)) }, validationTypes
303
297
  .filter(type => type.formType === this.dataItem?.formElementType)
304
- .map(type => (h("option", { selected: this.dataItem?.validation === type.id, value: type.id }, type.description))))))), this.dataItem?.formElementType === 'checkbox' && this.getCheckboxStates().length === 2 && (h("ls-props-section", { key: '7f34362c07748a019185f1bc3e563157d1443fd8', sectionTitle: dvI18n.t('fieldproperties.displaystate'), sectionDescription: dvI18n.t('fieldproperties.displaystatedescription') }, h("div", { key: 'db6fe65a48ea67207c67f551cc2602eb378e6261', class: "ls-dv-checkbox-toggle" }, this.getCheckboxStates().map((state, idx) => (h("button", { key: idx, class: { 'ls-dv-checkbox-toggle-btn': true, 'ls-dv-active': idx === 0 ? this.dataItem?.value?.toString() !== 'true' : this.dataItem?.value?.toString() === 'true' }, onClick: () => !this.readonly && this.alterImmediate({ value: idx === 0 ? 'false' : 'true' }), disabled: this.readonly }, state)))))), h("slot", { key: 'bb7e9cbbf3ca90270bb4d2742c5c9de1f4a12a04' })));
298
+ .map(type => (h("option", { selected: this.dataItem?.validation === type.id, value: type.id }, type.description))))))), this.dataItem?.formElementType === 'checkbox' && this.getCheckboxStates().length === 2 && (h("ls-props-section", { key: '340af765731696c7a8f13392f28e696a83f7bf7d', sectionTitle: dvI18n.t('fieldproperties.displaystate'), sectionDescription: dvI18n.t('fieldproperties.displaystatedescription') }, h("div", { key: 'edcefae0f0e8e0eaaa63943ea2bb78fa52ef7253', class: "ls-dv-checkbox-toggle" }, this.getCheckboxStates().map((state, idx) => (h("button", { key: idx, class: { 'ls-dv-checkbox-toggle-btn': true, 'ls-dv-active': idx === 0 ? this.dataItem?.value?.toString() !== 'true' : this.dataItem?.value?.toString() === 'true' }, onClick: () => !this.readonly && this.alterImmediate({ value: idx === 0 ? 'false' : 'true' }), disabled: this.readonly }, state)))))), h("slot", { key: 'df7013168408522a2bd12a7b52b68d1927287b41' })));
305
299
  }
306
300
  static get is() { return "ls-field-content"; }
307
301
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"ls-field-content.js","sourceRoot":"","sources":["../../../../src/components/ls-field-content/ls-field-content.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Event, EventEmitter, Element, State, Watch, Listen } from '@stencil/core';\nimport { LSApiElement, LSMutateEvent } from '../../components';\nimport { LSApiRole } from '../../types/LSApiRole';\nimport { validationTypes, getInputType } from '../ls-document-viewer/editorUtils';\nimport { getFieldPlaceholder, getFieldTitleSuggestion } from '../ls-document-viewer/defaultFieldLabels';\nimport { dvI18n } from '../../i18n/i18n';\nimport { validateFieldValue } from '../../utils/fieldValueValidator';\nimport { getDefaultValidationForType } from '../ls-field-type-select/fieldTypeUtils';\nimport { forceCloseDatePicker } from '../../utils/utils';\n\n@Component({\n tag: 'ls-field-content',\n styleUrl: 'ls-field-content.scss',\n shadow: true,\n})\nexport class LsFieldContent {\n @Element() component: HTMLElement;\n @Prop({ mutable: true }) dataItem: LSApiElement;\n @Prop() roles: LSApiRole[] = [];\n @Prop() showValidationTypes: boolean = true;\n @Prop() readonly: boolean = false;\n @Prop() filtertoolbox: string = null;\n\n @State() valueError: string | null = null;\n @State() isDirty: boolean = false;\n\n @Watch('dataItem')\n watchDataItemHandler() {\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n this.isDirty = !!this.dataItem?.value && this.dataItem.value.length > 0;\n }\n\n componentWillLoad() {\n if (this.dataItem?.value) {\n this.isDirty = true;\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n }\n }\n\n disconnectedCallback() {\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n // Component is already detached from DOM so events can't bubble.\n // Dispatch on document and let ls-document-viewer pick it up.\n document.dispatchEvent(\n new CustomEvent('ls-flush-mutate', {\n detail: [{ action: 'update', data: this.dataItem }],\n }),\n );\n }\n }\n\n @Event({\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n mutate: EventEmitter<LSMutateEvent[]>;\n\n @Event({\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n update: EventEmitter<LSMutateEvent[]>;\n\n // Send one or more mutations up the chain\n // The source of the chain fires the mutation\n // Debounced alter for text inputs (value, label, options)\n alter(diff: object) {\n this.dataItem = { ...this.dataItem, ...diff };\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n this.debounce(this.dataItem, 1500);\n }\n\n // Immediate alter for instant actions (toggles, selects, dropdowns)\n alterImmediate(diff: object) {\n this.dataItem = { ...this.dataItem, ...diff };\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n }\n this.mutate.emit([{ action: 'update', data: this.dataItem }]);\n }\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n const isMod = e.ctrlKey || e.metaKey;\n if (isMod && (e.key === 'z' || e.key === 'Z' || e.key === 'y' || e.key === 'Y')) {\n e.preventDefault();\n e.stopPropagation();\n // Cancel any pending debounce (discard uncommitted changes)\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n }\n // Dispatch to document so our undo/redo handler picks it up\n document.dispatchEvent(new KeyboardEvent('keydown', {\n key: e.key,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n }));\n }\n }\n\n handleValueChange(value: string) {\n this.isDirty = value.length > 0;\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n value,\n this.dataItem?.options,\n );\n this.alter({ value });\n }\n\n private labeltimer;\n\n debounce(data, delay) {\n if (this.labeltimer) clearTimeout(this.labeltimer);\n\n this.labeltimer = setTimeout(() => {\n const diffs: LSMutateEvent[] = [{ action: 'update', data }];\n this.mutate.emit(diffs);\n }, delay);\n }\n\n supportsValue() {\n const typesWithValue = ['signature', 'initials', 'file', 'signing', 'autosign', 'signing date', 'auto sign', 'dropdown', 'checkbox', 'drawn field'];\n\n return !typesWithValue.includes(this.dataItem?.formElementType);\n }\n\n private getCheckboxStates(): string[] {\n const vType = validationTypes.find(v => v.id === this.dataItem?.validation);\n if (!vType) return [];\n return vType.description.split('/').reverse();\n }\n\n isDateField(): boolean {\n return getInputType(this.dataItem?.validation)?.inputType === 'date';\n }\n\n /**\n * Convert a formatted date value back to ISO (yyyy-mm-dd) for the native date input.\n */\n toISODate(value: string): string {\n if (!value) return '';\n const format = this.getDateFormat();\n if (!format) return value;\n\n const sep = format.match(/[/.-]/)?.[0] || '/';\n const parts = format.split(/[/.-]/);\n const valueParts = value.split(sep);\n if (valueParts.length < 2) return value;\n\n let y = '',\n m = '',\n d = '';\n parts.forEach((p, i) => {\n const v = valueParts[i] || '';\n if (p.startsWith('y')) y = v;\n else if (p.startsWith('m')) m = v;\n else if (p.startsWith('d')) d = v;\n });\n\n if (y.length === 2) y = '20' + y;\n if (!d) d = '01';\n\n return `${y.padStart(4, '0')}-${m.padStart(2, '0')}-${d.padStart(2, '0')}`;\n }\n\n /**\n * Convert an ISO date (yyyy-mm-dd) to the configured format.\n */\n formatDateFromISO(isoValue: string): string {\n if (!isoValue) return '';\n const [y, m, d] = isoValue.split('-');\n const format = this.getDateFormat();\n if (!format) return isoValue;\n\n return format\n .replace('yyyy', y)\n .replace('yy', y.slice(-2))\n .replace('mm', m)\n .replace('dd', d)\n .replace('d', String(parseInt(d)));\n }\n\n private getDateFormat(): string | null {\n const vType = validationTypes.find(v => v.id === this.dataItem?.validation);\n if (!vType || vType.inputType !== 'date') return null;\n return vType.description;\n }\n\n private getDateFormatById(validation: number): string | null {\n const vType = validationTypes.find(v => v.id === validation);\n if (!vType || vType.inputType !== 'date') return null;\n return vType.description;\n }\n\n private isSignatureType(): boolean {\n const fieldType = this.dataItem?.formElementType as string;\n return fieldType === 'signature' || fieldType === 'auto sign';\n }\n\n private getRoleType(): string {\n if (this.dataItem?.signer === 0) return 'SENDER';\n const role = this.roles?.find(r => r.signerIndex === this.dataItem?.signer);\n return role?.roleType || 'SIGNER';\n }\n\n private handleFieldTypeChange(newType: string) {\n const defaultValidation = getDefaultValidationForType(newType);\n const isSender = this.dataItem?.signer === 0;\n\n // Determine elementType based on formElementType\n let elementType: string;\n if (isSender) {\n elementType = 'admin';\n } else if (newType === 'signature') {\n elementType = 'signature';\n } else if (newType === 'initials') {\n elementType = 'initials';\n } else {\n elementType = 'text';\n }\n\n // Field types that don't support a user-editable value\n const noValueTypes = ['signature', 'initials', 'file', 'signing date', 'auto sign', 'date', 'dropdown', 'checkbox', 'drawn field'];\n // Also clear value when leaving a date field (formatted date values aren't valid for other types)\n const currentType = this.dataItem?.formElementType as string;\n const dateTypes = ['date', 'signing date'];\n const shouldClearValue = noValueTypes.includes(newType) || dateTypes.includes(currentType);\n\n const diff: any = {\n formElementType: newType as LSApiElement['formElementType'],\n elementType,\n validation: defaultValidation,\n };\n if (shouldClearValue) {\n diff.value = '';\n }\n\n this.dataItem = { ...this.dataItem, ...diff };\n this.mutate.emit([{ action: 'update', data: this.dataItem }]);\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n }\n\n private getSenderDisabledReason(): string {\n const signerOnlyTypes = ['signing date', 'regular expression', 'image', 'file', 'drawn', 'drawn field'];\n const fieldType = this.dataItem?.formElementType as string;\n if (signerOnlyTypes.includes(fieldType)) {\n const nameMap = {\n 'signing date': dvI18n.t('toolbox.signingdate'),\n 'regular expression': dvI18n.t('toolbox.regex'),\n 'image': dvI18n.t('toolbox.image'),\n 'file': dvI18n.t('toolbox.file'),\n 'drawn': dvI18n.t('toolbox.drawn'),\n 'drawn field': dvI18n.t('toolbox.drawn'),\n };\n return dvI18n.t('fieldproperties.cannotreassignsendersingle', { fieldTypes: nameMap[fieldType] || fieldType });\n }\n return '';\n }\n\n private handleReassign(newSigner: number) {\n const fieldType = this.dataItem?.formElementType as string;\n\n // Auto Sign reassigned away from Sender → becomes Signature\n if (fieldType === 'auto sign' && newSigner !== 0) {\n this.alterImmediate({ signer: newSigner, formElementType: 'signature', elementType: 'signature', validation: 0 });\n return;\n }\n\n // Signature reassigned to Sender → becomes Auto Sign\n if (fieldType === 'signature' && newSigner === 0) {\n this.alterImmediate({ signer: newSigner, formElementType: 'auto sign' as any, elementType: 'admin', validation: 3000 });\n return;\n }\n\n // Any field reassigned to Sender → elementType becomes 'admin'\n // Any field reassigned away from Sender → elementType reverts to its formElementType category\n if (newSigner === 0) {\n this.alterImmediate({ signer: newSigner, elementType: 'admin' });\n } else if (this.dataItem?.signer === 0) {\n const elType = (fieldType === 'initials') ? 'initials' : 'text';\n this.alterImmediate({ signer: newSigner, elementType: elType });\n } else {\n this.alterImmediate({ signer: newSigner });\n }\n }\n\n private handleFormatChange(newValidation: number) {\n const currentValue = this.dataItem?.value;\n if (!currentValue || !this.isDateField()) {\n this.alterImmediate({ validation: newValidation });\n return;\n }\n\n // Parse current value to ISO using the old format\n const oldFormat = this.getDateFormat();\n const newFormat = this.getDateFormatById(newValidation);\n if (!oldFormat || !newFormat) {\n this.alterImmediate({ validation: newValidation });\n return;\n }\n\n const parts = oldFormat.split(/[/.-]/);\n const sep = oldFormat.match(/[/.-]/)?.[0] || '/';\n const valueParts = currentValue.split(sep);\n if (valueParts.length < 2) {\n this.alterImmediate({ validation: newValidation });\n return;\n }\n\n let y = '',\n m = '',\n d = '';\n parts.forEach((p, i) => {\n const v = valueParts[i] || '';\n if (p.startsWith('y')) y = v;\n else if (p.startsWith('m')) m = v;\n else if (p.startsWith('d')) d = v;\n });\n\n if (y.length === 2) y = '20' + y;\n if (!d) d = '01';\n\n const newValue = newFormat\n .replace('yyyy', y.padStart(4, '0'))\n .replace('yy', y.slice(-2))\n .replace('mm', m.padStart(2, '0'))\n .replace('dd', d.padStart(2, '0'))\n .replace('d', String(parseInt(d)));\n\n this.alterImmediate({ validation: newValidation, value: newValue });\n }\n\n render() {\n return (\n <Host>\n {this.roles?.length > 0 && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.assignee')} sectionDescription={dvI18n.t('fieldproperties.assigneedescription')}>\n <ls-assignee-select\n signer={this.dataItem?.signer}\n roles={this.roles}\n disabled={this.readonly}\n disabledSenderReason={this.getSenderDisabledReason()}\n disabledApproverReason={this.isSignatureType() ? dvI18n.t('fieldproperties.signaturecannotapproversingle') : ''}\n onAssigneeChange={ev => this.handleReassign(ev.detail)}\n />\n </ls-props-section>\n )}\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.fieldtype')} sectionDescription={dvI18n.t('fieldproperties.fieldtypedescription')}>\n <ls-field-type-select\n fieldType={this.dataItem?.formElementType}\n assignee={this.dataItem?.signer}\n roles={this.roles}\n roleTypes={[this.getRoleType()]}\n disabled={this.readonly}\n filtertoolbox={this.filtertoolbox}\n onFieldTypeChange={ev => this.handleFieldTypeChange(ev.detail)}\n />\n </ls-props-section>\n {this.dataItem?.formElementType !== 'signature' && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.requiredfield')} row={true} sectionDescription={dvI18n.t('fieldproperties.requiredfielddescription')}>\n <ls-toggle id=\"toggle-required\" checked={!this.dataItem?.optional} onValueChange={ev => !this.readonly && this.alterImmediate({ optional: !ev.detail })} />\n </ls-props-section>\n )}\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.fieldlabel')} sectionDescription={dvI18n.t('fieldproperties.fieldlabeldescription')}>\n <ls-formfield\n as=\"text\"\n name=\"field-label\"\n value={this.dataItem?.label}\n placeholder={getFieldTitleSuggestion(this.dataItem?.formElementType)}\n disabled={this.readonly}\n onTextChange={e => this.alter({ label: e.detail.value })}\n />\n </ls-props-section>\n {this.supportsValue() && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.value')} sectionDescription={dvI18n.t('fieldproperties.valuedescription')}>\n {this.isDateField() ? (\n <div class=\"ls-dv-date-input-wrapper\">\n <input\n class=\"ls-dv-date-display\"\n type=\"text\"\n value={this.dataItem?.value}\n placeholder={this.getDateFormat()}\n readOnly\n onClick={() => {\n if (this.readonly) return;\n const picker = this.component.shadowRoot.getElementById('ls-date-picker') as HTMLInputElement;\n if (picker) picker.showPicker();\n }}\n />\n {this.dataItem?.value && !this.readonly && (\n <div class=\"ls-dv-date-clear\" onClick={() => this.alterImmediate({ value: '' })}>\n <ls-icon name=\"x-icon\" size={20} />\n </div>\n )}\n <input\n id=\"ls-date-picker\"\n class=\"ls-dv-date-picker-hidden\"\n type=\"date\"\n value={this.toISODate(this.dataItem?.value)}\n onInput={e => {\n const input = e.target as HTMLInputElement;\n this.alter({ value: this.formatDateFromISO(input.value) });\n forceCloseDatePicker(input);\n }}\n disabled={this.readonly}\n />\n </div>\n ) : (\n <ls-formfield\n as=\"text\"\n name=\"field-value\"\n value={this.dataItem?.value}\n placeholder={getFieldPlaceholder(this.dataItem?.formElementType)}\n valid={!this.valueError}\n dirty={this.isDirty}\n errorText={this.valueError}\n disabled={this.readonly}\n onTextChange={e => this.handleValueChange(e.detail.value)}\n />\n )}\n </ls-props-section>\n )}\n {this.dataItem.validation === 20 && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.options')} sectionDescription={dvI18n.t('fieldproperties.optionsdescription')}>\n <textarea\n value={this.dataItem?.options}\n placeholder=\"Option 1&#10;Option 2&#10;Option 3\"\n onInput={e => this.alter({ options: (e.target as HTMLTextAreaElement).value })}\n disabled={this.readonly}\n />\n </ls-props-section>\n )}\n\n {this.showValidationTypes && this.dataItem?.formElementType !== 'drawn field' && this.dataItem?.formElementType !== 'regular expression' && this.dataItem?.formElementType !== 'initials' && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.contentformat')} sectionDescription={dvI18n.t('fieldproperties.contentformatdescription')}>\n <ls-input-wrapper select>\n <select onChange={ev => !this.readonly && this.handleFormatChange(parseInt((ev.target as HTMLSelectElement).value))}>\n {validationTypes\n .filter(type => type.formType === this.dataItem?.formElementType)\n .map(type => (\n <option selected={this.dataItem?.validation === type.id} value={type.id}>\n {type.description}\n </option>\n ))}\n </select>\n </ls-input-wrapper>\n </ls-props-section>\n )}\n {this.dataItem?.formElementType === 'checkbox' && this.getCheckboxStates().length === 2 && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.displaystate')} sectionDescription={dvI18n.t('fieldproperties.displaystatedescription')}>\n <div class=\"ls-dv-checkbox-toggle\">\n {this.getCheckboxStates().map((state, idx) => (\n <button\n key={idx}\n class={{ 'ls-dv-checkbox-toggle-btn': true, 'ls-dv-active': idx === 0 ? this.dataItem?.value?.toString() !== 'true' : this.dataItem?.value?.toString() === 'true' }}\n onClick={() => !this.readonly && this.alterImmediate({ value: idx === 0 ? 'false' : 'true' })}\n disabled={this.readonly}\n >\n {state}\n </button>\n ))}\n </div>\n </ls-props-section>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ls-field-content.js","sourceRoot":"","sources":["../../../../src/components/ls-field-content/ls-field-content.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Event, EventEmitter, Element, State, Watch, Listen } from '@stencil/core';\nimport { LSApiElement, LSMutateEvent } from '../../components';\nimport { LSApiRole } from '../../types/LSApiRole';\nimport { validationTypes, getInputType } from '../ls-document-viewer/editorUtils';\nimport { getFieldPlaceholder, getFieldTitleSuggestion } from '../ls-document-viewer/defaultFieldLabels';\nimport { dvI18n } from '../../i18n/i18n';\nimport { validateFieldValue } from '../../utils/fieldValueValidator';\nimport { getDefaultValidationForType } from '../ls-field-type-select/fieldTypeUtils';\nimport { forceCloseDatePicker } from '../../utils/utils';\n\n@Component({\n tag: 'ls-field-content',\n styleUrl: 'ls-field-content.scss',\n shadow: true,\n})\nexport class LsFieldContent {\n @Element() component: HTMLElement;\n @Prop({ mutable: true }) dataItem: LSApiElement;\n @Prop() roles: LSApiRole[] = [];\n @Prop() showValidationTypes: boolean = true;\n @Prop() readonly: boolean = false;\n @Prop() filtertoolbox: string = null;\n\n @State() valueError: string | null = null;\n @State() isDirty: boolean = false;\n\n @Watch('dataItem')\n watchDataItemHandler() {\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n this.isDirty = !!this.dataItem?.value && this.dataItem.value.length > 0;\n }\n\n componentWillLoad() {\n if (this.dataItem?.value) {\n this.isDirty = true;\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n this.dataItem?.value,\n this.dataItem?.options,\n );\n }\n }\n\n disconnectedCallback() {\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n // Component is already detached from DOM so events can't bubble.\n // Dispatch on document and let ls-document-viewer pick it up.\n document.dispatchEvent(\n new CustomEvent('ls-flush-mutate', {\n detail: [{ action: 'update', data: this.dataItem }],\n }),\n );\n }\n }\n\n @Event({\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n mutate: EventEmitter<LSMutateEvent[]>;\n\n @Event({\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n update: EventEmitter<LSMutateEvent[]>;\n\n // Send one or more mutations up the chain\n // The source of the chain fires the mutation\n // Debounced alter for text inputs (value, label, options)\n alter(diff: object) {\n this.dataItem = { ...this.dataItem, ...diff };\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n this.debounce(this.dataItem, 1500);\n }\n\n // Immediate alter for instant actions (toggles, selects, dropdowns)\n alterImmediate(diff: object) {\n this.dataItem = { ...this.dataItem, ...diff };\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n }\n this.mutate.emit([{ action: 'update', data: this.dataItem }]);\n }\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n const isMod = e.ctrlKey || e.metaKey;\n if (isMod && (e.key === 'z' || e.key === 'Z' || e.key === 'y' || e.key === 'Y')) {\n e.preventDefault();\n // Cancel any pending debounce (discard uncommitted changes)\n if (this.labeltimer) {\n clearTimeout(this.labeltimer);\n this.labeltimer = null;\n }\n // Don't stopPropagation — let the event reach the document-level keydown handler\n return;\n }\n }\n\n handleValueChange(value: string) {\n this.isDirty = value.length > 0;\n this.valueError = validateFieldValue(\n this.dataItem?.formElementType,\n this.dataItem?.validation,\n value,\n this.dataItem?.options,\n );\n this.alter({ value });\n }\n\n private labeltimer;\n\n debounce(data, delay) {\n if (this.labeltimer) clearTimeout(this.labeltimer);\n\n this.labeltimer = setTimeout(() => {\n const diffs: LSMutateEvent[] = [{ action: 'update', data }];\n this.mutate.emit(diffs);\n }, delay);\n }\n\n supportsValue() {\n const typesWithValue = ['signature', 'initials', 'file', 'signing', 'autosign', 'signing date', 'auto sign', 'dropdown', 'checkbox', 'drawn field'];\n\n return !typesWithValue.includes(this.dataItem?.formElementType);\n }\n\n private getCheckboxStates(): string[] {\n const vType = validationTypes.find(v => v.id === this.dataItem?.validation);\n if (!vType) return [];\n return vType.description.split('/').reverse();\n }\n\n isDateField(): boolean {\n return getInputType(this.dataItem?.validation)?.inputType === 'date';\n }\n\n /**\n * Convert a formatted date value back to ISO (yyyy-mm-dd) for the native date input.\n */\n toISODate(value: string): string {\n if (!value) return '';\n const format = this.getDateFormat();\n if (!format) return value;\n\n const sep = format.match(/[/.-]/)?.[0] || '/';\n const parts = format.split(/[/.-]/);\n const valueParts = value.split(sep);\n if (valueParts.length < 2) return value;\n\n let y = '',\n m = '',\n d = '';\n parts.forEach((p, i) => {\n const v = valueParts[i] || '';\n if (p.startsWith('y')) y = v;\n else if (p.startsWith('m')) m = v;\n else if (p.startsWith('d')) d = v;\n });\n\n if (y.length === 2) y = '20' + y;\n if (!d) d = '01';\n\n return `${y.padStart(4, '0')}-${m.padStart(2, '0')}-${d.padStart(2, '0')}`;\n }\n\n /**\n * Convert an ISO date (yyyy-mm-dd) to the configured format.\n */\n formatDateFromISO(isoValue: string): string {\n if (!isoValue) return '';\n const [y, m, d] = isoValue.split('-');\n const format = this.getDateFormat();\n if (!format) return isoValue;\n\n return format\n .replace('yyyy', y)\n .replace('yy', y.slice(-2))\n .replace('mm', m)\n .replace('dd', d)\n .replace('d', String(parseInt(d)));\n }\n\n private getDateFormat(): string | null {\n const vType = validationTypes.find(v => v.id === this.dataItem?.validation);\n if (!vType || vType.inputType !== 'date') return null;\n return vType.description;\n }\n\n private getDateFormatById(validation: number): string | null {\n const vType = validationTypes.find(v => v.id === validation);\n if (!vType || vType.inputType !== 'date') return null;\n return vType.description;\n }\n\n private isSignatureType(): boolean {\n const fieldType = this.dataItem?.formElementType as string;\n return fieldType === 'signature' || fieldType === 'auto sign';\n }\n\n private getRoleType(): string {\n if (this.dataItem?.signer === 0) return 'SENDER';\n const role = this.roles?.find(r => r.signerIndex === this.dataItem?.signer);\n return role?.roleType || 'SIGNER';\n }\n\n private handleFieldTypeChange(newType: string) {\n const defaultValidation = getDefaultValidationForType(newType);\n const isSender = this.dataItem?.signer === 0;\n\n // Determine elementType based on formElementType\n let elementType: string;\n if (isSender) {\n elementType = 'admin';\n } else if (newType === 'signature') {\n elementType = 'signature';\n } else if (newType === 'initials') {\n elementType = 'initials';\n } else {\n elementType = 'text';\n }\n\n // Field types that don't support a user-editable value\n const noValueTypes = ['signature', 'initials', 'file', 'signing date', 'auto sign', 'date', 'dropdown', 'checkbox', 'drawn field'];\n // Also clear value when leaving a date field (formatted date values aren't valid for other types)\n const currentType = this.dataItem?.formElementType as string;\n const dateTypes = ['date', 'signing date'];\n const shouldClearValue = noValueTypes.includes(newType) || dateTypes.includes(currentType);\n\n const diff: any = {\n formElementType: newType as LSApiElement['formElementType'],\n elementType,\n validation: defaultValidation,\n };\n if (shouldClearValue) {\n diff.value = '';\n }\n\n this.dataItem = { ...this.dataItem, ...diff };\n this.mutate.emit([{ action: 'update', data: this.dataItem }]);\n this.update.emit([{ action: 'update', data: this.dataItem }]);\n }\n\n private getSenderDisabledReason(): string {\n const signerOnlyTypes = ['signing date', 'regular expression', 'image', 'file', 'drawn', 'drawn field'];\n const fieldType = this.dataItem?.formElementType as string;\n if (signerOnlyTypes.includes(fieldType)) {\n const nameMap = {\n 'signing date': dvI18n.t('toolbox.signingdate'),\n 'regular expression': dvI18n.t('toolbox.regex'),\n 'image': dvI18n.t('toolbox.image'),\n 'file': dvI18n.t('toolbox.file'),\n 'drawn': dvI18n.t('toolbox.drawn'),\n 'drawn field': dvI18n.t('toolbox.drawn'),\n };\n return dvI18n.t('fieldproperties.cannotreassignsendersingle', { fieldTypes: nameMap[fieldType] || fieldType });\n }\n return '';\n }\n\n private handleReassign(newSigner: number) {\n const fieldType = this.dataItem?.formElementType as string;\n\n // Auto Sign reassigned away from Sender → becomes Signature\n if (fieldType === 'auto sign' && newSigner !== 0) {\n this.alterImmediate({ signer: newSigner, formElementType: 'signature', elementType: 'signature', validation: 0 });\n return;\n }\n\n // Signature reassigned to Sender → becomes Auto Sign\n if (fieldType === 'signature' && newSigner === 0) {\n this.alterImmediate({ signer: newSigner, formElementType: 'auto sign' as any, elementType: 'admin', validation: 3000 });\n return;\n }\n\n // Any field reassigned to Sender → elementType becomes 'admin'\n // Any field reassigned away from Sender → elementType reverts to its formElementType category\n if (newSigner === 0) {\n this.alterImmediate({ signer: newSigner, elementType: 'admin' });\n } else if (this.dataItem?.signer === 0) {\n const elType = (fieldType === 'initials') ? 'initials' : 'text';\n this.alterImmediate({ signer: newSigner, elementType: elType });\n } else {\n this.alterImmediate({ signer: newSigner });\n }\n }\n\n private handleFormatChange(newValidation: number) {\n const currentValue = this.dataItem?.value;\n if (!currentValue || !this.isDateField()) {\n this.alterImmediate({ validation: newValidation });\n return;\n }\n\n // Parse current value to ISO using the old format\n const oldFormat = this.getDateFormat();\n const newFormat = this.getDateFormatById(newValidation);\n if (!oldFormat || !newFormat) {\n this.alterImmediate({ validation: newValidation });\n return;\n }\n\n const parts = oldFormat.split(/[/.-]/);\n const sep = oldFormat.match(/[/.-]/)?.[0] || '/';\n const valueParts = currentValue.split(sep);\n if (valueParts.length < 2) {\n this.alterImmediate({ validation: newValidation });\n return;\n }\n\n let y = '',\n m = '',\n d = '';\n parts.forEach((p, i) => {\n const v = valueParts[i] || '';\n if (p.startsWith('y')) y = v;\n else if (p.startsWith('m')) m = v;\n else if (p.startsWith('d')) d = v;\n });\n\n if (y.length === 2) y = '20' + y;\n if (!d) d = '01';\n\n const newValue = newFormat\n .replace('yyyy', y.padStart(4, '0'))\n .replace('yy', y.slice(-2))\n .replace('mm', m.padStart(2, '0'))\n .replace('dd', d.padStart(2, '0'))\n .replace('d', String(parseInt(d)));\n\n this.alterImmediate({ validation: newValidation, value: newValue });\n }\n\n render() {\n return (\n <Host>\n {this.roles?.length > 0 && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.assignee')} sectionDescription={dvI18n.t('fieldproperties.assigneedescription')}>\n <ls-assignee-select\n signer={this.dataItem?.signer}\n roles={this.roles}\n disabled={this.readonly}\n disabledSenderReason={this.getSenderDisabledReason()}\n disabledApproverReason={this.isSignatureType() ? dvI18n.t('fieldproperties.signaturecannotapproversingle') : ''}\n onAssigneeChange={ev => this.handleReassign(ev.detail)}\n />\n </ls-props-section>\n )}\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.fieldtype')} sectionDescription={dvI18n.t('fieldproperties.fieldtypedescription')}>\n <ls-field-type-select\n fieldType={this.dataItem?.formElementType}\n assignee={this.dataItem?.signer}\n roles={this.roles}\n roleTypes={[this.getRoleType()]}\n disabled={this.readonly}\n filtertoolbox={this.filtertoolbox}\n onFieldTypeChange={ev => this.handleFieldTypeChange(ev.detail)}\n />\n </ls-props-section>\n {this.dataItem?.formElementType !== 'signature' && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.requiredfield')} row={true} sectionDescription={dvI18n.t('fieldproperties.requiredfielddescription')}>\n <ls-toggle id=\"toggle-required\" checked={!this.dataItem?.optional} onValueChange={ev => !this.readonly && this.alterImmediate({ optional: !ev.detail })} />\n </ls-props-section>\n )}\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.fieldlabel')} sectionDescription={dvI18n.t('fieldproperties.fieldlabeldescription')}>\n <ls-formfield\n as=\"text\"\n name=\"field-label\"\n value={this.dataItem?.label}\n placeholder={getFieldTitleSuggestion(this.dataItem?.formElementType)}\n disabled={this.readonly}\n onTextChange={e => this.alter({ label: e.detail.value })}\n />\n </ls-props-section>\n {this.supportsValue() && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.value')} sectionDescription={dvI18n.t('fieldproperties.valuedescription')}>\n {this.isDateField() ? (\n <div class=\"ls-dv-date-input-wrapper\">\n <input\n class=\"ls-dv-date-display\"\n type=\"text\"\n value={this.dataItem?.value}\n placeholder={this.getDateFormat()}\n readOnly\n onClick={() => {\n if (this.readonly) return;\n const picker = this.component.shadowRoot.getElementById('ls-date-picker') as HTMLInputElement;\n if (picker) picker.showPicker();\n }}\n />\n {this.dataItem?.value && !this.readonly && (\n <div class=\"ls-dv-date-clear\" onClick={() => this.alterImmediate({ value: '' })}>\n <ls-icon name=\"x-icon\" size={20} />\n </div>\n )}\n <input\n id=\"ls-date-picker\"\n class=\"ls-dv-date-picker-hidden\"\n type=\"date\"\n value={this.toISODate(this.dataItem?.value)}\n onInput={e => {\n const input = e.target as HTMLInputElement;\n this.alter({ value: this.formatDateFromISO(input.value) });\n forceCloseDatePicker(input);\n }}\n disabled={this.readonly}\n />\n </div>\n ) : (\n <ls-formfield\n as=\"text\"\n name=\"field-value\"\n value={this.dataItem?.value}\n placeholder={getFieldPlaceholder(this.dataItem?.formElementType)}\n valid={!this.valueError}\n dirty={this.isDirty}\n errorText={this.valueError}\n disabled={this.readonly}\n onTextChange={e => this.handleValueChange(e.detail.value)}\n />\n )}\n </ls-props-section>\n )}\n {this.dataItem.validation === 20 && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.options')} sectionDescription={dvI18n.t('fieldproperties.optionsdescription')}>\n <textarea\n value={this.dataItem?.options}\n placeholder=\"Option 1&#10;Option 2&#10;Option 3\"\n onInput={e => this.alter({ options: (e.target as HTMLTextAreaElement).value })}\n disabled={this.readonly}\n />\n </ls-props-section>\n )}\n\n {this.showValidationTypes && this.dataItem?.formElementType !== 'drawn field' && this.dataItem?.formElementType !== 'regular expression' && this.dataItem?.formElementType !== 'initials' && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.contentformat')} sectionDescription={dvI18n.t('fieldproperties.contentformatdescription')}>\n <ls-input-wrapper select>\n <select onChange={ev => !this.readonly && this.handleFormatChange(parseInt((ev.target as HTMLSelectElement).value))}>\n {validationTypes\n .filter(type => type.formType === this.dataItem?.formElementType)\n .map(type => (\n <option selected={this.dataItem?.validation === type.id} value={type.id}>\n {type.description}\n </option>\n ))}\n </select>\n </ls-input-wrapper>\n </ls-props-section>\n )}\n {this.dataItem?.formElementType === 'checkbox' && this.getCheckboxStates().length === 2 && (\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.displaystate')} sectionDescription={dvI18n.t('fieldproperties.displaystatedescription')}>\n <div class=\"ls-dv-checkbox-toggle\">\n {this.getCheckboxStates().map((state, idx) => (\n <button\n key={idx}\n class={{ 'ls-dv-checkbox-toggle-btn': true, 'ls-dv-active': idx === 0 ? this.dataItem?.value?.toString() !== 'true' : this.dataItem?.value?.toString() === 'true' }}\n onClick={() => !this.readonly && this.alterImmediate({ value: idx === 0 ? 'false' : 'true' })}\n disabled={this.readonly}\n >\n {state}\n </button>\n ))}\n </div>\n </ls-props-section>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -42,27 +42,27 @@ export class LsFieldFormat {
42
42
  render() {
43
43
  return (h(Host, { key: '67f8db275fa6516f07620f0df259906e9d8ae470' }, this.dataItem && this.dataItem.length > 1 && (h("div", { key: '3ce7162ceaf8a026e4a7241ef40dfead41a5b1c1', class: 'ls-dv-field-format-bar' }, h("div", { key: 'f30f132d45c15ba7f68ef2c8783dfa28c15141cf', class: "ls-dv-input-wrapper", "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.fontfamily') }, h("ls-icon", { key: '08c73e77c38361bc2d37ef15c3e06cf813618961', id: "selectLeadingIcon", name: "typeface-icon" }), h("select", { key: '018191b86e12770767a551688aeeecbdbe51a4e2', id: "ls-toolbar-font-select", onChange: input => {
44
44
  this.alter({ fontName: input.target.value });
45
- }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, h("option", { key: '93b0f9b75f41876d63a1d622ca94b9b5e9dfa908', disabled: true, selected: this.allElementsSame()?.fontName === 'mixed', value: 'mixed' }, dvI18n.t('fieldproperties.mixed')), h("option", { key: 'e9faa9dfaf3ff75a3ce510e64419ac093acccd25', value: "arial" }, "Arial"), h("option", { key: '5413540ea455a5400ba7863f966ed00e375a0aca', value: "liberation sans" }, "Liberation Sans"), h("option", { key: 'e2bc50e815be771b895e62412870ffbc3040b81c', value: "courier" }, "Courier"), h("option", { key: '1e55938cc8c6dd3ccc5e40d3b2f4850e9a096331', value: "helvetica" }, "Helvetica"), h("option", { key: '1c373b991d947136ea0455520d8aa4e32ad5b6a2', value: "verdana" }, "Verdana")), h("ls-icon", { key: '1dd3f7d87a1d536fc49cc2c651fb16023ef06974', id: "selectorIcon", name: "selector-icon" })), h("div", { key: '0b3d34d0fd24a9a5f15e3427eaee8fbaa09c50d9', class: "ls-dv-input-wrapper", "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.fontsize') }, h("ls-icon", { key: 'ea7f90f6b7f0bb5fa82c506e5ba7168ee8955046', id: "selectLeadingIcon", name: "text-size-icon" }), h("select", { key: 'a670b34f1862cab65b19c24510475642bd0a0151', id: "ls-toolbar-font-size", onChange: input => {
45
+ }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, h("option", { key: '93b0f9b75f41876d63a1d622ca94b9b5e9dfa908', disabled: true, selected: this.allElementsSame()?.fontName === 'mixed', value: 'mixed' }, dvI18n.t('fieldproperties.mixed')), h("option", { key: 'e9faa9dfaf3ff75a3ce510e64419ac093acccd25', value: "arial" }, "Arial"), h("option", { key: '7b280f5f8efc88446af24e97b711516ac4008be1', value: "liberation" }, "Liberation Sans"), h("option", { key: '18c03b38a08bfee4e046a38761c3483aec71a77b', value: "courier" }, "Courier"), h("option", { key: 'e7072bfff3ada9f0024313e3f43d0245c6079b28', value: "helvetica" }, "Helvetica"), h("option", { key: '439c95cc62ea7c161959a374298c9d47a8204546', value: "verdana" }, "Verdana")), h("ls-icon", { key: '95baaab584a60fc85d280c15f3bd9c78b0622e58', id: "selectorIcon", name: "selector-icon" })), h("div", { key: '9bbda6ae453b07da37cdaeebb964ade7803254bf', class: "ls-dv-input-wrapper", "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.fontsize') }, h("ls-icon", { key: '46c03f524378b946e6f32ce82e525f08fa92ab1a', id: "selectLeadingIcon", name: "text-size-icon" }), h("select", { key: '3dd39f77e2aaab4caad2de89bc6a5f703e2e312a', id: "ls-toolbar-font-size", onChange: input => {
46
46
  this.alter({ fontSize: parseInt(input.target.value) });
47
47
  input.target.blur();
48
- }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, h("option", { key: 'e40fdaf0ca276efe8194b05e41d66e7174c8808a', disabled: true, selected: this.allElementsSame()?.fontSize === 'mixed', value: 'mixed' }, dvI18n.t('fieldproperties.mixed')), this.fontSizes.map(size => (h("option", { value: size, selected: this.allElementsSame()?.fontSize === size }, size)))), h("ls-icon", { key: '4e28ff244f66ee0b15953cdc6202f26407d23ebc', id: "selectorIcon", name: "selector-icon" })), h("div", { key: 'a8e049e6af6bad662794774ddc429a8e35c3f5ac', class: 'ls-dv-button-group' }, h("button", { key: 'ef21f5a453ca99a5f35e658834fd5e2614d6cf99', class: { 'ls-dv-active': this.allElementsSame()?.align === 'left' }, onClick: () => {
48
+ }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, h("option", { key: 'f89b1abc0a8bd45e109cd5ba6d4d121e7e639d63', disabled: true, selected: this.allElementsSame()?.fontSize === 'mixed', value: 'mixed' }, dvI18n.t('fieldproperties.mixed')), this.fontSizes.map(size => (h("option", { value: size, selected: this.allElementsSame()?.fontSize === size }, size)))), h("ls-icon", { key: 'a37b3ecdff064a154bce9b4c0bf249c2009a1c0e', id: "selectorIcon", name: "selector-icon" })), h("div", { key: '28f5d1dde6f30624f2ebc0175bfeea629732cdcb', class: 'ls-dv-button-group' }, h("button", { key: '64ef281302a4218328cd8887c52bbc850629425c', class: { 'ls-dv-active': this.allElementsSame()?.align === 'left' }, onClick: () => {
49
49
  this.alter({ align: 'left' });
50
- }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextleft') }, h("ls-icon", { key: '4da98a96764050724e2f6d3097e9af5fbf53c821', name: "menu-alt-2-icon" })), h("button", { key: 'fcd3484f8d5f465759540307b72d631f039ab35a', class: { 'ls-dv-active': this.allElementsSame()?.align === 'center' }, onClick: () => {
50
+ }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextleft') }, h("ls-icon", { key: '985ea95bf99b920e8671847c9bf50533c294498c', name: "menu-alt-2-icon" })), h("button", { key: '835b802969be4c4d68db935d1e7c96a6754b2d15', class: { 'ls-dv-active': this.allElementsSame()?.align === 'center' }, onClick: () => {
51
51
  this.alter({ align: 'center' });
52
- }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextcenter') }, h("ls-icon", { key: '49bfdbeb22c070745d1983cd2f7da8bda16cddd9', name: "menu-alt-5-icon" })), h("button", { key: 'e268356ff6151dc4028c70c7a1758e43c28d85b8', class: { 'ls-dv-active': this.allElementsSame()?.align === 'right' }, onClick: () => {
52
+ }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextcenter') }, h("ls-icon", { key: '7a549d92ec713eead0a40144a0a0e9073d51fbaf', name: "menu-alt-5-icon" })), h("button", { key: '161d87c93f040f2a0dcf7736346d24be594d58f9', class: { 'ls-dv-active': this.allElementsSame()?.align === 'right' }, onClick: () => {
53
53
  this.alter({ align: 'right' });
54
- }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextright') }, h("ls-icon", { key: '6c45da11a894896db5316d217a46841a85091eeb', name: "menu-alt-3-icon" }))))), this.dataItem && this.dataItem.length === 1 && (h("div", { key: 'cb23e30fec14ef67d513ffa60338979dfcafb32d', class: 'ls-dv-field-format-bar' }, h("div", { key: 'd40a46e9d89c82bcd0ef21eccd547259379f628f', class: "ls-dv-input-wrapper", "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.fontfamily') }, h("ls-icon", { key: '2b0fe2b9480a3ecf8a82e22bd994745053d081fb', id: "selectorIcon", name: "selector-icon" }), h("ls-icon", { key: '2adc4c6053d85722b06683c4b20ac6231c089c53', id: "selectLeadingIcon", name: "typeface-icon" }), h("select", { key: '4168fd064cf2b46333381565bd3f7269b14e2b20', id: "ls-toolbar-font-select", onChange: input => {
54
+ }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextright') }, h("ls-icon", { key: 'e0f846262279b2c0dc2424aa9c8f101cfcfee1b9', name: "menu-alt-3-icon" }))))), this.dataItem && this.dataItem.length === 1 && (h("div", { key: '9d3b885f45d74ccfe58c5fd6c6b6899d16d21c1d', class: 'ls-dv-field-format-bar' }, h("div", { key: '8786b8c864cab4f984a5b93d53f698c66e94a3bc', class: "ls-dv-input-wrapper", "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.fontfamily') }, h("ls-icon", { key: '585579e38e58636f437d6411825f80f994a1a21b', id: "selectorIcon", name: "selector-icon" }), h("ls-icon", { key: '507c013a74531a6b52c4624b828e5e70d53270ad', id: "selectLeadingIcon", name: "typeface-icon" }), h("select", { key: '3878862175dbd05a7f65f40c918e3282e824558d', id: "ls-toolbar-font-select", onChange: input => {
55
55
  this.alter({ fontName: input.target.value });
56
- }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, h("option", { key: '0ed152805ac598e6adf7eee94b786a148fd5b4dc', value: "arial" }, "Arial"), h("option", { key: 'b7bb10b4fd416c79b8249be1f0e82aeb9a77414b', value: "liberation sans" }, "Liberation Sans"), h("option", { key: '9714129023f16095f0fa30632e542484680189e3', value: "courier" }, "Courier"), h("option", { key: '1fe1e397be109e901d1c1edea058691ec2e27d7b', value: "helvetica" }, "Helvetica"), h("option", { key: '75f660b8ae419e1961fcac93f166b698d12c42bb', value: "verdana" }, "Verdana"))), h("div", { key: '50a9bd6dfb296e71703b9a56672a1e1fa9c704db', class: "ls-dv-input-wrapper", "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.fontsize') }, h("ls-icon", { key: 'f229fefe4e0fdfd4f15838c59be8a765b00676ff', id: "selectLeadingIcon", name: "text-size-icon" }), h("select", { key: 'eb49bb918c468c4a9a9bfa9418009a15ea098be5', id: "ls-toolbar-font-size", onChange: input => {
56
+ }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, h("option", { key: '6b57efb90ef6a3b2ba2d13d5f714b6a1523e41d1', value: "arial" }, "Arial"), h("option", { key: '95e762ed828bc06aec4967109326989bc860172c', value: "liberation" }, "Liberation Sans"), h("option", { key: '42c6cd2a625aa96276ef080133c59069d692458c', value: "courier" }, "Courier"), h("option", { key: 'a70cf28e4ae339be15695fb1ac318504addb1668', value: "helvetica" }, "Helvetica"), h("option", { key: 'a74abcdacc483826d83ea75279ab54b2182906ce', value: "verdana" }, "Verdana"))), h("div", { key: '6d86948ef41adaa0669fc8f509a0f10f69d8acf7', class: "ls-dv-input-wrapper", "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.fontsize') }, h("ls-icon", { key: '2e207b573f445015d4abebec892f66ca80301299', id: "selectLeadingIcon", name: "text-size-icon" }), h("select", { key: '10de2be7b36eaf872f06641411ba73fb64f7e377', id: "ls-toolbar-font-size", onChange: input => {
57
57
  this.alter({ fontSize: parseInt(input.target.value) });
58
58
  input.target.blur();
59
- }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, this.fontSizes.map(size => (h("option", { value: size, selected: this.dataItem[0].fontSize === size }, size)))), h("ls-icon", { key: '786b2574d413bf5a0c97e3ea450ddd970ee107e1', id: "selectorIcon", name: "selector-icon" })), h("div", { key: '9685cc38d264a1d0e2601678a7520ba762d636ca', class: 'ls-dv-button-group' }, h("button", { key: '4ecce7ba97c5f5b53934315228dfba6e8d451300', class: { 'ls-dv-active': this.dataItem[0].align === 'left' || !this.dataItem[0].align }, onClick: () => {
59
+ }, class: 'ls-dv-has-leading-icon ls-dv-has-trailing-icon' }, this.fontSizes.map(size => (h("option", { value: size, selected: this.dataItem[0].fontSize === size }, size)))), h("ls-icon", { key: '071e07610b965de760746c14cc28f629f697ea04', id: "selectorIcon", name: "selector-icon" })), h("div", { key: '4451f71ae8da401631636b6fda37aa6e3d921e8d', class: 'ls-dv-button-group' }, h("button", { key: 'b890d5ec32ec0986a5728823e92cfd186f69ca3f', class: { 'ls-dv-active': this.dataItem[0].align === 'left' || !this.dataItem[0].align }, onClick: () => {
60
60
  this.alter({ align: 'left' });
61
- }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextleft') }, h("ls-icon", { key: '151a7678af0f7c2e8b0f78df973ba0c03036e739', name: "menu-alt-2-icon" })), h("button", { key: 'b63476b1126fb898fbee91e73d40adbf220029af', class: { 'ls-dv-active': this.dataItem[0].align === 'center' }, onClick: () => {
61
+ }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextleft') }, h("ls-icon", { key: 'd88930fd3e0f1ec3493c520a749f7f3ab517d700', name: "menu-alt-2-icon" })), h("button", { key: '69607fbf8ddfb0e01d5c8a9c730d2175ebed8095', class: { 'ls-dv-active': this.dataItem[0].align === 'center' }, onClick: () => {
62
62
  this.alter({ align: 'center' });
63
- }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextcenter') }, h("ls-icon", { key: 'ec5c745f2f67a9c08b2b86fd7cd872d01a3820d6', name: "menu-alt-5-icon" })), h("button", { key: 'd74bde26243f86f0a70b57f049c999b6dba7f094', class: { 'ls-dv-active': this.dataItem[0].align === 'right' }, onClick: () => {
63
+ }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextcenter') }, h("ls-icon", { key: 'a238a5647c131c1a640e9fb54bcbfc3e58da392a', name: "menu-alt-5-icon" })), h("button", { key: 'edcfbf372e19a5a3f6d2aacf94f79645d38c0216', class: { 'ls-dv-active': this.dataItem[0].align === 'right' }, onClick: () => {
64
64
  this.alter({ align: 'right' });
65
- }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextright') }, h("ls-icon", { key: 'dc9dd2f488a90db7d9335444537884179eef47a5', name: "menu-alt-3-icon" }))))), h("ls-tooltip", { key: 'fe769c5d41dbdf56b5c689ea846175bf83756075', tooltipId: "ls-dv-tooltip" })));
65
+ }, "data-tooltip-id": "ls-dv-tooltip", "data-tooltip-content": dvI18n.t('format.aligntextright') }, h("ls-icon", { key: '4fc79e1f1befbce488049d47d420a70c09447832', name: "menu-alt-3-icon" }))))), h("ls-tooltip", { key: '649cfe25ea3da1e2605b28c13ca304f9f2865aa0', tooltipId: "ls-dv-tooltip" })));
66
66
  }
67
67
  static get is() { return "ls-field-format"; }
68
68
  static get encapsulation() { return "shadow"; }