jb-textarea 1.1.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/JBTextarea.d.ts +31 -0
- package/dist/JBTextarea.js +408 -74
- package/dist/JBTextarea.js.map +1 -1
- package/dist/Types.d.ts +23 -0
- package/index.js +1 -1
- package/lib/JBTextarea.scss +2 -2
- package/lib/{JBTextarea.js → JBTextarea.ts} +52 -39
- package/lib/Types.ts +23 -0
- package/lib/global.d.ts +11 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -69,4 +69,6 @@ if you want to set a custom style to this web-component all you need is to set c
|
|
|
69
69
|
| --jb-textarea-min-height | minimum height of text area defualt is `80px` |
|
|
70
70
|
| --jb-textarea-max-height | minimum height of text area defualt is `none` |
|
|
71
71
|
| --jb-textarea-placeholder-color | placeholder color defualt is 'initial' |
|
|
72
|
-
| --jb-textarea-placeholder-font-size | placeholder font-size defualt is `initial` |
|
|
72
|
+
| --jb-textarea-placeholder-font-size | placeholder font-size defualt is `initial` |
|
|
73
|
+
| --jb-textarea-label-color | label color defualt is `#1f1735` |
|
|
74
|
+
| --jb-textarea-value-color | value color |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { JBTextareaValidationItem, ValidationResult, ValidationResultSummary } from './Types';
|
|
2
|
+
export declare class JBTextareaWebComponent extends HTMLElement {
|
|
3
|
+
#private;
|
|
4
|
+
get value(): string;
|
|
5
|
+
set value(value: string);
|
|
6
|
+
constructor();
|
|
7
|
+
initWebComponent(): void;
|
|
8
|
+
registerEventListener(): void;
|
|
9
|
+
validationList: JBTextareaValidationItem[];
|
|
10
|
+
autoHeight: boolean;
|
|
11
|
+
validation: ValidationResultSummary;
|
|
12
|
+
initProp(): void;
|
|
13
|
+
static get observedAttributes(): string[];
|
|
14
|
+
attributeChangedCallback(name: any, oldValue: any, newValue: any): void;
|
|
15
|
+
onAttributeChange(name: any, value: any): void;
|
|
16
|
+
changeHeightToContentSize(): void;
|
|
17
|
+
onInputKeyDown(e: any): void;
|
|
18
|
+
onInputKeyPress(): void;
|
|
19
|
+
onInputInput(): void;
|
|
20
|
+
onInputKeyup(e: any): void;
|
|
21
|
+
onInputChange(e: any): void;
|
|
22
|
+
triggerInputValidation(showError?: boolean): ValidationResult;
|
|
23
|
+
checkInputValidation(inputText: any): ValidationResult;
|
|
24
|
+
checkValidation(text: any, validation: any): {
|
|
25
|
+
isValid: boolean;
|
|
26
|
+
message: any;
|
|
27
|
+
validation: any;
|
|
28
|
+
};
|
|
29
|
+
showValidationError(error: any): void;
|
|
30
|
+
clearValidationError(): void;
|
|
31
|
+
}
|
package/dist/JBTextarea.js
CHANGED
|
@@ -1,49 +1,378 @@
|
|
|
1
|
-
var
|
|
1
|
+
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
function createCommonjsModule(fn, basedir, module) {
|
|
4
|
+
return module = {
|
|
5
|
+
path: basedir,
|
|
6
|
+
exports: {},
|
|
7
|
+
require: function (path, base) {
|
|
8
|
+
return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
|
|
9
|
+
}
|
|
10
|
+
}, fn(module, module.exports), module.exports;
|
|
11
|
+
}
|
|
4
12
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
13
|
+
function commonjsRequire () {
|
|
14
|
+
throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
var tslib = createCommonjsModule(function (module) {
|
|
18
|
+
/*! *****************************************************************************
|
|
19
|
+
Copyright (c) Microsoft Corporation.
|
|
20
|
+
|
|
21
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
22
|
+
purpose with or without fee is hereby granted.
|
|
23
|
+
|
|
24
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
25
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
26
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
27
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
28
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
29
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
30
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
31
|
+
***************************************************************************** */
|
|
32
|
+
/* global global, define, System, Reflect, Promise */
|
|
33
|
+
var __extends;
|
|
34
|
+
var __assign;
|
|
35
|
+
var __rest;
|
|
36
|
+
var __decorate;
|
|
37
|
+
var __param;
|
|
38
|
+
var __metadata;
|
|
39
|
+
var __awaiter;
|
|
40
|
+
var __generator;
|
|
41
|
+
var __exportStar;
|
|
42
|
+
var __values;
|
|
43
|
+
var __read;
|
|
44
|
+
var __spread;
|
|
45
|
+
var __spreadArrays;
|
|
46
|
+
var __spreadArray;
|
|
47
|
+
var __await;
|
|
48
|
+
var __asyncGenerator;
|
|
49
|
+
var __asyncDelegator;
|
|
50
|
+
var __asyncValues;
|
|
51
|
+
var __makeTemplateObject;
|
|
52
|
+
var __importStar;
|
|
53
|
+
var __importDefault;
|
|
54
|
+
var __classPrivateFieldGet;
|
|
55
|
+
var __classPrivateFieldSet;
|
|
56
|
+
var __createBinding;
|
|
57
|
+
(function (factory) {
|
|
58
|
+
var root = typeof commonjsGlobal === "object" ? commonjsGlobal : typeof self === "object" ? self : typeof this === "object" ? this : {};
|
|
59
|
+
{
|
|
60
|
+
factory(createExporter(root, createExporter(module.exports)));
|
|
8
61
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
62
|
+
function createExporter(exports, previous) {
|
|
63
|
+
if (exports !== root) {
|
|
64
|
+
if (typeof Object.create === "function") {
|
|
65
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
exports.__esModule = true;
|
|
69
|
+
}
|
|
14
70
|
}
|
|
71
|
+
return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
|
|
15
72
|
}
|
|
73
|
+
})
|
|
74
|
+
(function (exporter) {
|
|
75
|
+
var extendStatics = Object.setPrototypeOf ||
|
|
76
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
77
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
78
|
+
|
|
79
|
+
__extends = function (d, b) {
|
|
80
|
+
if (typeof b !== "function" && b !== null)
|
|
81
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
82
|
+
extendStatics(d, b);
|
|
83
|
+
function __() { this.constructor = d; }
|
|
84
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
__assign = Object.assign || function (t) {
|
|
88
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
89
|
+
s = arguments[i];
|
|
90
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
91
|
+
}
|
|
92
|
+
return t;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
__rest = function (s, e) {
|
|
96
|
+
var t = {};
|
|
97
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
98
|
+
t[p] = s[p];
|
|
99
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
100
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
101
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
102
|
+
t[p[i]] = s[p[i]];
|
|
103
|
+
}
|
|
104
|
+
return t;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
__decorate = function (decorators, target, key, desc) {
|
|
108
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
109
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
110
|
+
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;
|
|
111
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
__param = function (paramIndex, decorator) {
|
|
115
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
__metadata = function (metadataKey, metadataValue) {
|
|
119
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
__awaiter = function (thisArg, _arguments, P, generator) {
|
|
123
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
124
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
125
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
126
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
127
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
128
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
__generator = function (thisArg, body) {
|
|
133
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
134
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
135
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
136
|
+
function step(op) {
|
|
137
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
138
|
+
while (_) try {
|
|
139
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
140
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
141
|
+
switch (op[0]) {
|
|
142
|
+
case 0: case 1: t = op; break;
|
|
143
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
144
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
145
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
146
|
+
default:
|
|
147
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
148
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
149
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
150
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
151
|
+
if (t[2]) _.ops.pop();
|
|
152
|
+
_.trys.pop(); continue;
|
|
153
|
+
}
|
|
154
|
+
op = body.call(thisArg, _);
|
|
155
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
156
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
__exportStar = function(m, o) {
|
|
161
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
__createBinding = Object.create ? (function(o, m, k, k2) {
|
|
165
|
+
if (k2 === undefined) k2 = k;
|
|
166
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
167
|
+
}) : (function(o, m, k, k2) {
|
|
168
|
+
if (k2 === undefined) k2 = k;
|
|
169
|
+
o[k2] = m[k];
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
__values = function (o) {
|
|
173
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
174
|
+
if (m) return m.call(o);
|
|
175
|
+
if (o && typeof o.length === "number") return {
|
|
176
|
+
next: function () {
|
|
177
|
+
if (o && i >= o.length) o = void 0;
|
|
178
|
+
return { value: o && o[i++], done: !o };
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
__read = function (o, n) {
|
|
185
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
186
|
+
if (!m) return o;
|
|
187
|
+
var i = m.call(o), r, ar = [], e;
|
|
188
|
+
try {
|
|
189
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
190
|
+
}
|
|
191
|
+
catch (error) { e = { error: error }; }
|
|
192
|
+
finally {
|
|
193
|
+
try {
|
|
194
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
195
|
+
}
|
|
196
|
+
finally { if (e) throw e.error; }
|
|
197
|
+
}
|
|
198
|
+
return ar;
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
/** @deprecated */
|
|
202
|
+
__spread = function () {
|
|
203
|
+
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
204
|
+
ar = ar.concat(__read(arguments[i]));
|
|
205
|
+
return ar;
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
/** @deprecated */
|
|
209
|
+
__spreadArrays = function () {
|
|
210
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
211
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
212
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
213
|
+
r[k] = a[j];
|
|
214
|
+
return r;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
__spreadArray = function (to, from, pack) {
|
|
218
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
219
|
+
if (ar || !(i in from)) {
|
|
220
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
221
|
+
ar[i] = from[i];
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
__await = function (v) {
|
|
228
|
+
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
__asyncGenerator = function (thisArg, _arguments, generator) {
|
|
232
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
233
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
234
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
235
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
236
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
237
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
238
|
+
function fulfill(value) { resume("next", value); }
|
|
239
|
+
function reject(value) { resume("throw", value); }
|
|
240
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
__asyncDelegator = function (o) {
|
|
244
|
+
var i, p;
|
|
245
|
+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
|
246
|
+
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
__asyncValues = function (o) {
|
|
250
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
251
|
+
var m = o[Symbol.asyncIterator], i;
|
|
252
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
253
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
254
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
__makeTemplateObject = function (cooked, raw) {
|
|
258
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
259
|
+
return cooked;
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
var __setModuleDefault = Object.create ? (function(o, v) {
|
|
263
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
264
|
+
}) : function(o, v) {
|
|
265
|
+
o["default"] = v;
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
__importStar = function (mod) {
|
|
269
|
+
if (mod && mod.__esModule) return mod;
|
|
270
|
+
var result = {};
|
|
271
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
272
|
+
__setModuleDefault(result, mod);
|
|
273
|
+
return result;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
__importDefault = function (mod) {
|
|
277
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
__classPrivateFieldGet = function (receiver, state, kind, f) {
|
|
281
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
282
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
283
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
__classPrivateFieldSet = function (receiver, state, value, kind, f) {
|
|
287
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
288
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
289
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
290
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
exporter("__extends", __extends);
|
|
294
|
+
exporter("__assign", __assign);
|
|
295
|
+
exporter("__rest", __rest);
|
|
296
|
+
exporter("__decorate", __decorate);
|
|
297
|
+
exporter("__param", __param);
|
|
298
|
+
exporter("__metadata", __metadata);
|
|
299
|
+
exporter("__awaiter", __awaiter);
|
|
300
|
+
exporter("__generator", __generator);
|
|
301
|
+
exporter("__exportStar", __exportStar);
|
|
302
|
+
exporter("__createBinding", __createBinding);
|
|
303
|
+
exporter("__values", __values);
|
|
304
|
+
exporter("__read", __read);
|
|
305
|
+
exporter("__spread", __spread);
|
|
306
|
+
exporter("__spreadArrays", __spreadArrays);
|
|
307
|
+
exporter("__spreadArray", __spreadArray);
|
|
308
|
+
exporter("__await", __await);
|
|
309
|
+
exporter("__asyncGenerator", __asyncGenerator);
|
|
310
|
+
exporter("__asyncDelegator", __asyncDelegator);
|
|
311
|
+
exporter("__asyncValues", __asyncValues);
|
|
312
|
+
exporter("__makeTemplateObject", __makeTemplateObject);
|
|
313
|
+
exporter("__importStar", __importStar);
|
|
314
|
+
exporter("__importDefault", __importDefault);
|
|
315
|
+
exporter("__classPrivateFieldGet", __classPrivateFieldGet);
|
|
316
|
+
exporter("__classPrivateFieldSet", __classPrivateFieldSet);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
var HTML = "<div class=\"jb-textarea-web-component\">\r\n <label class=\"--hide\"><span class=\"label-value\"></span><span>:</span></label>\r\n <div class=\"textarea-box\">\r\n <textarea class=\"textarea-input\"></textarea>\r\n </div>\r\n <div class=\"message-box\"></div>\r\n</div>";
|
|
321
|
+
|
|
322
|
+
var css_248z = ".jb-textarea-web-component {\n width: 100%;\n margin: var(--jb-textarea-margin, 12px 0); }\n .jb-textarea-web-component label {\n width: 100%;\n margin: 4px 0px;\n display: block;\n font-size: var(--jb-textarea-label-font-size, 0.8em);\n color: var(--jb-textarea-label-color, #1f1735); }\n .jb-textarea-web-component label.--hide {\n display: none; }\n .jb-textarea-web-component .textarea-box {\n width: 100%;\n box-sizing: border-box;\n border: solid var(--jb-textarea-border-width, 1px) var(--jb-textarea-border-color, #f7f6f6);\n background-color: var(--jb-textarea-bgcolor, #f7f6f6);\n border-bottom: solid var(--jb-textarea-border-botton-width, 3px) var(--jb-textarea-border-color, #f7f6f6);\n border-radius: var(--jb-textarea-border-radius, 16px);\n display: block;\n transition: ease 0.3s all;\n overflow: hidden;\n display: flex;\n justify-content: space-between; }\n .jb-textarea-web-component .textarea-box:focus-within {\n border-color: var(--jb-textarea-border-color-focus, #1e2832); }\n .jb-textarea-web-component .textarea-box textarea {\n border: none;\n width: 100%;\n box-sizing: border-box;\n min-height: var(--jb-textarea-min-height, 80px);\n height: var(--jb-textarea-min-height, 80px);\n max-height: var(--jb-textarea-max-height, none);\n background-color: transparent;\n padding: 6px 12px 4px 12px;\n display: block;\n font-family: inherit;\n font-size: var(--jb-textarea-value-font-size, 1.1em);\n color: var(--jb-textarea-value-color, #1f1735);\n margin: 0;\n border-radius: 0;\n resize: vertical;\n color: var(--jb-textarea-value-color, initial); }\n .jb-textarea-web-component .textarea-box textarea:focus {\n outline: none; }\n .jb-textarea-web-component .textarea-box textarea::placeholder {\n color: var(--jb-textarea-placeholder-color, initial);\n font-size: var(--jb-textarea-placeholder-font-size, initial); }\n .jb-textarea-web-component .message-box {\n font-size: var(--jb-textarea-message-font-size, 0.7em);\n padding: 2px 8px;\n color: #929292; }\n .jb-textarea-web-component .message-box:empty {\n padding: 0; }\n .jb-textarea-web-component .message-box.error {\n color: var(--jb-textarea-message-error-color, red); }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkpCVGV4dGFyZWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQVc7RUFDWCx5Q0FBeUMsRUFBRTtFQUMzQztJQUNFLFdBQVc7SUFDWCxlQUFlO0lBQ2YsY0FBYztJQUNkLG9EQUFvRDtJQUNwRCw4Q0FBOEMsRUFBRTtJQUNoRDtNQUNFLGFBQWEsRUFBRTtFQUNuQjtJQUNFLFdBQVc7SUFDWCxzQkFBc0I7SUFDdEIsMkZBQTJGO0lBQzNGLHFEQUFxRDtJQUNyRCx5R0FBeUc7SUFDekcscURBQXFEO0lBQ3JELGNBQWM7SUFDZCx5QkFBeUI7SUFDekIsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYiw4QkFBOEIsRUFBRTtJQUNoQztNQUNFLDREQUE0RCxFQUFFO0lBQ2hFO01BQ0UsWUFBWTtNQUNaLFdBQVc7TUFDWCxzQkFBc0I7TUFDdEIsK0NBQStDO01BQy9DLDJDQUEyQztNQUMzQywrQ0FBK0M7TUFDL0MsNkJBQTZCO01BQzdCLDBCQUEwQjtNQUMxQixjQUFjO01BQ2Qsb0JBQW9CO01BQ3BCLG9EQUFvRDtNQUNwRCw4Q0FBOEM7TUFDOUMsU0FBUztNQUNULGdCQUFnQjtNQUNoQixnQkFBZ0I7TUFDaEIsOENBQThDLEVBQUU7TUFDaEQ7UUFDRSxhQUFhLEVBQUU7TUFDakI7UUFDRSxvREFBb0Q7UUFDcEQsNERBQTRELEVBQUU7RUFDcEU7SUFDRSxzREFBc0Q7SUFDdEQsZ0JBQWdCO0lBQ2hCLGNBQWMsRUFBRTtJQUNoQjtNQUNFLFVBQVUsRUFBRTtJQUNkO01BQ0Usa0RBQWtELEVBQUUiLCJmaWxlIjoiSkJUZXh0YXJlYS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmpiLXRleHRhcmVhLXdlYi1jb21wb25lbnQge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiB2YXIoLS1qYi10ZXh0YXJlYS1tYXJnaW4sIDEycHggMCk7IH1cbiAgLmpiLXRleHRhcmVhLXdlYi1jb21wb25lbnQgbGFiZWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogNHB4IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IHZhcigtLWpiLXRleHRhcmVhLWxhYmVsLWZvbnQtc2l6ZSwgMC44ZW0pO1xuICAgIGNvbG9yOiB2YXIoLS1qYi10ZXh0YXJlYS1sYWJlbC1jb2xvciwgIzFmMTczNSk7IH1cbiAgICAuamItdGV4dGFyZWEtd2ViLWNvbXBvbmVudCBsYWJlbC4tLWhpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuamItdGV4dGFyZWEtd2ViLWNvbXBvbmVudCAudGV4dGFyZWEtYm94IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogc29saWQgdmFyKC0tamItdGV4dGFyZWEtYm9yZGVyLXdpZHRoLCAxcHgpIHZhcigtLWpiLXRleHRhcmVhLWJvcmRlci1jb2xvciwgI2Y3ZjZmNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tamItdGV4dGFyZWEtYmdjb2xvciwgI2Y3ZjZmNik7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tamItdGV4dGFyZWEtYm9yZGVyLWJvdHRvbi13aWR0aCwgM3B4KSB2YXIoLS1qYi10ZXh0YXJlYS1ib3JkZXItY29sb3IsICNmN2Y2ZjYpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWpiLXRleHRhcmVhLWJvcmRlci1yYWRpdXMsIDE2cHgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zaXRpb246IGVhc2UgMC4zcyBhbGw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5qYi10ZXh0YXJlYS13ZWItY29tcG9uZW50IC50ZXh0YXJlYS1ib3g6Zm9jdXMtd2l0aGluIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tamItdGV4dGFyZWEtYm9yZGVyLWNvbG9yLWZvY3VzLCAjMWUyODMyKTsgfVxuICAgIC5qYi10ZXh0YXJlYS13ZWItY29tcG9uZW50IC50ZXh0YXJlYS1ib3ggdGV4dGFyZWEge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWluLWhlaWdodDogdmFyKC0tamItdGV4dGFyZWEtbWluLWhlaWdodCwgODBweCk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWpiLXRleHRhcmVhLW1pbi1oZWlnaHQsIDgwcHgpO1xuICAgICAgbWF4LWhlaWdodDogdmFyKC0tamItdGV4dGFyZWEtbWF4LWhlaWdodCwgbm9uZSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDZweCAxMnB4IDRweCAxMnB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tamItdGV4dGFyZWEtdmFsdWUtZm9udC1zaXplLCAxLjFlbSk7XG4gICAgICBjb2xvcjogdmFyKC0tamItdGV4dGFyZWEtdmFsdWUtY29sb3IsICMxZjE3MzUpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgICBjb2xvcjogdmFyKC0tamItdGV4dGFyZWEtdmFsdWUtY29sb3IsIGluaXRpYWwpOyB9XG4gICAgICAuamItdGV4dGFyZWEtd2ViLWNvbXBvbmVudCAudGV4dGFyZWEtYm94IHRleHRhcmVhOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTsgfVxuICAgICAgLmpiLXRleHRhcmVhLXdlYi1jb21wb25lbnQgLnRleHRhcmVhLWJveCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tamItdGV4dGFyZWEtcGxhY2Vob2xkZXItY29sb3IsIGluaXRpYWwpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWpiLXRleHRhcmVhLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZSwgaW5pdGlhbCk7IH1cbiAgLmpiLXRleHRhcmVhLXdlYi1jb21wb25lbnQgLm1lc3NhZ2UtYm94IHtcbiAgICBmb250LXNpemU6IHZhcigtLWpiLXRleHRhcmVhLW1lc3NhZ2UtZm9udC1zaXplLCAwLjdlbSk7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBjb2xvcjogIzkyOTI5MjsgfVxuICAgIC5qYi10ZXh0YXJlYS13ZWItY29tcG9uZW50IC5tZXNzYWdlLWJveDplbXB0eSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmpiLXRleHRhcmVhLXdlYi1jb21wb25lbnQgLm1lc3NhZ2UtYm94LmVycm9yIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1qYi10ZXh0YXJlYS1tZXNzYWdlLWVycm9yLWNvbG9yLCByZWQpOyB9XG4iXX0= */";
|
|
323
|
+
|
|
324
|
+
var _JBTextareaWebComponent_value, _JBTextareaWebComponent_textareaElement, _JBTextareaWebComponent_elements;
|
|
325
|
+
class JBTextareaWebComponent extends HTMLElement {
|
|
16
326
|
constructor() {
|
|
17
327
|
super();
|
|
328
|
+
_JBTextareaWebComponent_value.set(this, '');
|
|
329
|
+
_JBTextareaWebComponent_textareaElement.set(this, void 0);
|
|
330
|
+
_JBTextareaWebComponent_elements.set(this, void 0);
|
|
331
|
+
this.validationList = [];
|
|
332
|
+
this.autoHeight = false;
|
|
333
|
+
this.validation = {
|
|
334
|
+
isValid: null,
|
|
335
|
+
message: null
|
|
336
|
+
};
|
|
18
337
|
this.initWebComponent();
|
|
19
338
|
this.initProp();
|
|
20
339
|
}
|
|
340
|
+
get value() {
|
|
341
|
+
return tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_value, "f");
|
|
342
|
+
}
|
|
343
|
+
set value(value) {
|
|
344
|
+
tslib.__classPrivateFieldSet(this, _JBTextareaWebComponent_value, value, "f");
|
|
345
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").value = value;
|
|
346
|
+
if (this.autoHeight) {
|
|
347
|
+
this.changeHeightToContentSize();
|
|
348
|
+
}
|
|
349
|
+
}
|
|
21
350
|
initWebComponent() {
|
|
22
|
-
|
|
351
|
+
const shadowRoot = this.attachShadow({
|
|
23
352
|
mode: 'open'
|
|
24
353
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this
|
|
354
|
+
const html = `<style>${css_248z}</style>` + '\n' + HTML;
|
|
355
|
+
const element = document.createElement('template');
|
|
356
|
+
element.innerHTML = html;
|
|
357
|
+
shadowRoot.appendChild(element.content.cloneNode(true));
|
|
358
|
+
tslib.__classPrivateFieldSet(this, _JBTextareaWebComponent_textareaElement, shadowRoot.querySelector('.textarea-box textarea'), "f");
|
|
359
|
+
tslib.__classPrivateFieldSet(this, _JBTextareaWebComponent_elements, {
|
|
360
|
+
textarea: tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f"),
|
|
361
|
+
label: shadowRoot.querySelector('label'),
|
|
362
|
+
labelValue: shadowRoot.querySelector('label .label-value'),
|
|
363
|
+
messageBox: shadowRoot.querySelector('.message-box')
|
|
364
|
+
}, "f");
|
|
30
365
|
this.registerEventListener();
|
|
31
366
|
}
|
|
32
367
|
registerEventListener() {
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
368
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").addEventListener('change', this.onInputChange.bind(this));
|
|
369
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").addEventListener('keypress', this.onInputKeyPress.bind(this));
|
|
370
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").addEventListener('keyup', this.onInputKeyup.bind(this));
|
|
371
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").addEventListener('keydown', this.onInputKeyDown.bind(this));
|
|
372
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").addEventListener('input', this.onInputInput.bind(this));
|
|
38
373
|
}
|
|
39
374
|
initProp() {
|
|
40
|
-
this.validationList = [];
|
|
41
375
|
this.value = this.getAttribute('value') || '';
|
|
42
|
-
this.autoHeight = false;
|
|
43
|
-
this.validation = {
|
|
44
|
-
isValid: null,
|
|
45
|
-
message: null
|
|
46
|
-
};
|
|
47
376
|
}
|
|
48
377
|
static get observedAttributes() {
|
|
49
378
|
return ['label', 'message', 'value', 'placeholder'];
|
|
@@ -55,44 +384,44 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
55
384
|
onAttributeChange(name, value) {
|
|
56
385
|
switch (name) {
|
|
57
386
|
case 'label':
|
|
58
|
-
|
|
59
|
-
if(value == null || value == undefined || value == ""){
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
|
|
387
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").labelValue.innerHTML = value;
|
|
388
|
+
if (value == null || value == undefined || value == "") {
|
|
389
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").label.classList.add('--hide');
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").label.classList.remove('--hide');
|
|
63
393
|
}
|
|
64
394
|
break;
|
|
65
395
|
case 'message':
|
|
66
|
-
|
|
396
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").messageBox.innerHTML = value;
|
|
67
397
|
break;
|
|
68
398
|
case 'placeholder':
|
|
69
|
-
this.
|
|
399
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").setAttribute('placeholder', value);
|
|
70
400
|
break;
|
|
71
401
|
case 'value':
|
|
72
402
|
this.value = value;
|
|
73
403
|
break;
|
|
74
404
|
}
|
|
75
|
-
|
|
76
405
|
}
|
|
77
406
|
changeHeightToContentSize() {
|
|
78
|
-
this.
|
|
79
|
-
this.
|
|
407
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").style.height = "4px";
|
|
408
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").style.height = (tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").scrollHeight) + "px";
|
|
80
409
|
}
|
|
81
|
-
onInputKeyDown(e){
|
|
410
|
+
onInputKeyDown(e) {
|
|
82
411
|
const keyDownnInitObj = {
|
|
83
|
-
key:e.key,
|
|
84
|
-
keyCode:e.keyCode,
|
|
85
|
-
code:e.code,
|
|
86
|
-
ctrlKey:e.ctrlKey,
|
|
87
|
-
shiftKey:e.shiftKey,
|
|
88
|
-
altKey:e.altKey,
|
|
89
|
-
charCode:e.charCode,
|
|
90
|
-
which:e.which,
|
|
412
|
+
key: e.key,
|
|
413
|
+
keyCode: e.keyCode,
|
|
414
|
+
code: e.code,
|
|
415
|
+
ctrlKey: e.ctrlKey,
|
|
416
|
+
shiftKey: e.shiftKey,
|
|
417
|
+
altKey: e.altKey,
|
|
418
|
+
charCode: e.charCode,
|
|
419
|
+
which: e.which,
|
|
91
420
|
cancelable: true,
|
|
92
421
|
};
|
|
93
|
-
const event = new KeyboardEvent("keydown",keyDownnInitObj);
|
|
422
|
+
const event = new KeyboardEvent("keydown", keyDownnInitObj);
|
|
94
423
|
const isEventNotPrevented = this.dispatchEvent(event);
|
|
95
|
-
if(!isEventNotPrevented){
|
|
424
|
+
if (!isEventNotPrevented) {
|
|
96
425
|
//if event prevented by e.preventDefault();
|
|
97
426
|
e.preventDefault();
|
|
98
427
|
}
|
|
@@ -102,39 +431,39 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
102
431
|
const event = new CustomEvent('keypress');
|
|
103
432
|
this.dispatchEvent(event);
|
|
104
433
|
}
|
|
105
|
-
onInputInput(){
|
|
106
|
-
if(this.autoHeight){
|
|
434
|
+
onInputInput() {
|
|
435
|
+
if (this.autoHeight) {
|
|
107
436
|
this.changeHeightToContentSize();
|
|
108
437
|
}
|
|
109
438
|
}
|
|
110
439
|
onInputKeyup(e) {
|
|
111
440
|
const inputText = e.target.value;
|
|
112
441
|
//here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom
|
|
113
|
-
this
|
|
442
|
+
tslib.__classPrivateFieldSet(this, _JBTextareaWebComponent_value, inputText, "f");
|
|
114
443
|
this.triggerInputValidation(false);
|
|
115
444
|
const keyUpInitObj = {
|
|
116
|
-
key:e.key,
|
|
117
|
-
keyCode:e.keyCode,
|
|
118
|
-
code:e.code,
|
|
119
|
-
ctrlKey:e.ctrlKey,
|
|
120
|
-
shiftKey:e.shiftKey,
|
|
121
|
-
altKey:e.altKey,
|
|
122
|
-
charCode:e.charCode,
|
|
123
|
-
which:e.which,
|
|
445
|
+
key: e.key,
|
|
446
|
+
keyCode: e.keyCode,
|
|
447
|
+
code: e.code,
|
|
448
|
+
ctrlKey: e.ctrlKey,
|
|
449
|
+
shiftKey: e.shiftKey,
|
|
450
|
+
altKey: e.altKey,
|
|
451
|
+
charCode: e.charCode,
|
|
452
|
+
which: e.which,
|
|
124
453
|
};
|
|
125
|
-
const event = new KeyboardEvent('keyup',keyUpInitObj);
|
|
454
|
+
const event = new KeyboardEvent('keyup', keyUpInitObj);
|
|
126
455
|
this.dispatchEvent(event);
|
|
127
456
|
}
|
|
128
457
|
onInputChange(e) {
|
|
129
458
|
const inputText = e.target.value;
|
|
130
459
|
this.triggerInputValidation(true);
|
|
131
460
|
//here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom
|
|
132
|
-
this
|
|
461
|
+
tslib.__classPrivateFieldSet(this, _JBTextareaWebComponent_value, inputText, "f");
|
|
133
462
|
const validationObject = this.checkInputValidation(inputText);
|
|
134
|
-
const event = new CustomEvent('change',{
|
|
463
|
+
const event = new CustomEvent('change', {
|
|
135
464
|
detail: {
|
|
136
465
|
isValid: validationObject.isAllValid,
|
|
137
|
-
validationObject:validationObject,
|
|
466
|
+
validationObject: validationObject,
|
|
138
467
|
},
|
|
139
468
|
});
|
|
140
469
|
this.dispatchEvent(event);
|
|
@@ -142,17 +471,20 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
142
471
|
triggerInputValidation(showError = true) {
|
|
143
472
|
// this method is for use out of component for example if user click on submit button and developer want to check if all fields are valid
|
|
144
473
|
//takeAction determine if we want to show user error in web component difualtManner or developer will handle it by himself
|
|
145
|
-
const inputText = this.
|
|
474
|
+
const inputText = tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_textareaElement, "f").value;
|
|
146
475
|
const validationResult = this.checkInputValidation(inputText);
|
|
147
476
|
if (showError == true && !validationResult.isAllValid) {
|
|
148
477
|
const firstFault = validationResult.validationList.find(x => !x.isValid);
|
|
149
|
-
|
|
150
|
-
|
|
478
|
+
if (firstFault) {
|
|
479
|
+
this.showValidationError(firstFault.message);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
else if (validationResult.isAllValid) {
|
|
151
483
|
this.clearValidationError();
|
|
152
484
|
}
|
|
153
485
|
return validationResult;
|
|
154
486
|
}
|
|
155
|
-
checkInputValidation(inputText){
|
|
487
|
+
checkInputValidation(inputText) {
|
|
156
488
|
const validationResult = {
|
|
157
489
|
validationList: [],
|
|
158
490
|
isAllValid: true
|
|
@@ -167,7 +499,7 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
167
499
|
return validationResult;
|
|
168
500
|
}
|
|
169
501
|
checkValidation(text, validation) {
|
|
170
|
-
|
|
502
|
+
const testRes = validation.validator.test(text);
|
|
171
503
|
validation.validator.lastIndex = 0;
|
|
172
504
|
if (!testRes) {
|
|
173
505
|
return {
|
|
@@ -187,8 +519,8 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
187
519
|
isValid: false,
|
|
188
520
|
message: error
|
|
189
521
|
};
|
|
190
|
-
|
|
191
|
-
|
|
522
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").messageBox.innerHTML = error;
|
|
523
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").messageBox.classList.add('error');
|
|
192
524
|
}
|
|
193
525
|
clearValidationError() {
|
|
194
526
|
this.validation = {
|
|
@@ -196,14 +528,16 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
196
528
|
message: null
|
|
197
529
|
};
|
|
198
530
|
const text = this.getAttribute('message') || '';
|
|
199
|
-
|
|
200
|
-
|
|
531
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").messageBox.innerHTML = text;
|
|
532
|
+
tslib.__classPrivateFieldGet(this, _JBTextareaWebComponent_elements, "f").messageBox.classList.remove('error');
|
|
201
533
|
}
|
|
202
534
|
}
|
|
203
|
-
|
|
535
|
+
_JBTextareaWebComponent_value = new WeakMap(), _JBTextareaWebComponent_textareaElement = new WeakMap(), _JBTextareaWebComponent_elements = new WeakMap();
|
|
204
536
|
const myElementNotExists = !customElements.get('jb-textarea');
|
|
205
|
-
if(myElementNotExists){
|
|
537
|
+
if (myElementNotExists) {
|
|
206
538
|
//prevent duplicate registering
|
|
207
539
|
window.customElements.define('jb-textarea', JBTextareaWebComponent);
|
|
208
540
|
}
|
|
541
|
+
|
|
542
|
+
export { JBTextareaWebComponent };
|
|
209
543
|
//# sourceMappingURL=JBTextarea.js.map
|
package/dist/JBTextarea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JBTextarea.js","sources":["../lib/JBTextarea.js"],"sourcesContent":["import HTML from './JBTextarea.html';\r\nimport CSS from './JBTextarea.scss';\r\nclass JBTextareaWebComponent extends HTMLElement {\r\n get value() {\r\n return this._value;\r\n }\r\n set value(value) {\r\n this._value = value;\r\n this._textareaElement.value = value;\r\n if(this.autoHeight){\r\n this.changeHeightToContentSize();\r\n }\r\n }\r\n constructor() {\r\n super();\r\n this.initWebComponent();\r\n this.initProp();\r\n }\r\n initWebComponent() {\r\n this._shadowRoot = this.attachShadow({\r\n mode: 'open'\r\n });\r\n this._html = `<style>${CSS}</style>` + '\\n' + HTML;\r\n this._element = document.createElement('template');\r\n this._element.innerHTML = this._html;\r\n this._shadowRoot.appendChild(this._element.content.cloneNode(true));\r\n this._textareaElement = this._shadowRoot.querySelector('.textarea-box textarea');\r\n this.registerEventListener();\r\n }\r\n registerEventListener() {\r\n this._textareaElement.addEventListener('change', this.onInputChange.bind(this));\r\n this._textareaElement.addEventListener('keypress', this.onInputKeyPress.bind(this));\r\n this._textareaElement.addEventListener('keyup', this.onInputKeyup.bind(this));\r\n this._textareaElement.addEventListener('keydown', this.onInputKeyDown.bind(this));\r\n this._textareaElement.addEventListener('input', this.onInputInput.bind(this));\r\n }\r\n initProp() {\r\n this.validationList = [];\r\n this.value = this.getAttribute('value') || '';\r\n this.autoHeight = false;\r\n this.validation = {\r\n isValid: null,\r\n message: null\r\n };\r\n }\r\n static get observedAttributes() {\r\n return ['label', 'message', 'value', 'placeholder'];\r\n }\r\n attributeChangedCallback(name, oldValue, newValue) {\r\n // do something when an attribute has changed\r\n this.onAttributeChange(name, newValue);\r\n }\r\n onAttributeChange(name, value) {\r\n switch (name) {\r\n case 'label':\r\n this._shadowRoot.querySelector('label .label-value').innerHTML = value;\r\n if(value == null || value == undefined || value == \"\"){\r\n this._shadowRoot.querySelector('label').classList.add('--hide');\r\n }else{\r\n this._shadowRoot.querySelector('label').classList.remove('--hide');\r\n }\r\n break;\r\n case 'message':\r\n this._shadowRoot.querySelector('.message-box').innerHTML = value;\r\n break;\r\n case 'placeholder':\r\n this._textareaElement.setAttribute('placeholder', value);\r\n break;\r\n case 'value':\r\n this.value = value;\r\n break;\r\n }\r\n\r\n }\r\n changeHeightToContentSize() {\r\n this._textareaElement.style.height = \"4px\";\r\n this._textareaElement.style.height = (this._textareaElement.scrollHeight)+\"px\";\r\n }\r\n onInputKeyDown(e){\r\n const keyDownnInitObj = {\r\n key:e.key,\r\n keyCode:e.keyCode,\r\n code:e.code,\r\n ctrlKey:e.ctrlKey,\r\n shiftKey:e.shiftKey,\r\n altKey:e.altKey,\r\n charCode:e.charCode,\r\n which:e.which,\r\n cancelable: true,\r\n };\r\n const event = new KeyboardEvent(\"keydown\",keyDownnInitObj);\r\n const isEventNotPrevented = this.dispatchEvent(event);\r\n if(!isEventNotPrevented){\r\n //if event prevented by e.preventDefault();\r\n e.preventDefault();\r\n }\r\n }\r\n onInputKeyPress() {\r\n //TODO: raise keypress event\r\n const event = new CustomEvent('keypress');\r\n this.dispatchEvent(event);\r\n }\r\n onInputInput(){\r\n if(this.autoHeight){\r\n this.changeHeightToContentSize();\r\n }\r\n }\r\n onInputKeyup(e) {\r\n const inputText = e.target.value;\r\n //here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom\r\n this._value = inputText;\r\n this.triggerInputValidation(false);\r\n const keyUpInitObj = {\r\n key:e.key,\r\n keyCode:e.keyCode,\r\n code:e.code,\r\n ctrlKey:e.ctrlKey,\r\n shiftKey:e.shiftKey,\r\n altKey:e.altKey,\r\n charCode:e.charCode,\r\n which:e.which,\r\n };\r\n const event = new KeyboardEvent('keyup',keyUpInitObj);\r\n this.dispatchEvent(event);\r\n }\r\n onInputChange(e) {\r\n const inputText = e.target.value;\r\n this.triggerInputValidation(true);\r\n //here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom\r\n this._value = inputText;\r\n const validationObject = this.checkInputValidation(inputText);\r\n const event = new CustomEvent('change',{\r\n detail: {\r\n isValid: validationObject.isAllValid,\r\n validationObject:validationObject,\r\n },\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n triggerInputValidation(showError = true) {\r\n // this method is for use out of component for example if user click on submit button and developer want to check if all fields are valid\r\n //takeAction determine if we want to show user error in web component difualtManner or developer will handle it by himself\r\n const inputText = this._textareaElement.value;\r\n const validationResult = this.checkInputValidation(inputText);\r\n if (showError == true && !validationResult.isAllValid) {\r\n const firstFault = validationResult.validationList.find(x => !x.isValid);\r\n this.showValidationError(firstFault.message);\r\n } else if (validationResult.isAllValid) {\r\n this.clearValidationError();\r\n }\r\n return validationResult;\r\n }\r\n checkInputValidation(inputText){\r\n const validationResult = {\r\n validationList: [],\r\n isAllValid: true\r\n };\r\n this.validationList.forEach((validation) => {\r\n const res = this.checkValidation(inputText, validation);\r\n validationResult.validationList.push(res);\r\n if (!res.isValid) {\r\n validationResult.isAllValid = false;\r\n }\r\n });\r\n return validationResult;\r\n }\r\n checkValidation(text, validation) {\r\n var testRes = validation.validator.test(text);\r\n validation.validator.lastIndex = 0;\r\n if (!testRes) {\r\n return {\r\n isValid: false,\r\n message: validation.message,\r\n validation: validation\r\n };\r\n }\r\n return {\r\n isValid: true,\r\n message: '',\r\n validation: validation\r\n };\r\n }\r\n showValidationError(error) {\r\n this.validation = {\r\n isValid: false,\r\n message: error\r\n };\r\n this._shadowRoot.querySelector('.message-box').innerHTML = error;\r\n this._shadowRoot.querySelector('.message-box').classList.add('error');\r\n }\r\n clearValidationError() {\r\n this.validation = {\r\n isValid: true,\r\n message: null\r\n };\r\n const text = this.getAttribute('message') || '';\r\n this._shadowRoot.querySelector('.message-box').innerHTML = text;\r\n this._shadowRoot.querySelector('.message-box').classList.remove('error');\r\n }\r\n}\r\n\r\nconst myElementNotExists = !customElements.get('jb-textarea');\r\nif(myElementNotExists){\r\n //prevent duplicate registering\r\n window.customElements.define('jb-textarea', JBTextareaWebComponent);\r\n}"],"names":["CSS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JBTextarea.js","sources":["../../../node_modules/tslib/tslib.js","../lib/JBTextarea.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n","import HTML from './JBTextarea.html';\r\nimport CSS from './JBTextarea.scss';\r\nimport { JBTextareaElements, JBTextareaValidationItem, ValidationResult, ValidationResultItem, ValidationResultSummary } from './Types';\r\nexport class JBTextareaWebComponent extends HTMLElement {\r\n #value = '';\r\n get value() {\r\n return this.#value;\r\n }\r\n set value(value) {\r\n this.#value = value;\r\n this.#textareaElement.value = value;\r\n if(this.autoHeight){\r\n this.changeHeightToContentSize();\r\n }\r\n }\r\n constructor() {\r\n super();\r\n this.initWebComponent();\r\n this.initProp();\r\n }\r\n #textareaElement!: HTMLTextAreaElement;\r\n #elements!: JBTextareaElements;\r\n initWebComponent() {\r\n const shadowRoot = this.attachShadow({\r\n mode: 'open'\r\n });\r\n const html = `<style>${CSS}</style>` + '\\n' + HTML;\r\n const element = document.createElement('template');\r\n element.innerHTML = html;\r\n shadowRoot.appendChild(element.content.cloneNode(true));\r\n this.#textareaElement = shadowRoot.querySelector('.textarea-box textarea')!;\r\n this.#elements = {\r\n textarea: this.#textareaElement,\r\n label: shadowRoot.querySelector('label')!,\r\n labelValue:shadowRoot.querySelector('label .label-value')!,\r\n messageBox:shadowRoot.querySelector('.message-box')!\r\n }\r\n this.registerEventListener();\r\n }\r\n registerEventListener() {\r\n this.#textareaElement.addEventListener('change', this.onInputChange.bind(this));\r\n this.#textareaElement.addEventListener('keypress', this.onInputKeyPress.bind(this));\r\n this.#textareaElement.addEventListener('keyup', this.onInputKeyup.bind(this));\r\n this.#textareaElement.addEventListener('keydown', this.onInputKeyDown.bind(this));\r\n this.#textareaElement.addEventListener('input', this.onInputInput.bind(this));\r\n }\r\n validationList:JBTextareaValidationItem[] = [];\r\n autoHeight = false;\r\n validation:ValidationResultSummary = {\r\n isValid: null,\r\n message: null\r\n }\r\n initProp() {\r\n this.value = this.getAttribute('value') || '';\r\n\r\n }\r\n static get observedAttributes() {\r\n return ['label', 'message', 'value', 'placeholder'];\r\n }\r\n attributeChangedCallback(name, oldValue, newValue) {\r\n // do something when an attribute has changed\r\n this.onAttributeChange(name, newValue);\r\n }\r\n onAttributeChange(name, value) {\r\n switch (name) {\r\n case 'label':\r\n this.#elements.labelValue.innerHTML = value;\r\n if(value == null || value == undefined || value == \"\"){\r\n this.#elements.label.classList.add('--hide');\r\n }else{\r\n this.#elements.label.classList.remove('--hide');\r\n }\r\n break;\r\n case 'message':\r\n this.#elements.messageBox.innerHTML = value;\r\n break;\r\n case 'placeholder':\r\n this.#textareaElement.setAttribute('placeholder', value);\r\n break;\r\n case 'value':\r\n this.value = value;\r\n break;\r\n }\r\n\r\n }\r\n changeHeightToContentSize() {\r\n this.#textareaElement.style.height = \"4px\";\r\n this.#textareaElement.style.height = (this.#textareaElement.scrollHeight)+\"px\";\r\n }\r\n onInputKeyDown(e){\r\n const keyDownnInitObj = {\r\n key:e.key,\r\n keyCode:e.keyCode,\r\n code:e.code,\r\n ctrlKey:e.ctrlKey,\r\n shiftKey:e.shiftKey,\r\n altKey:e.altKey,\r\n charCode:e.charCode,\r\n which:e.which,\r\n cancelable: true,\r\n };\r\n const event = new KeyboardEvent(\"keydown\",keyDownnInitObj);\r\n const isEventNotPrevented = this.dispatchEvent(event);\r\n if(!isEventNotPrevented){\r\n //if event prevented by e.preventDefault();\r\n e.preventDefault();\r\n }\r\n }\r\n onInputKeyPress() {\r\n //TODO: raise keypress event\r\n const event = new CustomEvent('keypress');\r\n this.dispatchEvent(event);\r\n }\r\n onInputInput(){\r\n if(this.autoHeight){\r\n this.changeHeightToContentSize();\r\n }\r\n }\r\n onInputKeyup(e) {\r\n const inputText = e.target.value;\r\n //here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom\r\n this.#value = inputText;\r\n this.triggerInputValidation(false);\r\n const keyUpInitObj = {\r\n key:e.key,\r\n keyCode:e.keyCode,\r\n code:e.code,\r\n ctrlKey:e.ctrlKey,\r\n shiftKey:e.shiftKey,\r\n altKey:e.altKey,\r\n charCode:e.charCode,\r\n which:e.which,\r\n };\r\n const event = new KeyboardEvent('keyup',keyUpInitObj);\r\n this.dispatchEvent(event);\r\n }\r\n onInputChange(e) {\r\n const inputText = e.target.value;\r\n this.triggerInputValidation(true);\r\n //here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom\r\n this.#value = inputText;\r\n const validationObject = this.checkInputValidation(inputText);\r\n const event = new CustomEvent('change',{\r\n detail: {\r\n isValid: validationObject.isAllValid,\r\n validationObject:validationObject,\r\n },\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n triggerInputValidation(showError = true) {\r\n // this method is for use out of component for example if user click on submit button and developer want to check if all fields are valid\r\n //takeAction determine if we want to show user error in web component difualtManner or developer will handle it by himself\r\n const inputText = this.#textareaElement.value;\r\n const validationResult = this.checkInputValidation(inputText);\r\n if (showError == true && !validationResult.isAllValid) {\r\n const firstFault = validationResult.validationList.find(x => !x.isValid);\r\n if(firstFault){\r\n this.showValidationError(firstFault.message);\r\n }\r\n } else if (validationResult.isAllValid) {\r\n this.clearValidationError();\r\n }\r\n return validationResult;\r\n }\r\n checkInputValidation(inputText):ValidationResult{\r\n const validationResult:ValidationResult = {\r\n validationList: [],\r\n isAllValid: true\r\n };\r\n this.validationList.forEach((validation) => {\r\n const res = this.checkValidation(inputText, validation);\r\n validationResult.validationList.push(res);\r\n if (!res.isValid) {\r\n validationResult.isAllValid = false;\r\n }\r\n });\r\n return validationResult;\r\n }\r\n checkValidation(text, validation) {\r\n const testRes = validation.validator.test(text);\r\n validation.validator.lastIndex = 0;\r\n if (!testRes) {\r\n return {\r\n isValid: false,\r\n message: validation.message,\r\n validation: validation\r\n };\r\n }\r\n return {\r\n isValid: true,\r\n message: '',\r\n validation: validation\r\n };\r\n }\r\n showValidationError(error) {\r\n this.validation = {\r\n isValid: false,\r\n message: error\r\n };\r\n this.#elements.messageBox.innerHTML = error;\r\n this.#elements.messageBox.classList.add('error');\r\n }\r\n clearValidationError() {\r\n this.validation = {\r\n isValid: true,\r\n message: null\r\n };\r\n const text = this.getAttribute('message') || '';\r\n this.#elements.messageBox.innerHTML = text;\r\n this.#elements.messageBox.classList.remove('error');\r\n }\r\n}\r\n\r\nconst myElementNotExists = !customElements.get('jb-textarea');\r\nif(myElementNotExists){\r\n //prevent duplicate registering\r\n window.customElements.define('jb-textarea', JBTextareaWebComponent);\r\n}"],"names":["global","__classPrivateFieldGet","__classPrivateFieldSet","CSS"],"mappings":"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"}
|
package/dist/Types.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare type JBTextareaElements = {
|
|
2
|
+
textarea: HTMLTextAreaElement;
|
|
3
|
+
label: HTMLLabelElement;
|
|
4
|
+
labelValue: HTMLSpanElement;
|
|
5
|
+
messageBox: HTMLDivElement;
|
|
6
|
+
};
|
|
7
|
+
export declare type ValidationResultSummary = {
|
|
8
|
+
isValid: boolean | null;
|
|
9
|
+
message: string | null;
|
|
10
|
+
};
|
|
11
|
+
export declare type ValidationResultItem = {
|
|
12
|
+
isValid: boolean | null;
|
|
13
|
+
message: string | null;
|
|
14
|
+
validation: JBTextareaValidationItem;
|
|
15
|
+
};
|
|
16
|
+
export declare type ValidationResult = {
|
|
17
|
+
validationList: ValidationResultItem[];
|
|
18
|
+
isAllValid: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare type JBTextareaValidationItem = {
|
|
21
|
+
validator: RegExp | ((value: string) => boolean);
|
|
22
|
+
message: string;
|
|
23
|
+
};
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import './dist/JBTextarea';
|
|
1
|
+
import './dist/JBTextarea.js';
|
package/lib/JBTextarea.scss
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
margin: 4px 0px;
|
|
7
7
|
display: block;
|
|
8
8
|
font-size: var(--jb-textarea-label-font-size , 0.8em);
|
|
9
|
-
color: #1f1735;
|
|
9
|
+
color: var(--jb-textarea-label-color, #1f1735);
|
|
10
10
|
&.--hide{
|
|
11
11
|
display: none;
|
|
12
12
|
}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
display: block;
|
|
42
42
|
font-family: inherit;
|
|
43
43
|
font-size: var(--jb-textarea-value-font-size , 1.1em);
|
|
44
|
-
color: #1f1735;
|
|
44
|
+
color: var(--jb-textarea-value-color, #1f1735);
|
|
45
45
|
margin: 0;
|
|
46
46
|
border-radius: 0;
|
|
47
47
|
resize: vertical;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import HTML from './JBTextarea.html';
|
|
2
2
|
import CSS from './JBTextarea.scss';
|
|
3
|
-
|
|
3
|
+
import { JBTextareaElements, JBTextareaValidationItem, ValidationResult, ValidationResultItem, ValidationResultSummary } from './Types';
|
|
4
|
+
export class JBTextareaWebComponent extends HTMLElement {
|
|
5
|
+
#value = '';
|
|
4
6
|
get value() {
|
|
5
|
-
return this
|
|
7
|
+
return this.#value;
|
|
6
8
|
}
|
|
7
9
|
set value(value) {
|
|
8
|
-
this
|
|
9
|
-
this.
|
|
10
|
+
this.#value = value;
|
|
11
|
+
this.#textareaElement.value = value;
|
|
10
12
|
if(this.autoHeight){
|
|
11
13
|
this.changeHeightToContentSize();
|
|
12
14
|
}
|
|
@@ -16,32 +18,41 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
16
18
|
this.initWebComponent();
|
|
17
19
|
this.initProp();
|
|
18
20
|
}
|
|
21
|
+
#textareaElement!: HTMLTextAreaElement;
|
|
22
|
+
#elements!: JBTextareaElements;
|
|
19
23
|
initWebComponent() {
|
|
20
|
-
|
|
24
|
+
const shadowRoot = this.attachShadow({
|
|
21
25
|
mode: 'open'
|
|
22
26
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this
|
|
27
|
+
const html = `<style>${CSS}</style>` + '\n' + HTML;
|
|
28
|
+
const element = document.createElement('template');
|
|
29
|
+
element.innerHTML = html;
|
|
30
|
+
shadowRoot.appendChild(element.content.cloneNode(true));
|
|
31
|
+
this.#textareaElement = shadowRoot.querySelector('.textarea-box textarea')!;
|
|
32
|
+
this.#elements = {
|
|
33
|
+
textarea: this.#textareaElement,
|
|
34
|
+
label: shadowRoot.querySelector('label')!,
|
|
35
|
+
labelValue:shadowRoot.querySelector('label .label-value')!,
|
|
36
|
+
messageBox:shadowRoot.querySelector('.message-box')!
|
|
37
|
+
}
|
|
28
38
|
this.registerEventListener();
|
|
29
39
|
}
|
|
30
40
|
registerEventListener() {
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
41
|
+
this.#textareaElement.addEventListener('change', this.onInputChange.bind(this));
|
|
42
|
+
this.#textareaElement.addEventListener('keypress', this.onInputKeyPress.bind(this));
|
|
43
|
+
this.#textareaElement.addEventListener('keyup', this.onInputKeyup.bind(this));
|
|
44
|
+
this.#textareaElement.addEventListener('keydown', this.onInputKeyDown.bind(this));
|
|
45
|
+
this.#textareaElement.addEventListener('input', this.onInputInput.bind(this));
|
|
46
|
+
}
|
|
47
|
+
validationList:JBTextareaValidationItem[] = [];
|
|
48
|
+
autoHeight = false;
|
|
49
|
+
validation:ValidationResultSummary = {
|
|
50
|
+
isValid: null,
|
|
51
|
+
message: null
|
|
36
52
|
}
|
|
37
53
|
initProp() {
|
|
38
|
-
this.validationList = [];
|
|
39
54
|
this.value = this.getAttribute('value') || '';
|
|
40
|
-
|
|
41
|
-
this.validation = {
|
|
42
|
-
isValid: null,
|
|
43
|
-
message: null
|
|
44
|
-
};
|
|
55
|
+
|
|
45
56
|
}
|
|
46
57
|
static get observedAttributes() {
|
|
47
58
|
return ['label', 'message', 'value', 'placeholder'];
|
|
@@ -53,18 +64,18 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
53
64
|
onAttributeChange(name, value) {
|
|
54
65
|
switch (name) {
|
|
55
66
|
case 'label':
|
|
56
|
-
this.
|
|
67
|
+
this.#elements.labelValue.innerHTML = value;
|
|
57
68
|
if(value == null || value == undefined || value == ""){
|
|
58
|
-
this.
|
|
69
|
+
this.#elements.label.classList.add('--hide');
|
|
59
70
|
}else{
|
|
60
|
-
this.
|
|
71
|
+
this.#elements.label.classList.remove('--hide');
|
|
61
72
|
}
|
|
62
73
|
break;
|
|
63
74
|
case 'message':
|
|
64
|
-
this.
|
|
75
|
+
this.#elements.messageBox.innerHTML = value;
|
|
65
76
|
break;
|
|
66
77
|
case 'placeholder':
|
|
67
|
-
this.
|
|
78
|
+
this.#textareaElement.setAttribute('placeholder', value);
|
|
68
79
|
break;
|
|
69
80
|
case 'value':
|
|
70
81
|
this.value = value;
|
|
@@ -73,8 +84,8 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
73
84
|
|
|
74
85
|
}
|
|
75
86
|
changeHeightToContentSize() {
|
|
76
|
-
this.
|
|
77
|
-
this.
|
|
87
|
+
this.#textareaElement.style.height = "4px";
|
|
88
|
+
this.#textareaElement.style.height = (this.#textareaElement.scrollHeight)+"px";
|
|
78
89
|
}
|
|
79
90
|
onInputKeyDown(e){
|
|
80
91
|
const keyDownnInitObj = {
|
|
@@ -108,7 +119,7 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
108
119
|
onInputKeyup(e) {
|
|
109
120
|
const inputText = e.target.value;
|
|
110
121
|
//here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom
|
|
111
|
-
this
|
|
122
|
+
this.#value = inputText;
|
|
112
123
|
this.triggerInputValidation(false);
|
|
113
124
|
const keyUpInitObj = {
|
|
114
125
|
key:e.key,
|
|
@@ -127,7 +138,7 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
127
138
|
const inputText = e.target.value;
|
|
128
139
|
this.triggerInputValidation(true);
|
|
129
140
|
//here is the rare time we update _value directly becuase we want trigger event that may read value directly from dom
|
|
130
|
-
this
|
|
141
|
+
this.#value = inputText;
|
|
131
142
|
const validationObject = this.checkInputValidation(inputText);
|
|
132
143
|
const event = new CustomEvent('change',{
|
|
133
144
|
detail: {
|
|
@@ -140,18 +151,20 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
140
151
|
triggerInputValidation(showError = true) {
|
|
141
152
|
// this method is for use out of component for example if user click on submit button and developer want to check if all fields are valid
|
|
142
153
|
//takeAction determine if we want to show user error in web component difualtManner or developer will handle it by himself
|
|
143
|
-
const inputText = this.
|
|
154
|
+
const inputText = this.#textareaElement.value;
|
|
144
155
|
const validationResult = this.checkInputValidation(inputText);
|
|
145
156
|
if (showError == true && !validationResult.isAllValid) {
|
|
146
157
|
const firstFault = validationResult.validationList.find(x => !x.isValid);
|
|
147
|
-
|
|
158
|
+
if(firstFault){
|
|
159
|
+
this.showValidationError(firstFault.message);
|
|
160
|
+
}
|
|
148
161
|
} else if (validationResult.isAllValid) {
|
|
149
162
|
this.clearValidationError();
|
|
150
163
|
}
|
|
151
164
|
return validationResult;
|
|
152
165
|
}
|
|
153
|
-
checkInputValidation(inputText){
|
|
154
|
-
const validationResult = {
|
|
166
|
+
checkInputValidation(inputText):ValidationResult{
|
|
167
|
+
const validationResult:ValidationResult = {
|
|
155
168
|
validationList: [],
|
|
156
169
|
isAllValid: true
|
|
157
170
|
};
|
|
@@ -165,7 +178,7 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
165
178
|
return validationResult;
|
|
166
179
|
}
|
|
167
180
|
checkValidation(text, validation) {
|
|
168
|
-
|
|
181
|
+
const testRes = validation.validator.test(text);
|
|
169
182
|
validation.validator.lastIndex = 0;
|
|
170
183
|
if (!testRes) {
|
|
171
184
|
return {
|
|
@@ -185,8 +198,8 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
185
198
|
isValid: false,
|
|
186
199
|
message: error
|
|
187
200
|
};
|
|
188
|
-
this.
|
|
189
|
-
this.
|
|
201
|
+
this.#elements.messageBox.innerHTML = error;
|
|
202
|
+
this.#elements.messageBox.classList.add('error');
|
|
190
203
|
}
|
|
191
204
|
clearValidationError() {
|
|
192
205
|
this.validation = {
|
|
@@ -194,8 +207,8 @@ class JBTextareaWebComponent extends HTMLElement {
|
|
|
194
207
|
message: null
|
|
195
208
|
};
|
|
196
209
|
const text = this.getAttribute('message') || '';
|
|
197
|
-
this.
|
|
198
|
-
this.
|
|
210
|
+
this.#elements.messageBox.innerHTML = text;
|
|
211
|
+
this.#elements.messageBox.classList.remove('error');
|
|
199
212
|
}
|
|
200
213
|
}
|
|
201
214
|
|
package/lib/Types.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type JBTextareaElements = {
|
|
2
|
+
textarea: HTMLTextAreaElement;
|
|
3
|
+
label: HTMLLabelElement;
|
|
4
|
+
labelValue: HTMLSpanElement;
|
|
5
|
+
messageBox: HTMLDivElement;
|
|
6
|
+
}
|
|
7
|
+
export type ValidationResultSummary = {
|
|
8
|
+
isValid:boolean | null;
|
|
9
|
+
message:string | null;
|
|
10
|
+
}
|
|
11
|
+
export type ValidationResultItem = {
|
|
12
|
+
isValid:boolean | null;
|
|
13
|
+
message:string | null;
|
|
14
|
+
validation:JBTextareaValidationItem;
|
|
15
|
+
}
|
|
16
|
+
export type ValidationResult = {
|
|
17
|
+
validationList:ValidationResultItem[];
|
|
18
|
+
isAllValid:boolean;
|
|
19
|
+
}
|
|
20
|
+
export type JBTextareaValidationItem = {
|
|
21
|
+
validator: RegExp | ((value:string)=>boolean);
|
|
22
|
+
message:string;
|
|
23
|
+
}
|
package/lib/global.d.ts
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jb-textarea",
|
|
3
3
|
"description": "textarea web component",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"author": {
|
|
5
6
|
"name": "mohammad javad bathaei",
|
|
6
7
|
"email": "javadbat@gmail.com"
|
|
@@ -11,7 +12,7 @@
|
|
|
11
12
|
"select",
|
|
12
13
|
"web component"
|
|
13
14
|
],
|
|
14
|
-
"version": "
|
|
15
|
+
"version": "2.0.0",
|
|
15
16
|
"bugs": "https://github.com/javadbat/jb-textarea/issues",
|
|
16
17
|
"license": "MIT",
|
|
17
18
|
"files": [
|
|
@@ -21,6 +22,7 @@
|
|
|
21
22
|
"dist/"
|
|
22
23
|
],
|
|
23
24
|
"main": "index.js",
|
|
25
|
+
"types": "./dist/JBTextarea.d.ts",
|
|
24
26
|
"repository": {
|
|
25
27
|
"type": "git",
|
|
26
28
|
"url": "git@github.com:javadbat/jb-textarea.git"
|