@paperless/core 2.9.0 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{paperless/p-e5934335.entry.js → build/p-08b625cd.entry.js} +2 -2
  3. package/dist/build/p-08b625cd.entry.js.map +1 -0
  4. package/dist/build/p-0f2d54d2.entry.js +2 -0
  5. package/dist/build/p-0f2d54d2.entry.js.map +1 -0
  6. package/dist/build/{p-6f12eb4b.js → p-4df6d390.js} +1 -1
  7. package/dist/build/p-attachment.entry.esm.js.map +1 -1
  8. package/dist/build/p-empty-state.p-floating-menu-container.p-table-cell.p-table-container.p-table-footer.p-table-header.p-table-row.p-table-row-actions-container.entry.esm.js.map +1 -1
  9. package/dist/build/paperless.esm.js +1 -1
  10. package/dist/cjs/p-attachment.cjs.entry.js +12 -10
  11. package/dist/cjs/p-attachment.cjs.entry.js.map +1 -1
  12. package/dist/cjs/p-attachment.entry.cjs.js.map +1 -1
  13. package/dist/cjs/p-empty-state.p-floating-menu-container.p-table-cell.p-table-container.p-table-footer.p-table-header.p-table-row.p-table-row-actions-container.entry.cjs.js.map +1 -1
  14. package/dist/cjs/p-empty-state_8.cjs.entry.js +4 -5
  15. package/dist/cjs/p-empty-state_8.cjs.entry.js.map +1 -1
  16. package/dist/collection/components/molecules/attachment/attachment.component.css +1 -1
  17. package/dist/collection/components/molecules/attachment/attachment.component.js +11 -9
  18. package/dist/collection/components/molecules/attachment/attachment.component.js.map +1 -1
  19. package/dist/collection/components/molecules/table/header/table-header.component.js +4 -5
  20. package/dist/collection/components/molecules/table/header/table-header.component.js.map +1 -1
  21. package/dist/components/{p--8Wk5rpW.js → p-CbfQ0Wci.js} +6 -7
  22. package/dist/components/{p--8Wk5rpW.js.map → p-CbfQ0Wci.js.map} +1 -1
  23. package/dist/components/p-attachment.js +12 -10
  24. package/dist/components/p-attachment.js.map +1 -1
  25. package/dist/components/p-table-header.js +1 -1
  26. package/dist/components/p-table.js +1 -1
  27. package/dist/esm/p-attachment.entry.js +12 -10
  28. package/dist/esm/p-attachment.entry.js.map +1 -1
  29. package/dist/esm/p-empty-state.p-floating-menu-container.p-table-cell.p-table-container.p-table-footer.p-table-header.p-table-row.p-table-row-actions-container.entry.js.map +1 -1
  30. package/dist/esm/p-empty-state_8.entry.js +4 -5
  31. package/dist/esm/p-empty-state_8.entry.js.map +1 -1
  32. package/dist/index.html +1 -1
  33. package/dist/{build/p-e5934335.entry.js → paperless/p-08b625cd.entry.js} +2 -2
  34. package/dist/paperless/p-08b625cd.entry.js.map +1 -0
  35. package/dist/paperless/p-0f2d54d2.entry.js +2 -0
  36. package/dist/paperless/p-0f2d54d2.entry.js.map +1 -0
  37. package/dist/paperless/p-attachment.entry.esm.js.map +1 -1
  38. package/dist/paperless/p-empty-state.p-floating-menu-container.p-table-cell.p-table-container.p-table-footer.p-table-header.p-table-row.p-table-row-actions-container.entry.esm.js.map +1 -1
  39. package/dist/paperless/paperless.esm.js +1 -1
  40. package/dist/sw.js +1 -1
  41. package/dist/sw.js.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/build/p-6175408c.entry.js +0 -2
  44. package/dist/build/p-6175408c.entry.js.map +0 -1
  45. package/dist/build/p-e5934335.entry.js.map +0 -1
  46. package/dist/paperless/p-6175408c.entry.js +0 -2
  47. package/dist/paperless/p-6175408c.entry.js.map +0 -1
  48. package/dist/paperless/p-e5934335.entry.js.map +0 -1
@@ -9,12 +9,14 @@ import { d as defineCustomElement$4 } from './p-CYTBI5t8.js';
9
9
  import { d as defineCustomElement$3 } from './p-BFbLqg3-.js';
10
10
  import { d as defineCustomElement$2 } from './p-BUzthIe4.js';
11
11
 
12
- const attachmentComponentCss = ".block{display:block!important}*{box-sizing:border-box}:host{display:block;width:100%}.static{position:static!important}.flex{display:flex!important}.hidden{display:none!important}.h-8{height:2rem!important}.w-8{width:2rem!important}.w-full{width:100%!important}.min-w-0{min-width:0!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.gap-2{gap:.5rem!important}.overflow-hidden{overflow:hidden!important}.text-ellipsis{text-overflow:ellipsis!important}.whitespace-nowrap{white-space:nowrap!important}.rounded-lg{border-radius:.5rem!important}.border{border-width:1px!important}.border-solid{border-style:solid!important}.border-negative-red-500{--tw-border-opacity:1!important;border-color:rgb(230 30 30/var(--tw-border-opacity,1))!important}.border-storm-100{--tw-border-opacity:1!important;border-color:rgb(209 210 212/var(--tw-border-opacity,1))!important}.bg-white-600{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-negative-red-500{--tw-text-opacity:1!important;color:rgb(230 30 30/var(--tw-text-opacity,1))!important}.text-storm-200{--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}.text-storm-300{--tw-text-opacity:1!important;color:rgb(116 120 127/var(--tw-text-opacity,1))!important}.empty\\:hidden:empty{display:none!important}.peer:empty~.peer-empty\\:block{display:block!important}@media (min-width:64rem){.desktop-xs\\:hidden{display:none!important}}";
12
+ const attachmentComponentCss = ".block{display:block!important}*{box-sizing:border-box}:host{display:block;width:100%}.static{position:static!important}.flex{display:flex!important}.hidden{display:none!important}.h-8{height:2rem!important}.w-8{width:2rem!important}.w-full{width:100%!important}.min-w-0{min-width:0!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.gap-2{gap:.5rem!important}.overflow-hidden{overflow:hidden!important}.text-ellipsis{text-overflow:ellipsis!important}.whitespace-nowrap{white-space:nowrap!important}.rounded-lg{border-radius:.5rem!important}.border{border-width:1px!important}.border-solid{border-style:solid!important}.border-negative-red-500{--tw-border-opacity:1!important;border-color:rgb(230 30 30/var(--tw-border-opacity,1))!important}.border-storm-100{--tw-border-opacity:1!important;border-color:rgb(209 210 212/var(--tw-border-opacity,1))!important}.bg-white-600{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-negative-red-500{--tw-text-opacity:1!important;color:rgb(230 30 30/var(--tw-text-opacity,1))!important}.text-storm-200{--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}.text-storm-300{--tw-text-opacity:1!important;color:rgb(116 120 127/var(--tw-text-opacity,1))!important}.empty\\:hidden:empty{display:none!important}.peer:empty~.peer-empty\\:block{display:block!important}@media (min-width:64rem){.desktop-xs\\:hidden{display:none!important}}.dark\\:border-negative-red-alternative:where(:host([data-theme=dark]),:host([data-theme=dark]) *){--tw-border-opacity:1!important;border-color:rgb(255 92 92/var(--tw-border-opacity,1))!important}.dark\\:border-white\\/15:where(:host([data-theme=dark]),:host([data-theme=dark]) *){border-color:hsla(0,0%,100%,.15)!important}.dark\\:bg-white\\/15:where(:host([data-theme=dark]),:host([data-theme=dark]) *){background-color:hsla(0,0%,100%,.15)!important}.dark\\:text-hurricane-200:where(:host([data-theme=dark]),:host([data-theme=dark]) *){--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}.dark\\:border-negative-red-alternative:where([data-theme=dark],[data-theme=dark] *){--tw-border-opacity:1!important;border-color:rgb(255 92 92/var(--tw-border-opacity,1))!important}.dark\\:border-white\\/15:where([data-theme=dark],[data-theme=dark] *){border-color:hsla(0,0%,100%,.15)!important}.dark\\:bg-white\\/15:where([data-theme=dark],[data-theme=dark] *){background-color:hsla(0,0%,100%,.15)!important}.dark\\:text-hurricane-200:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}";
13
13
 
14
14
  const attachment = cva([
15
15
  'flex flex-1 items-center justify-start gap-2',
16
16
  'h-8 min-w-0 px-2 rounded-lg',
17
- 'border border-solid bg-white-600',
17
+ 'border border-solid',
18
+ 'bg-white-600 text-storm-200',
19
+ 'dark:bg-white/15 dark:text-hurricane-200',
18
20
  ], {
19
21
  variants: {
20
22
  click: {
@@ -22,8 +24,8 @@ const attachment = cva([
22
24
  true: 'cursor-pointer',
23
25
  },
24
26
  error: {
25
- false: 'bg-white-600 border-storm-100 text-storm-200',
26
- true: 'border-negative-red-500',
27
+ false: 'border-storm-100 dark:border-white/15',
28
+ true: 'border-negative-red-500 dark:border-negative-red-alternative',
27
29
  },
28
30
  },
29
31
  });
@@ -111,21 +113,21 @@ const Attachment = /*@__PURE__*/ proxyCustomElement(class Attachment extends H {
111
113
  _fileRef;
112
114
  _cameraFileRef;
113
115
  render() {
114
- let prefix = (h("p-icon", { key: '61b263083bd24fece19b81f620dccdb2ba6afcc5', class: 'text-storm-300', variant: 'attachment' }));
116
+ let prefix = (h("p-icon", { key: 'e3041d87911b3ef89be9ae6dd57d9ad51b4b6ba3', class: 'text-storm-300', variant: 'attachment' }));
115
117
  if (this.error) {
116
- prefix = (h("p-icon", { key: 'ba8fd76a2b95605d815bebe5cd89a7ae8f0ba9d3', variant: 'warning', class: 'text-negative-red-500' }));
118
+ prefix = (h("p-icon", { key: '8cd0ea7fd1848a8f9d3ee96d42b4ecdb5f4ed27b', variant: 'warning', class: 'text-negative-red-500' }));
117
119
  }
118
120
  // const isMobileDevice = isMobile();
119
121
  const isMobileDevice = isTablet();
120
122
  const baseText = 'min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-sm';
121
- return (h(Fragment, { key: '8e7d1cc9163883399d21c3b7e8be37f4b386a09b' }, h("p-field-container", { key: 'eb9251f428799f2c1d731b057f4328ed13aaa495', variant: 'write', label: this.label, helper: this.helper, error: this.error, required: this.required, forceShowTooltip: !!this.error?.length }, h("div", { key: 'd65eaeb4ac2c4de7f55903f4f8f69f8d933d99a7', slot: 'content', class: 'flex w-full items-start gap-2' }, h("div", { key: '51b9e490e67fcbc04d590d0d75b168313b24a919', class: attachment({
123
+ return (h(Fragment, { key: '0e75af5dc601f3cb7b24c197c532685154958e06' }, h("p-field-container", { key: '0bf08bb7ce1380635a9fc8b574ec86946e085ffe', variant: 'write', label: this.label, helper: this.helper, error: this.error, required: this.required, forceShowTooltip: !!this.error?.length }, h("div", { key: '5e5d80909c96afb1aabc9509888979fa662eaaff', slot: 'content', class: 'flex w-full items-start gap-2' }, h("div", { key: 'afee7e83fe90d843de8bf509ed3d7d451483795f', class: attachment({
122
124
  click: this.mode === 'write' && !this.value?.length,
123
125
  error: !!this.error?.length,
124
- }), onClick: () => this._uploadClick() }, prefix, h("span", { key: '5b51b534ed72b1d091b67d240cbec986feafe624', class: cn(baseText, 'peer empty:hidden') }, this.value), h("span", { key: 'e3e0f7bb6c2d625aaaf449581c11a74e120163aa', class: cn(baseText, 'hidden peer-empty:block') }, this.placeholder)), h("p-tooltip", { key: 'b7edc370496754abb633987727f821782e2b48d5', class: 'w-8', content: this.mode === 'read'
126
+ }), onClick: () => this._uploadClick() }, prefix, h("span", { key: 'c59a8e66fde71d2b8423cb5f6385ebb1ee6f51d6', class: cn(baseText, 'peer empty:hidden') }, this.value), h("span", { key: 'b133def98ae61ff290371aa76918c38d209098bd', class: cn(baseText, 'hidden peer-empty:block') }, this.placeholder)), h("p-tooltip", { key: '70dd1bf027ba620e5653e0f6fecd2d2e9f8d5047', class: 'w-8', content: this.mode === 'read'
125
127
  ? this.downloadTooltip
126
128
  : this.value?.length
127
129
  ? this.deleteTooltip
128
- : this.uploadTooltip }, h("p-button", { key: 'af82f2206677aa5c86b6db6ce18b5a286ce664e1', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: this.mode === 'read'
130
+ : this.uploadTooltip }, h("p-button", { key: 'bad75a34fff38946e6361c2b1e467e7fc1331cdf', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: this.mode === 'read'
129
131
  ? 'download'
130
132
  : this.value?.length
131
133
  ? 'trash'
@@ -136,7 +138,7 @@ const Attachment = /*@__PURE__*/ proxyCustomElement(class Attachment extends H {
136
138
  : this.delete).emit() })), this.enableCameraOnMobile &&
137
139
  this.mode === 'write' &&
138
140
  isMobileDevice &&
139
- !this.value?.length && (h("p-tooltip", { key: '42d4db13d316272159e156dd1416530c7bd81bd2', content: this.cameraTooltip, class: 'w-8 desktop-xs:hidden' }, h("p-button", { key: '3e0c21f82d7f238fc676600e48784fcff6334792', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: 'camera', onOnClick: () => this._cameraClick() }))))), h("input", { key: '51c47b6b3daeb71045a59aa361bb889f62127e9e', class: 'hidden', type: 'file', accept: Array.isArray(this.accept) ? this.accept?.join(',') : this.accept, ref: el => (this._fileRef = el), onChange: ev => this._onFileChange(ev) }), h("input", { key: '7e73f5184ee6bab834eee8c5a11c4970dd6a78b2', class: 'hidden', type: 'file', accept: 'image/*', capture: 'true', ref: el => (this._cameraFileRef = el), onChange: ev => this._onFileChange(ev) })));
141
+ !this.value?.length && (h("p-tooltip", { key: 'efdfd38ae5ca2f9e63af50d3a82339cbd0af6ef9', content: this.cameraTooltip, class: 'w-8 desktop-xs:hidden' }, h("p-button", { key: '38a9dc23149a96fd7626236b9f1b1b8794bc0c84', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: 'camera', onOnClick: () => this._cameraClick() }))))), h("input", { key: 'a4e9ec4655dcdd0778a6e84638ef8fb6011ce4a8', class: 'hidden', type: 'file', accept: Array.isArray(this.accept) ? this.accept?.join(',') : this.accept, ref: el => (this._fileRef = el), onChange: ev => this._onFileChange(ev) }), h("input", { key: '3f5212b6d4602d39075254405b8177672a97acb7', class: 'hidden', type: 'file', accept: 'image/*', capture: 'true', ref: el => (this._cameraFileRef = el), onChange: ev => this._onFileChange(ev) })));
140
142
  }
141
143
  _uploadClick() {
142
144
  if (!this._fileRef || this.mode !== 'write' || this.value?.length) {
@@ -1 +1 @@
1
- {"file":"p-attachment.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/molecules/attachment/attachment.component.css?tag=p-attachment&encapsulation=shadow","src/components/molecules/attachment/attachment.component.tsx"],"sourcesContent":[":host {\n\t@apply block w-full;\n}\n","import {\n\tComponent,\n\tEvent,\n\tEventEmitter,\n\tFragment,\n\th,\n\tProp,\n} from '@stencil/core';\nimport { cn, isMobile, isTablet } from '../../../utils';\nimport { cva } from 'class-variance-authority';\n\nconst attachment = cva(\n\t[\n\t\t'flex flex-1 items-center justify-start gap-2',\n\t\t'h-8 min-w-0 px-2 rounded-lg',\n\t\t'border border-solid bg-white-600',\n\t],\n\t{\n\t\tvariants: {\n\t\t\tclick: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'cursor-pointer',\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tfalse: 'bg-white-600 border-storm-100 text-storm-200',\n\t\t\t\ttrue: 'border-negative-red-500',\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-attachment',\n\tstyleUrl: 'attachment.component.css',\n\tshadow: true,\n})\nexport class Attachment {\n\t/**\n\t * Wether to enable the camera button on mobile\n\t */\n\t@Prop() enableCameraOnMobile = false;\n\n\t/**\n\t * The value of the attachment (usually the file name)\n\t */\n\t@Prop() value: string;\n\n\t/**\n\t * The fileID to use to track the file\n\t */\n\t@Prop() fileId: string;\n\n\t/**\n\t * The type of files to accept\n\t */\n\t@Prop() accept: string[] | string = null;\n\n\t/**\n\t * The label of the attachment\n\t */\n\t@Prop() label: string | HTMLSlotElement;\n\n\t/**\n\t * The helper of the attachment\n\t */\n\t@Prop() helper: string | HTMLSlotElement;\n\n\t/**\n\t * Wether the attachment is required\n\t */\n\t@Prop({ reflect: true }) required = true;\n\n\t/**\n\t * The variant of the attachment\n\t */\n\t@Prop() mode: 'read' | 'write' = 'read';\n\n\t/**\n\t * The placeholder of the attachment\n\t */\n\t@Prop() placeholder: string = 'Upload a file...';\n\n\t/**\n\t * The text for the camera tooltip\n\t */\n\t@Prop() cameraTooltip: string = 'Camera';\n\n\t/**\n\t * The text for the download tooltip\n\t */\n\t@Prop() downloadTooltip: string = 'Download';\n\n\t/**\n\t * The text for the upload tooltip\n\t */\n\t@Prop() uploadTooltip: string = 'Upload';\n\n\t/**\n\t * The text for the delete tooltip\n\t */\n\t@Prop() deleteTooltip: string = 'Delete';\n\n\t/**\n\t * Wether the attachment is loading\n\t */\n\t@Prop() loading = false;\n\n\t/**\n\t * The error to show\n\t */\n\t@Prop() error: string;\n\n\t/**\n\t * Event when upload is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tupload: EventEmitter<{\n\t\tfile: File;\n\t\tfileId: string;\n\t\tresult: string;\n\t}>;\n\n\t/**\n\t * Event when download is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdownload: EventEmitter<void>;\n\n\t/**\n\t * Event when delete is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdelete: EventEmitter<void>;\n\n\tprivate _fileRef: HTMLInputElement;\n\tprivate _cameraFileRef: HTMLInputElement;\n\n\trender() {\n\t\tlet prefix = (\n\t\t\t<p-icon\n\t\t\t\tclass='text-storm-300'\n\t\t\t\tvariant='attachment'\n\t\t\t/>\n\t\t);\n\n\t\tif (this.error) {\n\t\t\tprefix = (\n\t\t\t\t<p-icon\n\t\t\t\t\tvariant='warning'\n\t\t\t\t\tclass='text-negative-red-500'\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t// const isMobileDevice = isMobile();\n\t\tconst isMobileDevice = isTablet();\n\n\t\tconst baseText =\n\t\t\t'min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-sm';\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<p-field-container\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tclass='flex w-full items-start gap-2'\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={attachment({\n\t\t\t\t\t\t\t\tclick: this.mode === 'write' && !this.value?.length,\n\t\t\t\t\t\t\t\terror: !!this.error?.length,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => this._uploadClick()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{prefix}\n\n\t\t\t\t\t\t\t<span class={cn(baseText, 'peer empty:hidden')}>\n\t\t\t\t\t\t\t\t{this.value}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class={cn(baseText, 'hidden peer-empty:block')}>\n\t\t\t\t\t\t\t\t{this.placeholder}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\tclass='w-8'\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t? this.downloadTooltip\n\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t? this.deleteTooltip\n\t\t\t\t\t\t\t\t\t: this.uploadTooltip\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t? 'download'\n\t\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t\t? 'trash'\n\t\t\t\t\t\t\t\t\t\t: 'upload'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={this.loading}\n\t\t\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\t\t\tonOnClick={() =>\n\t\t\t\t\t\t\t\t\tthis.mode === 'write' && !this.value?.length\n\t\t\t\t\t\t\t\t\t\t? this._uploadClick()\n\t\t\t\t\t\t\t\t\t\t: (this.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t\t\t? this.download\n\t\t\t\t\t\t\t\t\t\t\t\t: this.delete\n\t\t\t\t\t\t\t\t\t\t ).emit()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</p-tooltip>\n\n\t\t\t\t\t\t{this.enableCameraOnMobile &&\n\t\t\t\t\t\t\tthis.mode === 'write' &&\n\t\t\t\t\t\t\tisMobileDevice &&\n\t\t\t\t\t\t\t!this.value?.length && (\n\t\t\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\t\t\tcontent={this.cameraTooltip}\n\t\t\t\t\t\t\t\t\tclass='w-8 desktop-xs:hidden'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\t\t\ticon='camera'\n\t\t\t\t\t\t\t\t\t\tonOnClick={() => this._cameraClick()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</p-tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</p-field-container>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept={\n\t\t\t\t\t\tArray.isArray(this.accept) ? this.accept?.join(',') : this.accept\n\t\t\t\t\t}\n\t\t\t\t\tref={el => (this._fileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept='image/*'\n\t\t\t\t\tcapture='true'\n\t\t\t\t\tref={el => (this._cameraFileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n\n\tprivate _uploadClick() {\n\t\tif (!this._fileRef || this.mode !== 'write' || this.value?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fileRef.click();\n\t}\n\n\tprivate _cameraClick() {\n\t\tif (!this.enableCameraOnMobile || isMobile()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._cameraFileRef || this.mode !== 'write') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cameraFileRef?.click();\n\t}\n\n\tprivate _onFileChange(ev: Event) {\n\t\tconst target = ev.target as HTMLInputElement;\n\t\tconst file = target.files?.[0];\n\n\t\tif (file) {\n\t\t\tthis.loading = true;\n\n\t\t\tconst reader = new FileReader();\n\t\t\treader.onload = (e: any) => this._onLoad(file, e?.currentTarget?.result);\n\t\t\treader.readAsDataURL(file);\n\t\t}\n\t}\n\n\tprivate _onLoad(file: File, result: string) {\n\t\tthis.upload.emit({\n\t\t\tfileId: this.fileId,\n\t\t\tresult,\n\t\t\tfile,\n\t\t});\n\n\t\tif (this._fileRef) {\n\t\t\tthis._fileRef.value = '';\n\t\t}\n\n\t\tif (this._cameraFileRef) {\n\t\t\tthis._cameraFileRef.value = '';\n\t\t}\n\n\t\tthis.loading = false;\n\t}\n}\n"],"version":3}
1
+ {"file":"p-attachment.js","mappings":";;;;;;;;;;;AAAA,MAAM,sBAAsB,GAAG,64FAA64F;;ACW56F,MAAM,UAAU,GAAG,GAAG,CACrB;IACC,8CAA8C;IAC9C,6BAA6B;IAC7B,qBAAqB;IACrB,6BAA6B;IAC7B,0CAA0C;CAC1C,EACD;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,KAAK,EAAE;AACN,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,IAAI,EAAE,gBAAgB;AACtB,SAAA;AACD,QAAA,KAAK,EAAE;AACN,YAAA,KAAK,EAAE,uCAAuC;AAC9C,YAAA,IAAI,EAAE,8DAA8D;AACpE,SAAA;AACD,KAAA;AACD,CAAA,CACD;MAOY,UAAU,iBAAAA,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;;;;;;;;;AACtB;;AAEG;IACK,oBAAoB,GAAG,KAAK;AAEpC;;AAEG;AACK,IAAA,KAAK;AAEb;;AAEG;AACK,IAAA,MAAM;AAEd;;AAEG;IACK,MAAM,GAAsB,IAAI;AAExC;;AAEG;AACK,IAAA,KAAK;AAEb;;AAEG;AACK,IAAA,MAAM;AAEd;;AAEG;IACsB,QAAQ,GAAG,IAAI;AAExC;;AAEG;IACK,IAAI,GAAqB,MAAM;AAEvC;;AAEG;IACK,WAAW,GAAW,kBAAkB;AAEhD;;AAEG;IACK,aAAa,GAAW,QAAQ;AAExC;;AAEG;IACK,eAAe,GAAW,UAAU;AAE5C;;AAEG;IACK,aAAa,GAAW,QAAQ;AAExC;;AAEG;IACK,aAAa,GAAW,QAAQ;AAExC;;AAEG;IACK,OAAO,GAAG,KAAK;AAEvB;;AAEG;AACK,IAAA,KAAK;AAEb;;AAEG;AAIH,IAAA,MAAM;AAMN;;AAEG;AAIH,IAAA,QAAQ;AAER;;AAEG;AAIH,IAAA,MAAM;AAEE,IAAA,QAAQ;AACR,IAAA,cAAc;IAEtB,MAAM,GAAA;QACL,IAAI,MAAM,IACT,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACC,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAC,YAAY,EAAA,CACnB,CACF;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IACL,CACC,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,OAAO,EAAC,SAAS,EACjB,KAAK,EAAC,uBAAuB,EAC5B,CAAA,CACF;;;AAIF,QAAA,MAAM,cAAc,GAAG,QAAQ,EAAE;QAEjC,MAAM,QAAQ,GACb,yEAAyE;AAC1E,QAAA,QACC,EAAC,QAAQ,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACR,CAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACC,OAAO,EAAC,OAAO,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAA,EAEtC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACC,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,+BAA+B,EAAA,EAErC,CACC,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,UAAU,CAAC;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;AACnD,gBAAA,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;AAC3B,aAAA,CAAC,EACF,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,EAAA,EAEjC,MAAM,EAEP,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAC5C,EAAA,IAAI,CAAC,KAAK,CACL,EACP,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,yBAAyB,CAAC,EAClD,EAAA,IAAI,CAAC,WAAW,CACX,CACF,EAEN,CACC,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,KAAK,EACX,OAAO,EACN,IAAI,CAAC,IAAI,KAAK;kBACX,IAAI,CAAC;AACP,kBAAE,IAAI,CAAC,KAAK,EAAE;sBACZ,IAAI,CAAC;AACP,sBAAE,IAAI,CAAC,aAAa,EAAA,EAGtB,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACC,IAAI,EAAC,SAAS,EACd,OAAO,EAAC,WAAW,EACnB,QAAQ,EAAE,IAAI,EACd,IAAI,EACH,IAAI,CAAC,IAAI,KAAK;AACb,kBAAE;AACF,kBAAE,IAAI,CAAC,KAAK,EAAE;AACd,sBAAE;AACF,sBAAE,QAAQ,EAEZ,QAAQ,EAAE,IAAI,CAAC,OAAO,EACtB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,MACV,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrC,kBAAE,IAAI,CAAC,YAAY;AACnB,kBAAE,CAAC,IAAI,CAAC,IAAI,KAAK;sBACb,IAAI,CAAC;AACP,sBAAE,IAAI,CAAC,MAAM,EACX,IAAI,EAAE,EAAA,CAEX,CACS,EAEX,IAAI,CAAC,oBAAoB;YACzB,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,cAAc;YACd,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,KAClB,CAAA,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACC,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,KAAK,EAAC,uBAAuB,EAAA,EAE7B,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACC,IAAI,EAAC,SAAS,EACd,OAAO,EAAC,WAAW,EACnB,QAAQ,EAAE,IAAI,EACd,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,EAAA,CACnC,CACS,CACZ,CACG,CACa,EAEpB,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACC,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,MAAM,EACX,MAAM,EACL,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAElE,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAC/B,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EACrC,CAAA,EAEF,CACC,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,SAAS,EAChB,OAAO,EAAC,MAAM,EACd,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,EACrC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAA,CACrC,CACQ;;IAIL,YAAY,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YAClE;;AAGD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;;IAGd,YAAY,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,EAAE,EAAE;YAC7C;;QAGD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAClD;;AAGD,QAAA,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE;;AAGrB,IAAA,aAAa,CAAC,EAAS,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,MAA0B;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAE9B,IAAI,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AAEnB,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;YAC/B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC;AACxE,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;;;IAIpB,OAAO,CAAC,IAAU,EAAE,MAAc,EAAA;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;YACN,IAAI;AACJ,SAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;;AAGzB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE;;AAG/B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/molecules/attachment/attachment.component.css?tag=p-attachment&encapsulation=shadow","src/components/molecules/attachment/attachment.component.tsx"],"sourcesContent":[":host {\n\t@apply block w-full;\n}\n","import {\n\tComponent,\n\tEvent,\n\tEventEmitter,\n\tFragment,\n\th,\n\tProp,\n} from '@stencil/core';\nimport { cn, isMobile, isTablet } from '../../../utils';\nimport { cva } from 'class-variance-authority';\n\nconst attachment = cva(\n\t[\n\t\t'flex flex-1 items-center justify-start gap-2',\n\t\t'h-8 min-w-0 px-2 rounded-lg',\n\t\t'border border-solid',\n\t\t'bg-white-600 text-storm-200',\n\t\t'dark:bg-white/15 dark:text-hurricane-200',\n\t],\n\t{\n\t\tvariants: {\n\t\t\tclick: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'cursor-pointer',\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tfalse: 'border-storm-100 dark:border-white/15',\n\t\t\t\ttrue: 'border-negative-red-500 dark:border-negative-red-alternative',\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-attachment',\n\tstyleUrl: 'attachment.component.css',\n\tshadow: true,\n})\nexport class Attachment {\n\t/**\n\t * Wether to enable the camera button on mobile\n\t */\n\t@Prop() enableCameraOnMobile = false;\n\n\t/**\n\t * The value of the attachment (usually the file name)\n\t */\n\t@Prop() value: string;\n\n\t/**\n\t * The fileID to use to track the file\n\t */\n\t@Prop() fileId: string;\n\n\t/**\n\t * The type of files to accept\n\t */\n\t@Prop() accept: string[] | string = null;\n\n\t/**\n\t * The label of the attachment\n\t */\n\t@Prop() label: string | HTMLSlotElement;\n\n\t/**\n\t * The helper of the attachment\n\t */\n\t@Prop() helper: string | HTMLSlotElement;\n\n\t/**\n\t * Wether the attachment is required\n\t */\n\t@Prop({ reflect: true }) required = true;\n\n\t/**\n\t * The variant of the attachment\n\t */\n\t@Prop() mode: 'read' | 'write' = 'read';\n\n\t/**\n\t * The placeholder of the attachment\n\t */\n\t@Prop() placeholder: string = 'Upload a file...';\n\n\t/**\n\t * The text for the camera tooltip\n\t */\n\t@Prop() cameraTooltip: string = 'Camera';\n\n\t/**\n\t * The text for the download tooltip\n\t */\n\t@Prop() downloadTooltip: string = 'Download';\n\n\t/**\n\t * The text for the upload tooltip\n\t */\n\t@Prop() uploadTooltip: string = 'Upload';\n\n\t/**\n\t * The text for the delete tooltip\n\t */\n\t@Prop() deleteTooltip: string = 'Delete';\n\n\t/**\n\t * Wether the attachment is loading\n\t */\n\t@Prop() loading = false;\n\n\t/**\n\t * The error to show\n\t */\n\t@Prop() error: string;\n\n\t/**\n\t * Event when upload is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tupload: EventEmitter<{\n\t\tfile: File;\n\t\tfileId: string;\n\t\tresult: string;\n\t}>;\n\n\t/**\n\t * Event when download is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdownload: EventEmitter<void>;\n\n\t/**\n\t * Event when delete is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdelete: EventEmitter<void>;\n\n\tprivate _fileRef: HTMLInputElement;\n\tprivate _cameraFileRef: HTMLInputElement;\n\n\trender() {\n\t\tlet prefix = (\n\t\t\t<p-icon\n\t\t\t\tclass='text-storm-300'\n\t\t\t\tvariant='attachment'\n\t\t\t/>\n\t\t);\n\n\t\tif (this.error) {\n\t\t\tprefix = (\n\t\t\t\t<p-icon\n\t\t\t\t\tvariant='warning'\n\t\t\t\t\tclass='text-negative-red-500'\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t// const isMobileDevice = isMobile();\n\t\tconst isMobileDevice = isTablet();\n\n\t\tconst baseText =\n\t\t\t'min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-sm';\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<p-field-container\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tclass='flex w-full items-start gap-2'\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={attachment({\n\t\t\t\t\t\t\t\tclick: this.mode === 'write' && !this.value?.length,\n\t\t\t\t\t\t\t\terror: !!this.error?.length,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => this._uploadClick()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{prefix}\n\n\t\t\t\t\t\t\t<span class={cn(baseText, 'peer empty:hidden')}>\n\t\t\t\t\t\t\t\t{this.value}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class={cn(baseText, 'hidden peer-empty:block')}>\n\t\t\t\t\t\t\t\t{this.placeholder}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\tclass='w-8'\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t? this.downloadTooltip\n\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t? this.deleteTooltip\n\t\t\t\t\t\t\t\t\t: this.uploadTooltip\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t? 'download'\n\t\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t\t? 'trash'\n\t\t\t\t\t\t\t\t\t\t: 'upload'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={this.loading}\n\t\t\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\t\t\tonOnClick={() =>\n\t\t\t\t\t\t\t\t\tthis.mode === 'write' && !this.value?.length\n\t\t\t\t\t\t\t\t\t\t? this._uploadClick()\n\t\t\t\t\t\t\t\t\t\t: (this.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t\t\t? this.download\n\t\t\t\t\t\t\t\t\t\t\t\t: this.delete\n\t\t\t\t\t\t\t\t\t\t ).emit()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</p-tooltip>\n\n\t\t\t\t\t\t{this.enableCameraOnMobile &&\n\t\t\t\t\t\t\tthis.mode === 'write' &&\n\t\t\t\t\t\t\tisMobileDevice &&\n\t\t\t\t\t\t\t!this.value?.length && (\n\t\t\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\t\t\tcontent={this.cameraTooltip}\n\t\t\t\t\t\t\t\t\tclass='w-8 desktop-xs:hidden'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\t\t\ticon='camera'\n\t\t\t\t\t\t\t\t\t\tonOnClick={() => this._cameraClick()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</p-tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</p-field-container>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept={\n\t\t\t\t\t\tArray.isArray(this.accept) ? this.accept?.join(',') : this.accept\n\t\t\t\t\t}\n\t\t\t\t\tref={el => (this._fileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept='image/*'\n\t\t\t\t\tcapture='true'\n\t\t\t\t\tref={el => (this._cameraFileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n\n\tprivate _uploadClick() {\n\t\tif (!this._fileRef || this.mode !== 'write' || this.value?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fileRef.click();\n\t}\n\n\tprivate _cameraClick() {\n\t\tif (!this.enableCameraOnMobile || isMobile()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._cameraFileRef || this.mode !== 'write') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cameraFileRef?.click();\n\t}\n\n\tprivate _onFileChange(ev: Event) {\n\t\tconst target = ev.target as HTMLInputElement;\n\t\tconst file = target.files?.[0];\n\n\t\tif (file) {\n\t\t\tthis.loading = true;\n\n\t\t\tconst reader = new FileReader();\n\t\t\treader.onload = (e: any) => this._onLoad(file, e?.currentTarget?.result);\n\t\t\treader.readAsDataURL(file);\n\t\t}\n\t}\n\n\tprivate _onLoad(file: File, result: string) {\n\t\tthis.upload.emit({\n\t\t\tfileId: this.fileId,\n\t\t\tresult,\n\t\t\tfile,\n\t\t});\n\n\t\tif (this._fileRef) {\n\t\t\tthis._fileRef.value = '';\n\t\t}\n\n\t\tif (this._cameraFileRef) {\n\t\t\tthis._cameraFileRef.value = '';\n\t\t}\n\n\t\tthis.loading = false;\n\t}\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { T as TableHeader, d as defineCustomElement$1 } from './p--8Wk5rpW.js';
1
+ import { T as TableHeader, d as defineCustomElement$1 } from './p-CbfQ0Wci.js';
2
2
 
3
3
  const PTableHeader = TableHeader;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -29,7 +29,7 @@ import { d as defineCustomElement$9 } from './p-DTP_Oqhy.js';
29
29
  import { d as defineCustomElement$8 } from './p-yM044fjo.js';
30
30
  import { d as defineCustomElement$7 } from './p-eYUo2y4S.js';
31
31
  import { d as defineCustomElement$6 } from './p-CkMVXKsk.js';
32
- import { d as defineCustomElement$5 } from './p--8Wk5rpW.js';
32
+ import { d as defineCustomElement$5 } from './p-CbfQ0Wci.js';
33
33
  import { d as defineCustomElement$4 } from './p-ByhrDfkc.js';
34
34
  import { d as defineCustomElement$3 } from './p-CiEFZmoS.js';
35
35
  import { d as defineCustomElement$2 } from './p-BUzthIe4.js';
@@ -4,12 +4,14 @@ import { h as isTablet, f as isMobile } from './screens-B3sNjfzc.js';
4
4
  import { c as cn } from './cn-BniKgfyU.js';
5
5
  import './clsx-ChV9xqsO.js';
6
6
 
7
- const attachmentComponentCss = ".block{display:block!important}*{box-sizing:border-box}:host{display:block;width:100%}.static{position:static!important}.flex{display:flex!important}.hidden{display:none!important}.h-8{height:2rem!important}.w-8{width:2rem!important}.w-full{width:100%!important}.min-w-0{min-width:0!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.gap-2{gap:.5rem!important}.overflow-hidden{overflow:hidden!important}.text-ellipsis{text-overflow:ellipsis!important}.whitespace-nowrap{white-space:nowrap!important}.rounded-lg{border-radius:.5rem!important}.border{border-width:1px!important}.border-solid{border-style:solid!important}.border-negative-red-500{--tw-border-opacity:1!important;border-color:rgb(230 30 30/var(--tw-border-opacity,1))!important}.border-storm-100{--tw-border-opacity:1!important;border-color:rgb(209 210 212/var(--tw-border-opacity,1))!important}.bg-white-600{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-negative-red-500{--tw-text-opacity:1!important;color:rgb(230 30 30/var(--tw-text-opacity,1))!important}.text-storm-200{--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}.text-storm-300{--tw-text-opacity:1!important;color:rgb(116 120 127/var(--tw-text-opacity,1))!important}.empty\\:hidden:empty{display:none!important}.peer:empty~.peer-empty\\:block{display:block!important}@media (min-width:64rem){.desktop-xs\\:hidden{display:none!important}}";
7
+ const attachmentComponentCss = ".block{display:block!important}*{box-sizing:border-box}:host{display:block;width:100%}.static{position:static!important}.flex{display:flex!important}.hidden{display:none!important}.h-8{height:2rem!important}.w-8{width:2rem!important}.w-full{width:100%!important}.min-w-0{min-width:0!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.gap-2{gap:.5rem!important}.overflow-hidden{overflow:hidden!important}.text-ellipsis{text-overflow:ellipsis!important}.whitespace-nowrap{white-space:nowrap!important}.rounded-lg{border-radius:.5rem!important}.border{border-width:1px!important}.border-solid{border-style:solid!important}.border-negative-red-500{--tw-border-opacity:1!important;border-color:rgb(230 30 30/var(--tw-border-opacity,1))!important}.border-storm-100{--tw-border-opacity:1!important;border-color:rgb(209 210 212/var(--tw-border-opacity,1))!important}.bg-white-600{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-negative-red-500{--tw-text-opacity:1!important;color:rgb(230 30 30/var(--tw-text-opacity,1))!important}.text-storm-200{--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}.text-storm-300{--tw-text-opacity:1!important;color:rgb(116 120 127/var(--tw-text-opacity,1))!important}.empty\\:hidden:empty{display:none!important}.peer:empty~.peer-empty\\:block{display:block!important}@media (min-width:64rem){.desktop-xs\\:hidden{display:none!important}}.dark\\:border-negative-red-alternative:where(:host([data-theme=dark]),:host([data-theme=dark]) *){--tw-border-opacity:1!important;border-color:rgb(255 92 92/var(--tw-border-opacity,1))!important}.dark\\:border-white\\/15:where(:host([data-theme=dark]),:host([data-theme=dark]) *){border-color:hsla(0,0%,100%,.15)!important}.dark\\:bg-white\\/15:where(:host([data-theme=dark]),:host([data-theme=dark]) *){background-color:hsla(0,0%,100%,.15)!important}.dark\\:text-hurricane-200:where(:host([data-theme=dark]),:host([data-theme=dark]) *){--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}.dark\\:border-negative-red-alternative:where([data-theme=dark],[data-theme=dark] *){--tw-border-opacity:1!important;border-color:rgb(255 92 92/var(--tw-border-opacity,1))!important}.dark\\:border-white\\/15:where([data-theme=dark],[data-theme=dark] *){border-color:hsla(0,0%,100%,.15)!important}.dark\\:bg-white\\/15:where([data-theme=dark],[data-theme=dark] *){background-color:hsla(0,0%,100%,.15)!important}.dark\\:text-hurricane-200:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity:1!important;color:rgb(163 165 169/var(--tw-text-opacity,1))!important}";
8
8
 
9
9
  const attachment = cva([
10
10
  'flex flex-1 items-center justify-start gap-2',
11
11
  'h-8 min-w-0 px-2 rounded-lg',
12
- 'border border-solid bg-white-600',
12
+ 'border border-solid',
13
+ 'bg-white-600 text-storm-200',
14
+ 'dark:bg-white/15 dark:text-hurricane-200',
13
15
  ], {
14
16
  variants: {
15
17
  click: {
@@ -17,8 +19,8 @@ const attachment = cva([
17
19
  true: 'cursor-pointer',
18
20
  },
19
21
  error: {
20
- false: 'bg-white-600 border-storm-100 text-storm-200',
21
- true: 'border-negative-red-500',
22
+ false: 'border-storm-100 dark:border-white/15',
23
+ true: 'border-negative-red-500 dark:border-negative-red-alternative',
22
24
  },
23
25
  },
24
26
  });
@@ -104,21 +106,21 @@ const Attachment = class {
104
106
  _fileRef;
105
107
  _cameraFileRef;
106
108
  render() {
107
- let prefix = (h("p-icon", { key: '61b263083bd24fece19b81f620dccdb2ba6afcc5', class: 'text-storm-300', variant: 'attachment' }));
109
+ let prefix = (h("p-icon", { key: 'e3041d87911b3ef89be9ae6dd57d9ad51b4b6ba3', class: 'text-storm-300', variant: 'attachment' }));
108
110
  if (this.error) {
109
- prefix = (h("p-icon", { key: 'ba8fd76a2b95605d815bebe5cd89a7ae8f0ba9d3', variant: 'warning', class: 'text-negative-red-500' }));
111
+ prefix = (h("p-icon", { key: '8cd0ea7fd1848a8f9d3ee96d42b4ecdb5f4ed27b', variant: 'warning', class: 'text-negative-red-500' }));
110
112
  }
111
113
  // const isMobileDevice = isMobile();
112
114
  const isMobileDevice = isTablet();
113
115
  const baseText = 'min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-sm';
114
- return (h(Fragment, { key: '8e7d1cc9163883399d21c3b7e8be37f4b386a09b' }, h("p-field-container", { key: 'eb9251f428799f2c1d731b057f4328ed13aaa495', variant: 'write', label: this.label, helper: this.helper, error: this.error, required: this.required, forceShowTooltip: !!this.error?.length }, h("div", { key: 'd65eaeb4ac2c4de7f55903f4f8f69f8d933d99a7', slot: 'content', class: 'flex w-full items-start gap-2' }, h("div", { key: '51b9e490e67fcbc04d590d0d75b168313b24a919', class: attachment({
116
+ return (h(Fragment, { key: '0e75af5dc601f3cb7b24c197c532685154958e06' }, h("p-field-container", { key: '0bf08bb7ce1380635a9fc8b574ec86946e085ffe', variant: 'write', label: this.label, helper: this.helper, error: this.error, required: this.required, forceShowTooltip: !!this.error?.length }, h("div", { key: '5e5d80909c96afb1aabc9509888979fa662eaaff', slot: 'content', class: 'flex w-full items-start gap-2' }, h("div", { key: 'afee7e83fe90d843de8bf509ed3d7d451483795f', class: attachment({
115
117
  click: this.mode === 'write' && !this.value?.length,
116
118
  error: !!this.error?.length,
117
- }), onClick: () => this._uploadClick() }, prefix, h("span", { key: '5b51b534ed72b1d091b67d240cbec986feafe624', class: cn(baseText, 'peer empty:hidden') }, this.value), h("span", { key: 'e3e0f7bb6c2d625aaaf449581c11a74e120163aa', class: cn(baseText, 'hidden peer-empty:block') }, this.placeholder)), h("p-tooltip", { key: 'b7edc370496754abb633987727f821782e2b48d5', class: 'w-8', content: this.mode === 'read'
119
+ }), onClick: () => this._uploadClick() }, prefix, h("span", { key: 'c59a8e66fde71d2b8423cb5f6385ebb1ee6f51d6', class: cn(baseText, 'peer empty:hidden') }, this.value), h("span", { key: 'b133def98ae61ff290371aa76918c38d209098bd', class: cn(baseText, 'hidden peer-empty:block') }, this.placeholder)), h("p-tooltip", { key: '70dd1bf027ba620e5653e0f6fecd2d2e9f8d5047', class: 'w-8', content: this.mode === 'read'
118
120
  ? this.downloadTooltip
119
121
  : this.value?.length
120
122
  ? this.deleteTooltip
121
- : this.uploadTooltip }, h("p-button", { key: 'af82f2206677aa5c86b6db6ce18b5a286ce664e1', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: this.mode === 'read'
123
+ : this.uploadTooltip }, h("p-button", { key: 'bad75a34fff38946e6361c2b1e467e7fc1331cdf', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: this.mode === 'read'
122
124
  ? 'download'
123
125
  : this.value?.length
124
126
  ? 'trash'
@@ -129,7 +131,7 @@ const Attachment = class {
129
131
  : this.delete).emit() })), this.enableCameraOnMobile &&
130
132
  this.mode === 'write' &&
131
133
  isMobileDevice &&
132
- !this.value?.length && (h("p-tooltip", { key: '42d4db13d316272159e156dd1416530c7bd81bd2', content: this.cameraTooltip, class: 'w-8 desktop-xs:hidden' }, h("p-button", { key: '3e0c21f82d7f238fc676600e48784fcff6334792', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: 'camera', onOnClick: () => this._cameraClick() }))))), h("input", { key: '51c47b6b3daeb71045a59aa361bb889f62127e9e', class: 'hidden', type: 'file', accept: Array.isArray(this.accept) ? this.accept?.join(',') : this.accept, ref: el => (this._fileRef = el), onChange: ev => this._onFileChange(ev) }), h("input", { key: '7e73f5184ee6bab834eee8c5a11c4970dd6a78b2', class: 'hidden', type: 'file', accept: 'image/*', capture: 'true', ref: el => (this._cameraFileRef = el), onChange: ev => this._onFileChange(ev) })));
134
+ !this.value?.length && (h("p-tooltip", { key: 'efdfd38ae5ca2f9e63af50d3a82339cbd0af6ef9', content: this.cameraTooltip, class: 'w-8 desktop-xs:hidden' }, h("p-button", { key: '38a9dc23149a96fd7626236b9f1b1b8794bc0c84', slot: 'trigger', variant: 'secondary', iconOnly: true, icon: 'camera', onOnClick: () => this._cameraClick() }))))), h("input", { key: 'a4e9ec4655dcdd0778a6e84638ef8fb6011ce4a8', class: 'hidden', type: 'file', accept: Array.isArray(this.accept) ? this.accept?.join(',') : this.accept, ref: el => (this._fileRef = el), onChange: ev => this._onFileChange(ev) }), h("input", { key: '3f5212b6d4602d39075254405b8177672a97acb7', class: 'hidden', type: 'file', accept: 'image/*', capture: 'true', ref: el => (this._cameraFileRef = el), onChange: ev => this._onFileChange(ev) })));
133
135
  }
134
136
  _uploadClick() {
135
137
  if (!this._fileRef || this.mode !== 'write' || this.value?.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"p-attachment.entry.js","sources":["src/components/molecules/attachment/attachment.component.css?tag=p-attachment&encapsulation=shadow","src/components/molecules/attachment/attachment.component.tsx"],"sourcesContent":[":host {\n\t@apply block w-full;\n}\n","import {\n\tComponent,\n\tEvent,\n\tEventEmitter,\n\tFragment,\n\th,\n\tProp,\n} from '@stencil/core';\nimport { cn, isMobile, isTablet } from '../../../utils';\nimport { cva } from 'class-variance-authority';\n\nconst attachment = cva(\n\t[\n\t\t'flex flex-1 items-center justify-start gap-2',\n\t\t'h-8 min-w-0 px-2 rounded-lg',\n\t\t'border border-solid bg-white-600',\n\t],\n\t{\n\t\tvariants: {\n\t\t\tclick: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'cursor-pointer',\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tfalse: 'bg-white-600 border-storm-100 text-storm-200',\n\t\t\t\ttrue: 'border-negative-red-500',\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-attachment',\n\tstyleUrl: 'attachment.component.css',\n\tshadow: true,\n})\nexport class Attachment {\n\t/**\n\t * Wether to enable the camera button on mobile\n\t */\n\t@Prop() enableCameraOnMobile = false;\n\n\t/**\n\t * The value of the attachment (usually the file name)\n\t */\n\t@Prop() value: string;\n\n\t/**\n\t * The fileID to use to track the file\n\t */\n\t@Prop() fileId: string;\n\n\t/**\n\t * The type of files to accept\n\t */\n\t@Prop() accept: string[] | string = null;\n\n\t/**\n\t * The label of the attachment\n\t */\n\t@Prop() label: string | HTMLSlotElement;\n\n\t/**\n\t * The helper of the attachment\n\t */\n\t@Prop() helper: string | HTMLSlotElement;\n\n\t/**\n\t * Wether the attachment is required\n\t */\n\t@Prop({ reflect: true }) required = true;\n\n\t/**\n\t * The variant of the attachment\n\t */\n\t@Prop() mode: 'read' | 'write' = 'read';\n\n\t/**\n\t * The placeholder of the attachment\n\t */\n\t@Prop() placeholder: string = 'Upload a file...';\n\n\t/**\n\t * The text for the camera tooltip\n\t */\n\t@Prop() cameraTooltip: string = 'Camera';\n\n\t/**\n\t * The text for the download tooltip\n\t */\n\t@Prop() downloadTooltip: string = 'Download';\n\n\t/**\n\t * The text for the upload tooltip\n\t */\n\t@Prop() uploadTooltip: string = 'Upload';\n\n\t/**\n\t * The text for the delete tooltip\n\t */\n\t@Prop() deleteTooltip: string = 'Delete';\n\n\t/**\n\t * Wether the attachment is loading\n\t */\n\t@Prop() loading = false;\n\n\t/**\n\t * The error to show\n\t */\n\t@Prop() error: string;\n\n\t/**\n\t * Event when upload is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tupload: EventEmitter<{\n\t\tfile: File;\n\t\tfileId: string;\n\t\tresult: string;\n\t}>;\n\n\t/**\n\t * Event when download is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdownload: EventEmitter<void>;\n\n\t/**\n\t * Event when delete is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdelete: EventEmitter<void>;\n\n\tprivate _fileRef: HTMLInputElement;\n\tprivate _cameraFileRef: HTMLInputElement;\n\n\trender() {\n\t\tlet prefix = (\n\t\t\t<p-icon\n\t\t\t\tclass='text-storm-300'\n\t\t\t\tvariant='attachment'\n\t\t\t/>\n\t\t);\n\n\t\tif (this.error) {\n\t\t\tprefix = (\n\t\t\t\t<p-icon\n\t\t\t\t\tvariant='warning'\n\t\t\t\t\tclass='text-negative-red-500'\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t// const isMobileDevice = isMobile();\n\t\tconst isMobileDevice = isTablet();\n\n\t\tconst baseText =\n\t\t\t'min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-sm';\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<p-field-container\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tclass='flex w-full items-start gap-2'\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={attachment({\n\t\t\t\t\t\t\t\tclick: this.mode === 'write' && !this.value?.length,\n\t\t\t\t\t\t\t\terror: !!this.error?.length,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => this._uploadClick()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{prefix}\n\n\t\t\t\t\t\t\t<span class={cn(baseText, 'peer empty:hidden')}>\n\t\t\t\t\t\t\t\t{this.value}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class={cn(baseText, 'hidden peer-empty:block')}>\n\t\t\t\t\t\t\t\t{this.placeholder}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\tclass='w-8'\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t? this.downloadTooltip\n\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t? this.deleteTooltip\n\t\t\t\t\t\t\t\t\t: this.uploadTooltip\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t? 'download'\n\t\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t\t? 'trash'\n\t\t\t\t\t\t\t\t\t\t: 'upload'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={this.loading}\n\t\t\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\t\t\tonOnClick={() =>\n\t\t\t\t\t\t\t\t\tthis.mode === 'write' && !this.value?.length\n\t\t\t\t\t\t\t\t\t\t? this._uploadClick()\n\t\t\t\t\t\t\t\t\t\t: (this.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t\t\t? this.download\n\t\t\t\t\t\t\t\t\t\t\t\t: this.delete\n\t\t\t\t\t\t\t\t\t\t ).emit()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</p-tooltip>\n\n\t\t\t\t\t\t{this.enableCameraOnMobile &&\n\t\t\t\t\t\t\tthis.mode === 'write' &&\n\t\t\t\t\t\t\tisMobileDevice &&\n\t\t\t\t\t\t\t!this.value?.length && (\n\t\t\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\t\t\tcontent={this.cameraTooltip}\n\t\t\t\t\t\t\t\t\tclass='w-8 desktop-xs:hidden'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\t\t\ticon='camera'\n\t\t\t\t\t\t\t\t\t\tonOnClick={() => this._cameraClick()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</p-tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</p-field-container>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept={\n\t\t\t\t\t\tArray.isArray(this.accept) ? this.accept?.join(',') : this.accept\n\t\t\t\t\t}\n\t\t\t\t\tref={el => (this._fileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept='image/*'\n\t\t\t\t\tcapture='true'\n\t\t\t\t\tref={el => (this._cameraFileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n\n\tprivate _uploadClick() {\n\t\tif (!this._fileRef || this.mode !== 'write' || this.value?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fileRef.click();\n\t}\n\n\tprivate _cameraClick() {\n\t\tif (!this.enableCameraOnMobile || isMobile()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._cameraFileRef || this.mode !== 'write') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cameraFileRef?.click();\n\t}\n\n\tprivate _onFileChange(ev: Event) {\n\t\tconst target = ev.target as HTMLInputElement;\n\t\tconst file = target.files?.[0];\n\n\t\tif (file) {\n\t\t\tthis.loading = true;\n\n\t\t\tconst reader = new FileReader();\n\t\t\treader.onload = (e: any) => this._onLoad(file, e?.currentTarget?.result);\n\t\t\treader.readAsDataURL(file);\n\t\t}\n\t}\n\n\tprivate _onLoad(file: File, result: string) {\n\t\tthis.upload.emit({\n\t\t\tfileId: this.fileId,\n\t\t\tresult,\n\t\t\tfile,\n\t\t});\n\n\t\tif (this._fileRef) {\n\t\t\tthis._fileRef.value = '';\n\t\t}\n\n\t\tif (this._cameraFileRef) {\n\t\t\tthis._cameraFileRef.value = '';\n\t\t}\n\n\t\tthis.loading = false;\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-attachment.entry.js","sources":["src/components/molecules/attachment/attachment.component.css?tag=p-attachment&encapsulation=shadow","src/components/molecules/attachment/attachment.component.tsx"],"sourcesContent":[":host {\n\t@apply block w-full;\n}\n","import {\n\tComponent,\n\tEvent,\n\tEventEmitter,\n\tFragment,\n\th,\n\tProp,\n} from '@stencil/core';\nimport { cn, isMobile, isTablet } from '../../../utils';\nimport { cva } from 'class-variance-authority';\n\nconst attachment = cva(\n\t[\n\t\t'flex flex-1 items-center justify-start gap-2',\n\t\t'h-8 min-w-0 px-2 rounded-lg',\n\t\t'border border-solid',\n\t\t'bg-white-600 text-storm-200',\n\t\t'dark:bg-white/15 dark:text-hurricane-200',\n\t],\n\t{\n\t\tvariants: {\n\t\t\tclick: {\n\t\t\t\tfalse: null,\n\t\t\t\ttrue: 'cursor-pointer',\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tfalse: 'border-storm-100 dark:border-white/15',\n\t\t\t\ttrue: 'border-negative-red-500 dark:border-negative-red-alternative',\n\t\t\t},\n\t\t},\n\t}\n);\n\n@Component({\n\ttag: 'p-attachment',\n\tstyleUrl: 'attachment.component.css',\n\tshadow: true,\n})\nexport class Attachment {\n\t/**\n\t * Wether to enable the camera button on mobile\n\t */\n\t@Prop() enableCameraOnMobile = false;\n\n\t/**\n\t * The value of the attachment (usually the file name)\n\t */\n\t@Prop() value: string;\n\n\t/**\n\t * The fileID to use to track the file\n\t */\n\t@Prop() fileId: string;\n\n\t/**\n\t * The type of files to accept\n\t */\n\t@Prop() accept: string[] | string = null;\n\n\t/**\n\t * The label of the attachment\n\t */\n\t@Prop() label: string | HTMLSlotElement;\n\n\t/**\n\t * The helper of the attachment\n\t */\n\t@Prop() helper: string | HTMLSlotElement;\n\n\t/**\n\t * Wether the attachment is required\n\t */\n\t@Prop({ reflect: true }) required = true;\n\n\t/**\n\t * The variant of the attachment\n\t */\n\t@Prop() mode: 'read' | 'write' = 'read';\n\n\t/**\n\t * The placeholder of the attachment\n\t */\n\t@Prop() placeholder: string = 'Upload a file...';\n\n\t/**\n\t * The text for the camera tooltip\n\t */\n\t@Prop() cameraTooltip: string = 'Camera';\n\n\t/**\n\t * The text for the download tooltip\n\t */\n\t@Prop() downloadTooltip: string = 'Download';\n\n\t/**\n\t * The text for the upload tooltip\n\t */\n\t@Prop() uploadTooltip: string = 'Upload';\n\n\t/**\n\t * The text for the delete tooltip\n\t */\n\t@Prop() deleteTooltip: string = 'Delete';\n\n\t/**\n\t * Wether the attachment is loading\n\t */\n\t@Prop() loading = false;\n\n\t/**\n\t * The error to show\n\t */\n\t@Prop() error: string;\n\n\t/**\n\t * Event when upload is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tupload: EventEmitter<{\n\t\tfile: File;\n\t\tfileId: string;\n\t\tresult: string;\n\t}>;\n\n\t/**\n\t * Event when download is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdownload: EventEmitter<void>;\n\n\t/**\n\t * Event when delete is pressed\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tdelete: EventEmitter<void>;\n\n\tprivate _fileRef: HTMLInputElement;\n\tprivate _cameraFileRef: HTMLInputElement;\n\n\trender() {\n\t\tlet prefix = (\n\t\t\t<p-icon\n\t\t\t\tclass='text-storm-300'\n\t\t\t\tvariant='attachment'\n\t\t\t/>\n\t\t);\n\n\t\tif (this.error) {\n\t\t\tprefix = (\n\t\t\t\t<p-icon\n\t\t\t\t\tvariant='warning'\n\t\t\t\t\tclass='text-negative-red-500'\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t// const isMobileDevice = isMobile();\n\t\tconst isMobileDevice = isTablet();\n\n\t\tconst baseText =\n\t\t\t'min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-sm';\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<p-field-container\n\t\t\t\t\tvariant='write'\n\t\t\t\t\tlabel={this.label}\n\t\t\t\t\thelper={this.helper}\n\t\t\t\t\terror={this.error}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tforceShowTooltip={!!this.error?.length}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tslot='content'\n\t\t\t\t\t\tclass='flex w-full items-start gap-2'\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={attachment({\n\t\t\t\t\t\t\t\tclick: this.mode === 'write' && !this.value?.length,\n\t\t\t\t\t\t\t\terror: !!this.error?.length,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => this._uploadClick()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{prefix}\n\n\t\t\t\t\t\t\t<span class={cn(baseText, 'peer empty:hidden')}>\n\t\t\t\t\t\t\t\t{this.value}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class={cn(baseText, 'hidden peer-empty:block')}>\n\t\t\t\t\t\t\t\t{this.placeholder}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\tclass='w-8'\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t? this.downloadTooltip\n\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t? this.deleteTooltip\n\t\t\t\t\t\t\t\t\t: this.uploadTooltip\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\tthis.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t? 'download'\n\t\t\t\t\t\t\t\t\t\t: this.value?.length\n\t\t\t\t\t\t\t\t\t\t? 'trash'\n\t\t\t\t\t\t\t\t\t\t: 'upload'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={this.loading}\n\t\t\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\t\t\tonOnClick={() =>\n\t\t\t\t\t\t\t\t\tthis.mode === 'write' && !this.value?.length\n\t\t\t\t\t\t\t\t\t\t? this._uploadClick()\n\t\t\t\t\t\t\t\t\t\t: (this.mode === 'read'\n\t\t\t\t\t\t\t\t\t\t\t\t? this.download\n\t\t\t\t\t\t\t\t\t\t\t\t: this.delete\n\t\t\t\t\t\t\t\t\t\t ).emit()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</p-tooltip>\n\n\t\t\t\t\t\t{this.enableCameraOnMobile &&\n\t\t\t\t\t\t\tthis.mode === 'write' &&\n\t\t\t\t\t\t\tisMobileDevice &&\n\t\t\t\t\t\t\t!this.value?.length && (\n\t\t\t\t\t\t\t\t<p-tooltip\n\t\t\t\t\t\t\t\t\tcontent={this.cameraTooltip}\n\t\t\t\t\t\t\t\t\tclass='w-8 desktop-xs:hidden'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\t\t\ticon='camera'\n\t\t\t\t\t\t\t\t\t\tonOnClick={() => this._cameraClick()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</p-tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</p-field-container>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept={\n\t\t\t\t\t\tArray.isArray(this.accept) ? this.accept?.join(',') : this.accept\n\t\t\t\t\t}\n\t\t\t\t\tref={el => (this._fileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\n\t\t\t\t<input\n\t\t\t\t\tclass='hidden'\n\t\t\t\t\ttype='file'\n\t\t\t\t\taccept='image/*'\n\t\t\t\t\tcapture='true'\n\t\t\t\t\tref={el => (this._cameraFileRef = el)}\n\t\t\t\t\tonChange={ev => this._onFileChange(ev)}\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n\n\tprivate _uploadClick() {\n\t\tif (!this._fileRef || this.mode !== 'write' || this.value?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fileRef.click();\n\t}\n\n\tprivate _cameraClick() {\n\t\tif (!this.enableCameraOnMobile || isMobile()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._cameraFileRef || this.mode !== 'write') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cameraFileRef?.click();\n\t}\n\n\tprivate _onFileChange(ev: Event) {\n\t\tconst target = ev.target as HTMLInputElement;\n\t\tconst file = target.files?.[0];\n\n\t\tif (file) {\n\t\t\tthis.loading = true;\n\n\t\t\tconst reader = new FileReader();\n\t\t\treader.onload = (e: any) => this._onLoad(file, e?.currentTarget?.result);\n\t\t\treader.readAsDataURL(file);\n\t\t}\n\t}\n\n\tprivate _onLoad(file: File, result: string) {\n\t\tthis.upload.emit({\n\t\t\tfileId: this.fileId,\n\t\t\tresult,\n\t\t\tfile,\n\t\t});\n\n\t\tif (this._fileRef) {\n\t\t\tthis._fileRef.value = '';\n\t\t}\n\n\t\tif (this._cameraFileRef) {\n\t\t\tthis._cameraFileRef.value = '';\n\t\t}\n\n\t\tthis.loading = false;\n\t}\n}\n"],"names":[],"mappings":"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"}