@nuralyui/document 0.0.1 → 0.0.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.
@@ -19,14 +19,14 @@ let HyDatePickerDemoElement = class HyDatePickerDemoElement extends LitElement {
19
19
  }
20
20
  render() {
21
21
  return html `
22
- <hy-pdf-viewer
22
+ <hy-document-viewer
23
23
  previewable="true"
24
24
  id="url-viewer"
25
25
  src="http://localhost:7004/api/v1/storage/preview/my-folder%2FRNE%20Public.pdf"
26
26
  width="100%"
27
27
  height="500px"
28
28
  previewable
29
- ></hy-pdf-viewer>
29
+ ></hy-document-viewer>
30
30
  `;
31
31
  }
32
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"document-demo.js","sourceRoot":"","sources":["../../../../src/components/document/demo/document-demo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,0BAA0B,CAAC;AAGlC,IAAa,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,UAAU;IAAvD;;QAEE,qBAAgB,GAAG,IAAI,CAAC;IAc1B,CAAC;IAZU,MAAM;QACb,OAAO,IAAI,CAAA;;;;;;;;;KASV,CAAC;IACJ,CAAC;CACF,CAAA;AAdC;IADC,KAAK,EAAE;iEACgB;AAFb,uBAAuB;IADnC,aAAa,CAAC,kBAAkB,CAAC;GACrB,uBAAuB,CAgBnC;SAhBY,uBAAuB","sourcesContent":["/**\n * @license\n * Copyright 2023 Google Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { LitElement, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport '../document.component.js';\n\n@customElement('hy-document-demo')\nexport class HyDatePickerDemoElement extends LitElement {\n @state()\n selectedLanguage = 'en';\n\n override render() {\n return html`\n <hy-pdf-viewer \n previewable=\"true\"\n id=\"url-viewer\"\n src=\"http://localhost:7004/api/v1/storage/preview/my-folder%2FRNE%20Public.pdf\"\n width=\"100%\"\n height=\"500px\"\n previewable\n ></hy-pdf-viewer>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"document-demo.js","sourceRoot":"","sources":["../../../../src/components/document/demo/document-demo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,0BAA0B,CAAC;AAGlC,IAAa,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,UAAU;IAAvD;;QAEE,qBAAgB,GAAG,IAAI,CAAC;IAc1B,CAAC;IAZU,MAAM;QACb,OAAO,IAAI,CAAA;;;;;;;;;KASV,CAAC;IACJ,CAAC;CACF,CAAA;AAdC;IADC,KAAK,EAAE;iEACgB;AAFb,uBAAuB;IADnC,aAAa,CAAC,kBAAkB,CAAC;GACrB,uBAAuB,CAgBnC;SAhBY,uBAAuB","sourcesContent":["/**\n * @license\n * Copyright 2023 Google Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { LitElement, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport '../document.component.js';\n\n@customElement('hy-document-demo')\nexport class HyDatePickerDemoElement extends LitElement {\n @state()\n selectedLanguage = 'en';\n\n override render() {\n return html`\n <hy-document-viewer \n previewable=\"true\"\n id=\"url-viewer\"\n src=\"http://localhost:7004/api/v1/storage/preview/my-folder%2FRNE%20Public.pdf\"\n width=\"100%\"\n height=\"500px\"\n previewable\n ></hy-document-viewer>\n `;\n }\n}\n"]}
@@ -220,7 +220,7 @@ __decorate([
220
220
  state()
221
221
  ], HyPdfViewer.prototype, "isFullscreen", void 0);
222
222
  HyPdfViewer = __decorate([
223
- customElement('hy-pdf-viewer')
223
+ customElement('hy-document-viewer')
224
224
  ], HyPdfViewer);
225
225
  export { HyPdfViewer };
226
226
  //# sourceMappingURL=document.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.component.js","sourceRoot":"","sources":["../../../src/components/document/document.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\n\n@customElement('hy-pdf-viewer')\nexport class HyPdfViewer extends LitElement {\n @property()\n src!: string;\n\n @property()\n width = 'auto';\n\n @property()\n height = 'auto';\n\n @property({type: Object})\n fallback = null;\n\n @property({ type: Boolean })\n previewable = false;\n\n @state()\n private isFullscreen = false;\n\n defaultFallBack = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxMjAgMTIwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHJlY3Qgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiIGZpbGw9IiNFRkYxRjMiLz4NCjxwYXRoIGQ9Ik01OS40IDYyLjhWODAuNEg0OC4yVjQxLjZINjMuNEM2Ny4xIDQxLjYgNzAuMSA0Mi42IDcyLjQgNDQuN0M3NC43IDQ2LjggNzUuOCA0OS42IDc1LjggNTNDNzUuOCA1Ni41IDc0LjcgNTkuMiA3Mi40IDYxLjNDNzAuMiA2My40IDY3LjIgNjQuNCA2My40IDY0LjRINTkuNFY2Mi44Wk01OS40IDU0LjZINjMuNEM2NSA1NC42IDY2LjMgNTQuMSA2Ny4yIDUzQzY4LjEgNTEuOSA2OC42IDUwLjYgNjguNiA0OUM2OC42IDQ3LjUgNjguMSA0Ni4yIDY3LjIgNDUuMUM2Ni4zIDQ0IDY1IDQzLjQgNjMuNCA0My40SDU5LjRWNTQuNloiIGZpbGw9IiM2ODc3ODciLz4NCjwvc3ZnPg==';\n\n static override styles = css`\n :host {\n display: block;\n }\n \n .pdf-container {\n position: relative;\n overflow: hidden;\n min-height: 100px;\n background-color: #f5f5f5;\n border: 1px solid #e0e0e0;\n }\n \n .pdf-iframe {\n border: none;\n display: block;\n width: 100%;\n height: 100%;\n }\n \n .preview-button {\n position: absolute;\n top: 10px;\n right: 10px;\n background-color: rgba(255, 255, 255, 0.8);\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 5px 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 12px;\n z-index: 10;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n }\n \n .preview-button:hover {\n background-color: rgba(255, 255, 255, 1);\n }\n\n .preview-button svg {\n margin-right: 4px;\n }\n \n .fullscreen-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.95);\n z-index: 9999;\n display: flex;\n flex-direction: column;\n }\n \n .fullscreen-header {\n display: flex;\n justify-content: flex-end;\n padding: 16px;\n background-color: rgba(0, 0, 0, 0.4);\n }\n \n .close-button {\n background-color: white;\n border: none;\n border-radius: 4px;\n padding: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n }\n\n .close-button:hover {\n background-color: #f0f0f0;\n }\n \n .fullscreen-content {\n flex: 1;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .fullscreen-iframe {\n width: 100%;\n height: 100%;\n border: none;\n background-color: white;\n }\n `;\n\n override render() {\n return html`\n <div class=\"pdf-container\" style=\"width:${this.width}; height:${this.height};\">\n <iframe \n class=\"pdf-iframe\"\n src=\"${this.src}\" \n title=\"PDF Viewer\"\n @error=${this._handleError}\n ></iframe>\n \n ${this.previewable ? html`\n <button class=\"preview-button\" @click=${this._openFullscreen}>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.5 1H1.5C1.22386 1 1 1.22386 1 1.5V5.5C1 5.77614 1.22386 6 1.5 6C1.77614 6 2 5.77614 2 5.5V2H5.5C5.77614 2 6 1.77614 6 1.5C6 1.22386 5.77614 1 5.5 1Z\" fill=\"currentColor\"/>\n <path d=\"M14.5 1H10.5C10.2239 1 10 1.22386 10 1.5C10 1.77614 10.2239 2 10.5 2H14V5.5C14 5.77614 14.2239 6 14.5 6C14.7761 6 15 5.77614 15 5.5V1.5C15 1.22386 14.7761 1 14.5 1Z\" fill=\"currentColor\"/>\n <path d=\"M5.5 14H2V10.5C2 10.2239 1.77614 10 1.5 10C1.22386 10 1 10.2239 1 10.5V14.5C1 14.7761 1.22386 15 1.5 15H5.5C5.77614 15 6 14.7761 6 14.5C6 14.2239 5.77614 14 5.5 14Z\" fill=\"currentColor\"/>\n <path d=\"M14.5 10C14.2239 10 14 10.2239 14 10.5V14H10.5C10.2239 14 10 14.2239 10 14.5C10 14.7761 10.2239 15 10.5 15H14.5C14.7761 15 15 14.7761 15 14.5V10.5C15 10.2239 14.7761 10 14.5 10Z\" fill=\"currentColor\"/>\n </svg>\n Fullscreen\n </button>\n ` : ''}\n </div>\n \n ${this.isFullscreen ? html`\n <div class=\"fullscreen-overlay\">\n <div class=\"fullscreen-header\">\n <button class=\"close-button\" @click=${this._closeFullscreen}>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.5 3.5L3.5 12.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.5 12.5L3.5 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n <div class=\"fullscreen-content\">\n <iframe \n class=\"fullscreen-iframe\"\n src=\"${this.src}\" \n title=\"Fullscreen PDF\"\n ></iframe>\n </div>\n </div>\n ` : ''}\n `;\n }\n\n _handleError(e: Event) {\n console.error('PDF loading error:', e);\n this.dispatchEvent(new CustomEvent('onError', {\n bubbles: true,\n composed: true,\n detail: {\n error: `Error loading PDF: PDF viewer not supported or file cannot be loaded`\n }\n }));\n \n // Show fallback image when error occurs\n const container = this.shadowRoot?.querySelector('.pdf-container');\n if (container) {\n const iframe = container.querySelector('iframe');\n if (iframe) {\n const img = document.createElement('img');\n img.src = this.fallback || this.defaultFallBack;\n img.alt = \"PDF failed to load\";\n img.style.width = \"100%\";\n img.style.height = \"100%\";\n img.style.objectFit = \"contain\";\n container.replaceChild(img, iframe);\n }\n }\n }\n\n _openFullscreen() {\n this.isFullscreen = true;\n // Prevent scrolling of the background when fullscreen is active\n document.body.style.overflow = 'hidden';\n }\n\n _closeFullscreen() {\n this.isFullscreen = false;\n // Restore scrolling when fullscreen is closed\n document.body.style.overflow = '';\n }\n\n // Clean up when component is removed\n override disconnectedCallback() {\n super.disconnectedCallback();\n // Ensure body scrolling is restored if component is removed while in fullscreen\n if (this.isFullscreen) {\n document.body.style.overflow = '';\n }\n }\n}"]}
1
+ {"version":3,"file":"document.component.js","sourceRoot":"","sources":["../../../src/components/document/document.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\n\n@customElement('hy-document-viewer')\nexport class HyPdfViewer extends LitElement {\n @property()\n src!: string;\n\n @property()\n width = 'auto';\n\n @property()\n height = 'auto';\n\n @property({type: Object})\n fallback = null;\n\n @property({ type: Boolean })\n previewable = false;\n\n @state()\n private isFullscreen = false;\n\n defaultFallBack = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxMjAgMTIwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHJlY3Qgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiIGZpbGw9IiNFRkYxRjMiLz4NCjxwYXRoIGQ9Ik01OS40IDYyLjhWODAuNEg0OC4yVjQxLjZINjMuNEM2Ny4xIDQxLjYgNzAuMSA0Mi42IDcyLjQgNDQuN0M3NC43IDQ2LjggNzUuOCA0OS42IDc1LjggNTNDNzUuOCA1Ni41IDc0LjcgNTkuMiA3Mi40IDYxLjNDNzAuMiA2My40IDY3LjIgNjQuNCA2My40IDY0LjRINTkuNFY2Mi44Wk01OS40IDU0LjZINjMuNEM2NSA1NC42IDY2LjMgNTQuMSA2Ny4yIDUzQzY4LjEgNTEuOSA2OC42IDUwLjYgNjguNiA0OUM2OC42IDQ3LjUgNjguMSA0Ni4yIDY3LjIgNDUuMUM2Ni4zIDQ0IDY1IDQzLjQgNjMuNCA0My40SDU5LjRWNTQuNloiIGZpbGw9IiM2ODc3ODciLz4NCjwvc3ZnPg==';\n\n static override styles = css`\n :host {\n display: block;\n }\n \n .pdf-container {\n position: relative;\n overflow: hidden;\n min-height: 100px;\n background-color: #f5f5f5;\n border: 1px solid #e0e0e0;\n }\n \n .pdf-iframe {\n border: none;\n display: block;\n width: 100%;\n height: 100%;\n }\n \n .preview-button {\n position: absolute;\n top: 10px;\n right: 10px;\n background-color: rgba(255, 255, 255, 0.8);\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 5px 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 12px;\n z-index: 10;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n }\n \n .preview-button:hover {\n background-color: rgba(255, 255, 255, 1);\n }\n\n .preview-button svg {\n margin-right: 4px;\n }\n \n .fullscreen-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.95);\n z-index: 9999;\n display: flex;\n flex-direction: column;\n }\n \n .fullscreen-header {\n display: flex;\n justify-content: flex-end;\n padding: 16px;\n background-color: rgba(0, 0, 0, 0.4);\n }\n \n .close-button {\n background-color: white;\n border: none;\n border-radius: 4px;\n padding: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n }\n\n .close-button:hover {\n background-color: #f0f0f0;\n }\n \n .fullscreen-content {\n flex: 1;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .fullscreen-iframe {\n width: 100%;\n height: 100%;\n border: none;\n background-color: white;\n }\n `;\n\n override render() {\n return html`\n <div class=\"pdf-container\" style=\"width:${this.width}; height:${this.height};\">\n <iframe \n class=\"pdf-iframe\"\n src=\"${this.src}\" \n title=\"PDF Viewer\"\n @error=${this._handleError}\n ></iframe>\n \n ${this.previewable ? html`\n <button class=\"preview-button\" @click=${this._openFullscreen}>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.5 1H1.5C1.22386 1 1 1.22386 1 1.5V5.5C1 5.77614 1.22386 6 1.5 6C1.77614 6 2 5.77614 2 5.5V2H5.5C5.77614 2 6 1.77614 6 1.5C6 1.22386 5.77614 1 5.5 1Z\" fill=\"currentColor\"/>\n <path d=\"M14.5 1H10.5C10.2239 1 10 1.22386 10 1.5C10 1.77614 10.2239 2 10.5 2H14V5.5C14 5.77614 14.2239 6 14.5 6C14.7761 6 15 5.77614 15 5.5V1.5C15 1.22386 14.7761 1 14.5 1Z\" fill=\"currentColor\"/>\n <path d=\"M5.5 14H2V10.5C2 10.2239 1.77614 10 1.5 10C1.22386 10 1 10.2239 1 10.5V14.5C1 14.7761 1.22386 15 1.5 15H5.5C5.77614 15 6 14.7761 6 14.5C6 14.2239 5.77614 14 5.5 14Z\" fill=\"currentColor\"/>\n <path d=\"M14.5 10C14.2239 10 14 10.2239 14 10.5V14H10.5C10.2239 14 10 14.2239 10 14.5C10 14.7761 10.2239 15 10.5 15H14.5C14.7761 15 15 14.7761 15 14.5V10.5C15 10.2239 14.7761 10 14.5 10Z\" fill=\"currentColor\"/>\n </svg>\n Fullscreen\n </button>\n ` : ''}\n </div>\n \n ${this.isFullscreen ? html`\n <div class=\"fullscreen-overlay\">\n <div class=\"fullscreen-header\">\n <button class=\"close-button\" @click=${this._closeFullscreen}>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.5 3.5L3.5 12.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.5 12.5L3.5 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n <div class=\"fullscreen-content\">\n <iframe \n class=\"fullscreen-iframe\"\n src=\"${this.src}\" \n title=\"Fullscreen PDF\"\n ></iframe>\n </div>\n </div>\n ` : ''}\n `;\n }\n\n _handleError(e: Event) {\n console.error('PDF loading error:', e);\n this.dispatchEvent(new CustomEvent('onError', {\n bubbles: true,\n composed: true,\n detail: {\n error: `Error loading PDF: PDF viewer not supported or file cannot be loaded`\n }\n }));\n \n // Show fallback image when error occurs\n const container = this.shadowRoot?.querySelector('.pdf-container');\n if (container) {\n const iframe = container.querySelector('iframe');\n if (iframe) {\n const img = document.createElement('img');\n img.src = this.fallback || this.defaultFallBack;\n img.alt = \"PDF failed to load\";\n img.style.width = \"100%\";\n img.style.height = \"100%\";\n img.style.objectFit = \"contain\";\n container.replaceChild(img, iframe);\n }\n }\n }\n\n _openFullscreen() {\n this.isFullscreen = true;\n // Prevent scrolling of the background when fullscreen is active\n document.body.style.overflow = 'hidden';\n }\n\n _closeFullscreen() {\n this.isFullscreen = false;\n // Restore scrolling when fullscreen is closed\n document.body.style.overflow = '';\n }\n\n // Clean up when component is removed\n override disconnectedCallback() {\n super.disconnectedCallback();\n // Ensure body scrolling is restored if component is removed while in fullscreen\n if (this.isFullscreen) {\n document.body.style.overflow = '';\n }\n }\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuralyui/document",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",