UNPKG

6.16 kBJavaScriptView Raw
1"use strict";
2var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 return c > 3 && r && Object.defineProperty(target, key, r), r;
7};
8var __metadata = (this && this.__metadata) || function (k, v) {
9 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12/// <reference path="../summernote.d.ts" />
13var $ = require("jquery");
14var core_1 = require("@angular/core");
15var forms_1 = require("@angular/forms");
16var SUMMERNOTE_VALUE_ACCESSOR = {
17 provide: forms_1.NG_VALUE_ACCESSOR,
18 useExisting: core_1.forwardRef(function () { return SummernoteComponent; }),
19 multi: true
20};
21var SummernoteComponent = (function () {
22 function SummernoteComponent(element) {
23 this.element = element;
24 this.whitespaceEmpty = false;
25 this.emptyChange = new core_1.EventEmitter();
26 this.textChange = new core_1.EventEmitter();
27 this._disabled = false;
28 this.onTouched = function () { };
29 this.onChange = function () { };
30 }
31 Object.defineProperty(SummernoteComponent.prototype, "options", {
32 get: function () {
33 return this._options || {};
34 },
35 set: function (options) {
36 this._options = options;
37 this.addCallbacks();
38 this.refreshOptions();
39 },
40 enumerable: true,
41 configurable: true
42 });
43 Object.defineProperty(SummernoteComponent.prototype, "disabled", {
44 get: function () {
45 return this._disabled;
46 },
47 set: function (disabled) {
48 if (disabled != null) {
49 this._disabled = disabled;
50 $(this.element.nativeElement).find('.summernote').summernote(disabled ? 'disable' : 'enable');
51 this.refreshOptions();
52 }
53 },
54 enumerable: true,
55 configurable: true
56 });
57 Object.defineProperty(SummernoteComponent.prototype, "empty", {
58 get: function () {
59 return this._empty;
60 },
61 set: function (value) {
62 if (this._empty != value) {
63 this._empty = value;
64 this.emptyChange.emit(value);
65 }
66 },
67 enumerable: true,
68 configurable: true
69 });
70 Object.defineProperty(SummernoteComponent.prototype, "value", {
71 get: function () {
72 return this._value;
73 },
74 set: function (value) {
75 this._value = value;
76 },
77 enumerable: true,
78 configurable: true
79 });
80 SummernoteComponent.prototype.refreshOptions = function () {
81 $(this.element.nativeElement).find('.summernote').summernote(this.options);
82 if (this.options.tooltip != undefined && !this.options.tooltip)
83 $(this.element.nativeElement).find('.note-editor button.note-btn').tooltip('destroy');
84 };
85 SummernoteComponent.prototype.addCallbacks = function () {
86 var _this = this;
87 this.options.callbacks = {
88 onChange: function (contents, $editable) {
89 _this.refreshEmpty();
90 _this.onChange(contents);
91 },
92 onBlur: function () {
93 _this.onTouched();
94 },
95 onImageUpload: function (data) {
96 data.pop();
97 }
98 };
99 };
100 SummernoteComponent.prototype.refreshEmpty = function () {
101 var summernote = $(this.element.nativeElement).find('.summernote');
102 if (summernote == null)
103 return;
104 this.empty = summernote.summernote('isEmpty');
105 if (this.whitespaceEmpty)
106 this.empty = this.empty || summernote.summernote('code').replace(/(<\/?[^>]+>)|(&nbsp;)/g, "").trim() === '';
107 };
108 SummernoteComponent.prototype.ngOnInit = function () {
109 if (this.options == null) {
110 this.options = {};
111 }
112 this.refreshEmpty();
113 };
114 SummernoteComponent.prototype.ngOnDestroy = function () {
115 $(this.element.nativeElement).find('.summernote').summernote('destroy');
116 };
117 SummernoteComponent.prototype.writeValue = function (code) {
118 this.value = code;
119 $(this.element.nativeElement).find('.summernote').summernote('code', code);
120 this.refreshEmpty();
121 };
122 SummernoteComponent.prototype.registerOnChange = function (fn) {
123 this.onChange = fn;
124 };
125 SummernoteComponent.prototype.registerOnTouched = function (fn) {
126 this.onTouched = fn;
127 };
128 return SummernoteComponent;
129}());
130__decorate([
131 core_1.Input(),
132 __metadata("design:type", Object),
133 __metadata("design:paramtypes", [Object])
134], SummernoteComponent.prototype, "options", null);
135__decorate([
136 core_1.Input(),
137 __metadata("design:type", Boolean),
138 __metadata("design:paramtypes", [Boolean])
139], SummernoteComponent.prototype, "disabled", null);
140__decorate([
141 core_1.Input(),
142 __metadata("design:type", Object)
143], SummernoteComponent.prototype, "whitespaceEmpty", void 0);
144__decorate([
145 core_1.Output(),
146 __metadata("design:type", core_1.EventEmitter)
147], SummernoteComponent.prototype, "emptyChange", void 0);
148__decorate([
149 core_1.Output(),
150 __metadata("design:type", core_1.EventEmitter)
151], SummernoteComponent.prototype, "textChange", void 0);
152SummernoteComponent = __decorate([
153 core_1.Component({
154 selector: 'summernote',
155 template: '<div class="summernote"></div>',
156 providers: [SUMMERNOTE_VALUE_ACCESSOR]
157 }),
158 __metadata("design:paramtypes", [core_1.ElementRef])
159], SummernoteComponent);
160exports.SummernoteComponent = SummernoteComponent;
161//# sourceMappingURL=summernote.component.js.map
\No newline at end of file