UNPKG

@uppy/angular

Version:

Angular component wrappers around Uppy's official UI plugins.

1 lines 16.4 kB
{"version":3,"file":"uppy-angular.mjs","sources":["../../../../projects/uppy/angular/src/lib/utils/wrapper.ts","../../../../projects/uppy/angular/src/lib/components/status-bar/status-bar.component.ts","../../../../projects/uppy/angular/src/lib/components/progress-bar/progress-bar.component.ts","../../../../projects/uppy/angular/src/lib/components/drag-drop/drag-drop.component.ts","../../../../projects/uppy/angular/src/lib/components/dashboard/dashboard.component.ts","../../../../projects/uppy/angular/src/lib/components/dashboard-modal/dashboard-modal.component.ts","../../../../projects/uppy/angular/src/public-api.ts","../../../../projects/uppy/angular/src/uppy-angular.ts"],"sourcesContent":["import type { Uppy, UIPlugin, UIPluginOptions } from '@uppy/core';\nimport type { ElementRef, SimpleChanges } from '@angular/core';\nimport type { DragDropOptions } from '@uppy/drag-drop';\nimport type { StatusBarOptions } from '@uppy/status-bar';\nimport type { ProgressBarOptions } from '@uppy/progress-bar';\nimport { Body, Meta } from '@uppy/utils/lib/UppyFile';\n\nexport abstract class UppyAngularWrapper<\n M extends Meta,\n B extends Body,\n Opts extends UIPluginOptions,\n PluginType extends UIPlugin<Opts, M, B> = UIPlugin<Opts, M, B>,\n> {\n abstract props: DragDropOptions | StatusBarOptions | ProgressBarOptions;\n abstract el: ElementRef;\n abstract uppy: Uppy<M, B>;\n private options: any;\n plugin: PluginType | undefined;\n\n onMount(\n defaultOptions: Partial<Opts>,\n plugin: new (uppy: any, opts?: Opts) => UIPlugin<Opts, M, B>,\n ) {\n this.options = {\n ...defaultOptions,\n ...this.props,\n };\n\n this.uppy.use(plugin, this.options);\n this.plugin = this.uppy.getPlugin(this.options.id) as PluginType;\n }\n\n handleChanges(changes: SimpleChanges, plugin: any): void {\n // Without the last part of this conditional, it tries to uninstall before the plugin is mounted\n if (\n changes['uppy'] &&\n this.uppy !== changes['uppy'].previousValue &&\n changes['uppy'].previousValue !== undefined\n ) {\n this.uninstall(changes['uppy'].previousValue);\n // @ts-expect-error The options correspond to the plugin, I swear\n this.uppy.use(plugin, this.options);\n }\n this.options = { ...this.options, ...this.props };\n this.plugin = this.uppy.getPlugin(this.options.id) as PluginType;\n if (\n changes['props'] &&\n this.props !== changes['props'].previousValue &&\n changes['props'].previousValue !== undefined\n ) {\n this.plugin.setOptions({ ...this.options });\n }\n }\n\n uninstall(uppy = this.uppy): void {\n uppy.removePlugin(this.plugin!);\n }\n}\n","import { Component, ChangeDetectionStrategy, Input, ElementRef, OnDestroy, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { Uppy } from '@uppy/core';\nimport StatusBar from '@uppy/status-bar';\nimport type { StatusBarOptions } from '@uppy/status-bar';\nimport { Body, Meta } from '@uppy/utils/lib/UppyFile';\nimport { UppyAngularWrapper } from '../../utils/wrapper';\n\n@Component({\n selector: 'uppy-status-bar',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StatusBarComponent<M extends Meta, B extends Body>\n extends UppyAngularWrapper<M, B, StatusBarOptions>\n implements OnDestroy, OnChanges\n{\n el = inject(ElementRef);\n\n @Input() uppy: Uppy<M, B> = new Uppy();\n @Input() props: StatusBarOptions = {};\n\n /** Inserted by Angular inject() migration for backwards compatibility */\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.onMount(\n { id: 'angular:StatusBar', target: this.el.nativeElement },\n StatusBar,\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.handleChanges(changes, StatusBar);\n }\n\n ngOnDestroy(): void {\n this.uninstall();\n }\n}\n","import { Component, ChangeDetectionStrategy, ElementRef, Input, OnDestroy, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { Uppy } from '@uppy/core';\nimport ProgressBar from '@uppy/progress-bar';\nimport type { ProgressBarOptions } from '@uppy/progress-bar';\nimport { Body, Meta } from '@uppy/utils/lib/UppyFile';\nimport { UppyAngularWrapper } from '../../utils/wrapper';\n\n@Component({\n selector: 'uppy-progress-bar',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressBarComponent<M extends Meta, B extends Body>\n extends UppyAngularWrapper<M, B, ProgressBarOptions>\n implements OnDestroy, OnChanges\n{\n el = inject(ElementRef);\n\n @Input() uppy: Uppy<M, B> = new Uppy();\n @Input() props: ProgressBarOptions = {};\n\n /** Inserted by Angular inject() migration for backwards compatibility */\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.onMount(\n { id: 'angular:ProgressBar', target: this.el.nativeElement },\n ProgressBar,\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.handleChanges(changes, ProgressBar);\n }\n\n ngOnDestroy(): void {\n this.uninstall();\n }\n}\n","import { Component, ChangeDetectionStrategy, Input, OnDestroy, OnChanges, SimpleChanges, ElementRef, inject } from '@angular/core';\nimport { Uppy } from '@uppy/core';\nimport DragDrop from '@uppy/drag-drop';\nimport type { DragDropOptions } from '@uppy/drag-drop';\nimport { Body, Meta } from '@uppy/utils/lib/UppyFile';\nimport { UppyAngularWrapper } from '../../utils/wrapper';\n\n@Component({\n selector: 'uppy-drag-drop',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DragDropComponent<M extends Meta, B extends Body>\n extends UppyAngularWrapper<M, B, DragDropOptions>\n implements OnDestroy, OnChanges\n{\n el = inject(ElementRef);\n\n @Input() uppy: Uppy<M, B> = new Uppy();\n @Input() props: DragDropOptions = {};\n\n /** Inserted by Angular inject() migration for backwards compatibility */\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.onMount(\n { id: 'angular:DragDrop', target: this.el.nativeElement },\n DragDrop,\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.handleChanges(changes, DragDrop);\n }\n\n ngOnDestroy(): void {\n this.uninstall();\n }\n}\n","import { Component, ChangeDetectionStrategy, ElementRef, Input, OnDestroy, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport Dashboard from '@uppy/dashboard';\nimport type { DashboardOptions } from '@uppy/dashboard';\nimport { Uppy } from '@uppy/core';\nimport { UppyAngularWrapper } from '../../utils/wrapper';\nimport { Body, Meta } from '@uppy/utils/lib/UppyFile';\n\n@Component({\n selector: 'uppy-dashboard',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DashboardComponent<M extends Meta, B extends Body>\n extends UppyAngularWrapper<M, B, DashboardOptions<M,B>>\n implements OnDestroy, OnChanges\n{\n el = inject(ElementRef);\n\n @Input() uppy: Uppy<M, B> = new Uppy();\n @Input() props: DashboardOptions<M, B> = {};\n\n /** Inserted by Angular inject() migration for backwards compatibility */\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.onMount(\n { id: 'angular:Dashboard', inline: true, target: this.el.nativeElement },\n Dashboard,\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.handleChanges(changes, Dashboard);\n }\n\n ngOnDestroy(): void {\n this.uninstall();\n }\n}\n","import { Component, ChangeDetectionStrategy, ElementRef, Input, OnDestroy, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport Dashboard from '@uppy/dashboard';\nimport type { DashboardOptions } from '@uppy/dashboard';\nimport { Uppy } from '@uppy/core';\nimport { UppyAngularWrapper } from '../../utils/wrapper';\nimport { Body, Meta } from '@uppy/utils/lib/UppyFile';\n\n@Component({\n selector: 'uppy-dashboard-modal',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DashboardModalComponent<M extends Meta, B extends Body>\n extends UppyAngularWrapper<M, B, DashboardOptions<M, B>, Dashboard<M, B>>\n implements OnDestroy, OnChanges\n{\n el = inject(ElementRef);\n\n @Input() uppy: Uppy<M, B> = new Uppy();\n @Input() props: DashboardOptions<M, B> = {};\n @Input() open: boolean = false;\n\n /** Inserted by Angular inject() migration for backwards compatibility */\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.onMount(\n {\n id: 'angular:DashboardModal',\n inline: false,\n target: this.el.nativeElement,\n },\n Dashboard,\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.handleChanges(changes, Dashboard);\n // Handle dashboard-modal specific changes\n if (changes['open'] && this.open !== changes['open'].previousValue) {\n if (this.open && !changes['open'].previousValue) {\n this.plugin!.openModal();\n }\n if (!this.open && changes['open'].previousValue) {\n this.plugin!.closeModal();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.uninstall();\n }\n}\n","/*\n * Public API Surface of @uppy/angular\n */\n\nexport { StatusBarComponent } from './lib/components/status-bar/status-bar.component';\nexport { ProgressBarComponent } from './lib/components/progress-bar/progress-bar.component';\nexport { DragDropComponent } from './lib/components/drag-drop/drag-drop.component';\nexport { DashboardComponent } from './lib/components/dashboard/dashboard.component';\nexport { DashboardModalComponent } from './lib/components/dashboard-modal/dashboard-modal.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}