@advanced-rest-client/arc-fit-mixin
Version:
arc-fit-mixin is a port of iron-fit-behavior that works with web components
110 lines (81 loc) • 3.24 kB
Markdown
# DEPRECATED
Use the `@anypoint-web-components/awc` module instead.
-----
[](https://www.npmjs.com/package/@advanced-rest-client/arc-fit-mixin)
[](https://github.com/advanced-rest-client/arc-fit-mixin/actions/workflows/deployment.yml)
This mixin is a port of [iron-fit-behavior](https://github.com/PolymerElements/iron-fit-behavior) that works with LitElement.
`ArcFitMixin` fits an element in another element using `max-height` and `max-width`, and optionally centers it in the window or another element. The element will only be sized and/or positioned if it has not already been sized and/or positioned by CSS.
|CSS properties|Action|
|----------------------|---------------------------------------------------|
|`position` set|Element is not centered horizontally or vertically|
|`top` or `bottom` set|Element is not vertically centered|
|`left` or `right` set|Element is not horizontally centered|
|`max-height` set|Element respects `max-height`|
|`max-width` set|Element respects `max-width`|
`ArcFitMixin` can position an element into another element using `verticalAlign` and `horizontalAlign`. This will override the element's css position.
```html
<div class="container">
<arc-fit-impl verticalalign="top" horizontalalign="auto">
Positioned into the container
</arc-fit-impl>
</div>
```
Use `noOverlap` to position the element around another element without overlapping it.
```html
<div class="container">
<arc-fit-impl nooverlap verticalalign="auto" horizontalalign="auto">
Positioned around the container
</arc-fit-impl>
</div>
```
Use `horizontalOffset, verticalOffset` to offset the element from its
`positionTarget`; `ArcFitMixin` will collapse these in order to
keep the element within `fitInto` boundaries, while preserving the element's
CSS margin values.
```html
<div class="container">
<arc-fit-impl verticalalign="top" verticaloffset="20">
With vertical offset
</arc-fit-impl>
</div>
```
## Deprecation notice
The following attributes are supported for compatibility with older and Polymer elements but eventually will be removed and replaced wit the corresponding new attribute.
- `sizing-target` > `sizingtarget`
- `fit-into` > `fitinto`
- `no-overlap` > `nooverlap`
- `position-target` > `positiontarget`
- `horizontal-align` > `horizontalalign`
- `vertical-align` > `verticalalign`
- `dynamic-align` > `dynamicalign`
- `horizontal-offset` > `horizontaloffset`
- `vertical-offset` > `verticaloffset`
- `auto-fit-on-attach` > `autofitonattach`
## Installation
```bash
npm i @advanced-rest-client/arc-fit-mixin
```
## Usage
```javascript
import { LitElement } from 'lit-element';
import { ArcFitMixin } from '@advanced-rest-client/arc-fit-mixin';
class ArcFitImpl extends ArcFitMixin(LitElement) {
static get properties() {
return {
myProp: { type: Object, attribute: 'my-prop' },
};
}
}
```
## Testing
```bash
npm run test
```
## Testing with Sauce Labs
```bash
npm run test:sl
```
## Demo
```bash
npm start
```