UNPKG

ng2-file-type

Version:
554 lines (515 loc) 21.2 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("@angular/core"), require("@angular/forms"), require("@angular/common")); else if(typeof define === 'function' && define.amd) define(["@angular/core", "@angular/forms", "@angular/common"], factory); else if(typeof exports === 'object') exports["ng2-file-type.umd"] = factory(require("@angular/core"), require("@angular/forms"), require("@angular/common")); else root["ng2-file-type.umd"] = factory(root["@angular/core"], root["@angular/forms"], root["@angular/common"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_6__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 5); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (immutable) */ __webpack_exports__["__extends"] = __extends; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); /* harmony export (immutable) */ __webpack_exports__["__rest"] = __rest; /* harmony export (immutable) */ __webpack_exports__["__decorate"] = __decorate; /* harmony export (immutable) */ __webpack_exports__["__param"] = __param; /* harmony export (immutable) */ __webpack_exports__["__metadata"] = __metadata; /* harmony export (immutable) */ __webpack_exports__["__awaiter"] = __awaiter; /* harmony export (immutable) */ __webpack_exports__["__generator"] = __generator; /* harmony export (immutable) */ __webpack_exports__["__exportStar"] = __exportStar; /* harmony export (immutable) */ __webpack_exports__["__values"] = __values; /* harmony export (immutable) */ __webpack_exports__["__read"] = __read; /* harmony export (immutable) */ __webpack_exports__["__spread"] = __spread; /* harmony export (immutable) */ __webpack_exports__["__await"] = __await; /* harmony export (immutable) */ __webpack_exports__["__asyncGenerator"] = __asyncGenerator; /* harmony export (immutable) */ __webpack_exports__["__asyncDelegator"] = __asyncDelegator; /* harmony export (immutable) */ __webpack_exports__["__asyncValues"] = __asyncValues; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [0, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; 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); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator]; return m ? m.call(o) : typeof __values === "function" ? __values(o) : o[Symbol.iterator](); } /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); var core_1 = __webpack_require__(2); var forms_1 = __webpack_require__(3); var Ng2FileTypeDirective = (function () { /** * * @param {ElementRef} element * @return {void} * @public */ function Ng2FileTypeDirective(element) { /** * @type {string} * @public */ this.fileTypeErrorMsg = 'File type is invalid'; /** * @type {boolean} * @private */ this._multiple = false; this._element = element; } Ng2FileTypeDirective_1 = Ng2FileTypeDirective; Object.defineProperty(Ng2FileTypeDirective.prototype, "multiple", { /** * @return {boolean} */ get: function () { return this._multiple; }, /** * @type {boolean} * @private */ set: function (value) { this._multiple = value === '' || !!value; }, enumerable: true, configurable: true }); ; /** * * @return {void} * @param {SimpleChanges} changes */ Ng2FileTypeDirective.prototype.ngOnChanges = function (changes) { // error message has been changed if (changes.fileTypeErrorMsg && !changes.fileTypeErrorMsg.firstChange) { this._setValidity(this._getInputValue(this._element.nativeElement)); } }; /** * * @public * @returns {void} */ Ng2FileTypeDirective.prototype.ngDoCheck = function () { if (this._control) { var changeDetected = false; if (this.ng2FileType !== this._oldValue) { changeDetected = true; this._oldValue = this.ng2FileType; } if (changeDetected) { this._setValidity(this._getInputValue(this._element.nativeElement)); } } }; /** * * @param {FormControl} control * @return {ValidationErrors} * @private */ Ng2FileTypeDirective.prototype.validate = function (control) { if (!this._control) { this._control = control; } if (this._hasError(this._control.value)) { return { type: this.fileTypeErrorMsg }; } }; /** * * @param {EventTarget} eventTarget * @return {void} */ Ng2FileTypeDirective.prototype.onChange = function (eventTarget) { var value = this._getInputValue(eventTarget); this._setValidity(value); }; /** * * @param value * @private */ Ng2FileTypeDirective.prototype._setValidity = function (value) { var errors = Object.assign({}, this._control.errors); if (this._hasError(value)) { errors.type = this.fileTypeErrorMsg; } else { if (this._control.hasError('type')) { delete errors.type; } } this._control.setErrors(Object.keys(errors).length ? errors : null); }; /** * * @param {File|FileList|undefined} value * @return {boolean} * @private */ Ng2FileTypeDirective.prototype._hasError = function (value) { return this.ng2FileType && !this._hasValidType(value); }; /** * * @param {File|FileList} value * @return {boolean} * @private */ Ng2FileTypeDirective.prototype._hasValidType = function (value) { var valid = true; if (value) { if (this.multiple && !!value.length) { value = value; for (var i = 0; i < value.length; i++) { var file = value.item(i); if (!this._validateType(file)) { valid = false; break; } } } else { valid = this._validateType(value); } } return valid; }; ; /** * * @param value * @returns {boolean} * @private */ Ng2FileTypeDirective.prototype._validateType = function (value) { var valid = true; if (value) { if (this.ng2FileType instanceof RegExp) { valid = this.ng2FileType.test(value.type); } else if (typeof this.ng2FileType === 'string') { valid = this.ng2FileType === value.type; } else if (Array.isArray(this.ng2FileType)) { valid = this.ng2FileType.includes(value.type); } } return valid; }; /** * * @param {FileInputEventTarget} eventTarget * @return {File|FileList|undefined} * @private */ Ng2FileTypeDirective.prototype._getInputValue = function (eventTarget) { return this.multiple ? eventTarget.files : eventTarget.files.item(0); }; tslib_1.__decorate([ core_1.Input(), tslib_1.__metadata("design:type", Object) ], Ng2FileTypeDirective.prototype, "ng2FileType", void 0); tslib_1.__decorate([ core_1.Input(), tslib_1.__metadata("design:type", String) ], Ng2FileTypeDirective.prototype, "fileTypeErrorMsg", void 0); tslib_1.__decorate([ core_1.Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], Ng2FileTypeDirective.prototype, "multiple", null); tslib_1.__decorate([ core_1.HostListener('change', ['$event.target']), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [EventTarget]), tslib_1.__metadata("design:returntype", void 0) ], Ng2FileTypeDirective.prototype, "onChange", null); Ng2FileTypeDirective = Ng2FileTypeDirective_1 = tslib_1.__decorate([ core_1.Directive({ selector: 'input[type="file"][ng2FileType][formControlName],input[type="file"][ng2FileType][formControl],input[type="file"][ng2FileType][ngModel]', exportAs: 'ng2FileTypeDirective', providers: [ { provide: forms_1.NG_VALIDATORS, useExisting: Ng2FileTypeDirective_1, multi: true } ] }), tslib_1.__metadata("design:paramtypes", [core_1.ElementRef]) ], Ng2FileTypeDirective); return Ng2FileTypeDirective; var Ng2FileTypeDirective_1; }()); exports.Ng2FileTypeDirective = Ng2FileTypeDirective; /***/ }), /* 2 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_2__; /***/ }), /* 3 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_3__; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); var common_1 = __webpack_require__(6); var forms_1 = __webpack_require__(3); var core_1 = __webpack_require__(2); var ng2_file_type_directive_1 = __webpack_require__(1); var Ng2FileTypeModule = (function () { function Ng2FileTypeModule() { } Ng2FileTypeModule = tslib_1.__decorate([ core_1.NgModule({ imports: [ common_1.CommonModule, forms_1.FormsModule ], declarations: [ ng2_file_type_directive_1.Ng2FileTypeDirective ], exports: [ ng2_file_type_directive_1.Ng2FileTypeDirective ] }) ], Ng2FileTypeModule); return Ng2FileTypeModule; }()); exports.Ng2FileTypeModule = Ng2FileTypeModule; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = __webpack_require__(0); tslib_1.__exportStar(__webpack_require__(1), exports); var ng2_file_type_module_1 = __webpack_require__(4); exports.Ng2FileTypeModule = ng2_file_type_module_1.Ng2FileTypeModule; /***/ }), /* 6 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_6__; /***/ }) /******/ ]); }); //# sourceMappingURL=ng2-file-type.umd.js.map