CropperElement
The CropperElement interface represents any Cropper element, extends the HTMLElement interface.
Specifications
- The name of public properties should start with an alphabetic character.
- The name of private properties should start with
$. - The name of public/private custom methods should start with
$. - The name of private custom listeners should start with
$on.
Example
js
import { CropperElement } from 'cropperjs';
// Or
// import CropperElement from '@cropper/element';
class MyCropperElement extends CropperElement {
myStringProperty = '';
myNumberProperty = NaN;
myBooleanProperty = false;
static get observedAttributes() {
return super.observedAttributes.concat([
'my-boolean-property',
'my-number-property',
'my-string-property',
]);
}
// ...
}
MyCropperElement.$define();html
<my-cropper-element my-string-property="foo" my-number-property="1" my-boolean-property></my-cropper-element>Properties
Inherits properties from its parent, HTMLElement, and implements the following properties:
| Name | Type | Default | Options | Description |
|---|---|---|---|---|
| shadowRootMode | string | "open" | "closed" | "open" | Indicates the encapsulation mode for the shadow DOM tree. |
| slottable | boolean | true | - | Indicates whether this element contains a <slot> element. |
| themeColor | string | - | - | Indicates the theme color of this element and its children. |
Methods
$getShadowRoot
- Syntax:
$getShadowRoot() - Returns:
- Type:
ShadowRoot - The shadow root.
- Type:
Outputs the shadow root of the element, even if its mode is "closed".
$addStyles
Syntax:
$addStyles(styles)Arguments:
styles:- Type:
string - The styles to add.
- Type:
Returns:
- Type:
CSSStyleSheet | HTMLStyleElement - The generated style sheet.
- Type:
Example:
jsconst canvas = new CropperCanvas(); canvas.$addStyles(` :host { border: 1px solid #39f; } `);
Adds styles to the shadow root.
$emit
Syntax:
$emit(type)$emit(type, detail)$emit(type, detail, options)
Arguments:
type:- Type:
string - The name of the event.
- Type:
detail:- Type:
* - Default:
undefined - The data passed when initializing the event.
- Type:
options:- Type:
CustomEventInit - Default:
{ bubbles: true, cancelable: true, composed: true } - The other event options.
- Type:
Returns:
- Type:
boolean - The result value.
- Type:
Example:
jsconst selection = new CropperSelection(); selection.$emit('change', { x: 10, y: 5, width: 160, height: 90, });
Dispatches an event at the current element.
$nextTick
- Syntax:
$nextTick()$nextTick(callback)
- Arguments:
callback:- Type:
Function - The callback to execute after the next DOM update cycle.
- Type:
- Returns:
- Type:
Promise - A promise that resolves to nothing.
- Type:
Defers the callback to be executed after the next DOM update cycle.
Static Properties
| Name | Type | Description |
|---|---|---|
| $name | string | The name of the custom element. |
| $version | string | The version of the package. |
Static methods
$define
Defines the constructor as a new custom element. It is just a shortcut to call CustomElementRegistry.define().
Syntax:
$define()$define(name)$define(options)$define(name, options)
Alternatives:
customElements.define(name, constructor)customElements.define(name, constructor, options)
Arguments:
name:- Type:
string - The element name. Defaults to the
$namestatic property of the constructor.
- Type:
options:- Type:
Object - The element definition options.
- Type:
Example:
js// Define as a autonomous custom element: `<my-cropper-element></my-cropper-element>`. CropperElement.$define('my-cropper-element');