• Stars
    star
    314
  • Rank 133,353 (Top 3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 8 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An angular 15.0+ directive that allows an element to be dragged and resized

angular resizable element

Sponsorship Build Status codecov npm version GitHub license

Demo

https://mattlewis92.github.io/angular-resizable-element/

Table of contents

About

An angular 15.0+ directive that allows an element to be dragged and resized

Installation

Install through npm:

npm install angular-resizable-element

Then use it in your app like so:

import { Component } from '@angular/core';
import { ResizeEvent } from 'angular-resizable-element';

@Component({
  selector: 'demo-app',
  styles: [
    `
      .rectangle {
        position: relative;
        top: 200px;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 300px;
        height: 150px;
        background-color: #fd4140;
        border: solid 1px #121621;
        color: #121621;
        margin: auto;
      }

      mwlResizable {
        box-sizing: border-box; // required for the enableGhostResize option to work
      }

      .resize-handle-top,
      .resize-handle-bottom {
        position: absolute;
        height: 5px;
        cursor: row-resize;
        width: 100%;
      }

      .resize-handle-top {
        top: 0;
      }

      .resize-handle-bottom {
        bottom: 0;
      }

      .resize-handle-left,
      .resize-handle-right {
        position: absolute;
        height: 100%;
        cursor: col-resize;
        width: 5px;
      }

      .resize-handle-left {
        left: 0;
      }

      .resize-handle-right {
        right: 0;
      }
    `,
  ],
  template: `
    <div
      class="rectangle"
      mwlResizable
      [enableGhostResize]="true"
      (resizeEnd)="onResizeEnd($event)"
    >
      <div
        class="resize-handle-top"
        mwlResizeHandle
        [resizeEdges]="{ top: true }"
      ></div>
      <div
        class="resize-handle-left"
        mwlResizeHandle
        [resizeEdges]="{ left: true }"
      ></div>
      <div
        class="resize-handle-right"
        mwlResizeHandle
        [resizeEdges]="{ right: true }"
      ></div>
      <div
        class="resize-handle-bottom"
        mwlResizeHandle
        [resizeEdges]="{ bottom: true }"
      ></div>
    </div>
  `,
})
export class MyComponent {
  onResizeEnd(event: ResizeEvent): void {
    console.log('Element was resized', event);
  }
}

// now use within your apps module
import { NgModule } from '@angular/core';
import { ResizableModule } from 'angular-resizable-element';

@NgModule({
  declarations: [MyComponent],
  imports: [ResizableModule],
  bootstrap: [MyComponent],
})
class MyModule {}

You may also find it useful to view the demo source.

Documentation

All documentation is auto-generated from the source and can be viewed here: https://mattlewis92.github.io/angular-resizable-element/docs/

Development

Prepare your environment

Development server

Run pnpm start to start a development server on port 8000 with auto reload + tests.

Testing

Run pnpm test to run tests once or pnpm test:watch to continually run tests.

Release

pnpm release

License

MIT

More Repositories

1

angular-calendar

A flexible calendar component for angular 15.0+ that can display events on a month, week or day view.
TypeScript
2,720
star
2

angular-bootstrap-calendar

A port of the bootstrap calendar widget to AngularJS (no jQuery required!)
JavaScript
798
star
3

webpack-retry-chunk-load-plugin

A webpack plugin to retry loading of chunks that failed to load
TypeScript
236
star
4

angular-confirmation-popover

An angular 15.0+ bootstrap confirmation popover
TypeScript
202
star
5

karma-coverage-istanbul-reporter

A karma reporter that uses the latest istanbul 1.x APIs to report coverage
JavaScript
163
star
6

angular-draggable-droppable

Observable powered drag and drop for angular 15.0+
TypeScript
134
star
7

angular2-tv-tracker

A simple TV app for learning angular 2+
TypeScript
127
star
8

angularx-flatpickr

An angular 17.0+ wrapper for flatpickr
TypeScript
88
star
9

angular-bootstrap-confirm

Displays a bootstrap confirmation popover (with no jQuery or bootstrap JS!)
JavaScript
88
star
10

angular-gauge

A tiny angular 15.0+ wrapper for https://github.com/naikus/svg-gauge
TypeScript
80
star
11

angular-bluebird-promises

Replace the default angular $q service with the bluebird promise library for enhanced promises within your angular app!
JavaScript
74
star
12

generator-angular-library

A yeoman generator for scaffolding a new angular 5 module that you can publish and share straight away to npm
TypeScript
65
star
13

angular-text-input-highlight

A component that can highlight parts of text in a textarea. Useful for displaying mentions etc
TypeScript
55
star
14

angular-text-input-autocomplete

A angular 6+ directive for adding autocomplete functionality to text input elements, built around composability
TypeScript
45
star
15

calendar-utils

Utility functions to generate views for calendars
TypeScript
38
star
16

webpack-filter-warnings-plugin

Allows you to hide certain warnings from webpack compilations
TypeScript
27
star
17

cordova-plugin-is-debug

A cordova plugin to detect if the app is running in debug mode or not
Java
20
star
18

angular-async-cache

A simple utility to help with caching of promises and observables to enable an easy offline first approach in angular 6+ apps
TypeScript
20
star
19

angular-highlight-js

Highlight.js integration for angular 4.0+
TypeScript
9
star
20

js-to-typescript-codemod

A simple codemod for helping migrate from babel to typescript. Converts default imports to wildcards.
JavaScript
8
star
21

positioning

The ng-bootstrap Positioning class as a standalone module
TypeScript
4
star
22

bless-css-webpack-plugin

A webpack plugin for bless CSS
JavaScript
4
star
23

webpack-angular-externals

A tiny utility to prevent webpack bundling @angular dependencies in your library code
JavaScript
3
star
24

create-plunker

A helper utility to create plunkers
TypeScript
2
star
25

material-theme-test

1
star
26

docker-nodejs-chrome

A docker container for installing node.js and google chrome
1
star
27

mattlewis.me

The source code for my personal website
HTML
1
star
28

node-mr-bump

Bumps your apps manifest files version
JavaScript
1
star
29

mwl-technologies.co.uk

TypeScript
1
star
30

angular-15-angular-calendar

TypeScript
1
star
31

tslint-config-mwl

The TSLint config that I use across all projects. Should be used in conjunction with angular + prettier
1
star
32

angular-calendar-ng16-test

HTML
1
star
33

webpack-date-fns-externals

A tiny utility to prevent webpack bundling date-fns imports in your library code
JavaScript
1
star
34

angular-async-tracker

A port of angular-promise-tracker to angular 6+ that also supports observables
TypeScript
1
star
35

api.mattlewis.me

A very simple REST API used by my personal website. Uses native ES6 and a couple of babel transforms for unsupported native features.
JavaScript
1
star
36

generate-date-fns-typings

A script to auto create typescript definitions for the date-fns library from the docblock comments
JavaScript
1
star