source: trip-planner-front/node_modules/@angular/material/bundles/material-checkbox.umd.js@ 6c1585f

Last change on this file since 6c1585f was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 48.0 KB
Line 
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/a11y'), require('@angular/cdk/coercion'), require('@angular/core'), require('@angular/forms'), require('@angular/material/core'), require('@angular/platform-browser/animations'), require('@angular/cdk/observers')) :
3 typeof define === 'function' && define.amd ? define('@angular/material/checkbox', ['exports', '@angular/cdk/a11y', '@angular/cdk/coercion', '@angular/core', '@angular/forms', '@angular/material/core', '@angular/platform-browser/animations', '@angular/cdk/observers'], factory) :
4 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.checkbox = {}), global.ng.cdk.a11y, global.ng.cdk.coercion, global.ng.core, global.ng.forms, global.ng.material.core, global.ng.platformBrowser.animations, global.ng.cdk.observers));
5}(this, (function (exports, a11y, coercion, core, forms, core$1, animations, observers) { 'use strict';
6
7 /*! *****************************************************************************
8 Copyright (c) Microsoft Corporation.
9
10 Permission to use, copy, modify, and/or distribute this software for any
11 purpose with or without fee is hereby granted.
12
13 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15 AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 PERFORMANCE OF THIS SOFTWARE.
20 ***************************************************************************** */
21 /* global Reflect, Promise */
22 var extendStatics = function (d, b) {
23 extendStatics = Object.setPrototypeOf ||
24 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25 function (d, b) { for (var p in b)
26 if (Object.prototype.hasOwnProperty.call(b, p))
27 d[p] = b[p]; };
28 return extendStatics(d, b);
29 };
30 function __extends(d, b) {
31 if (typeof b !== "function" && b !== null)
32 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
33 extendStatics(d, b);
34 function __() { this.constructor = d; }
35 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36 }
37 var __assign = function () {
38 __assign = Object.assign || function __assign(t) {
39 for (var s, i = 1, n = arguments.length; i < n; i++) {
40 s = arguments[i];
41 for (var p in s)
42 if (Object.prototype.hasOwnProperty.call(s, p))
43 t[p] = s[p];
44 }
45 return t;
46 };
47 return __assign.apply(this, arguments);
48 };
49 function __rest(s, e) {
50 var t = {};
51 for (var p in s)
52 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
53 t[p] = s[p];
54 if (s != null && typeof Object.getOwnPropertySymbols === "function")
55 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
56 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
57 t[p[i]] = s[p[i]];
58 }
59 return t;
60 }
61 function __decorate(decorators, target, key, desc) {
62 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
63 if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
64 r = Reflect.decorate(decorators, target, key, desc);
65 else
66 for (var i = decorators.length - 1; i >= 0; i--)
67 if (d = decorators[i])
68 r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
69 return c > 3 && r && Object.defineProperty(target, key, r), r;
70 }
71 function __param(paramIndex, decorator) {
72 return function (target, key) { decorator(target, key, paramIndex); };
73 }
74 function __metadata(metadataKey, metadataValue) {
75 if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
76 return Reflect.metadata(metadataKey, metadataValue);
77 }
78 function __awaiter(thisArg, _arguments, P, generator) {
79 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
80 return new (P || (P = Promise))(function (resolve, reject) {
81 function fulfilled(value) { try {
82 step(generator.next(value));
83 }
84 catch (e) {
85 reject(e);
86 } }
87 function rejected(value) { try {
88 step(generator["throw"](value));
89 }
90 catch (e) {
91 reject(e);
92 } }
93 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
94 step((generator = generator.apply(thisArg, _arguments || [])).next());
95 });
96 }
97 function __generator(thisArg, body) {
98 var _ = { label: 0, sent: function () { if (t[0] & 1)
99 throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
100 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
101 function verb(n) { return function (v) { return step([n, v]); }; }
102 function step(op) {
103 if (f)
104 throw new TypeError("Generator is already executing.");
105 while (_)
106 try {
107 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)
108 return t;
109 if (y = 0, t)
110 op = [op[0] & 2, t.value];
111 switch (op[0]) {
112 case 0:
113 case 1:
114 t = op;
115 break;
116 case 4:
117 _.label++;
118 return { value: op[1], done: false };
119 case 5:
120 _.label++;
121 y = op[1];
122 op = [0];
123 continue;
124 case 7:
125 op = _.ops.pop();
126 _.trys.pop();
127 continue;
128 default:
129 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
130 _ = 0;
131 continue;
132 }
133 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
134 _.label = op[1];
135 break;
136 }
137 if (op[0] === 6 && _.label < t[1]) {
138 _.label = t[1];
139 t = op;
140 break;
141 }
142 if (t && _.label < t[2]) {
143 _.label = t[2];
144 _.ops.push(op);
145 break;
146 }
147 if (t[2])
148 _.ops.pop();
149 _.trys.pop();
150 continue;
151 }
152 op = body.call(thisArg, _);
153 }
154 catch (e) {
155 op = [6, e];
156 y = 0;
157 }
158 finally {
159 f = t = 0;
160 }
161 if (op[0] & 5)
162 throw op[1];
163 return { value: op[0] ? op[1] : void 0, done: true };
164 }
165 }
166 var __createBinding = Object.create ? (function (o, m, k, k2) {
167 if (k2 === undefined)
168 k2 = k;
169 Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
170 }) : (function (o, m, k, k2) {
171 if (k2 === undefined)
172 k2 = k;
173 o[k2] = m[k];
174 });
175 function __exportStar(m, o) {
176 for (var p in m)
177 if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
178 __createBinding(o, m, p);
179 }
180 function __values(o) {
181 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
182 if (m)
183 return m.call(o);
184 if (o && typeof o.length === "number")
185 return {
186 next: function () {
187 if (o && i >= o.length)
188 o = void 0;
189 return { value: o && o[i++], done: !o };
190 }
191 };
192 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
193 }
194 function __read(o, n) {
195 var m = typeof Symbol === "function" && o[Symbol.iterator];
196 if (!m)
197 return o;
198 var i = m.call(o), r, ar = [], e;
199 try {
200 while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
201 ar.push(r.value);
202 }
203 catch (error) {
204 e = { error: error };
205 }
206 finally {
207 try {
208 if (r && !r.done && (m = i["return"]))
209 m.call(i);
210 }
211 finally {
212 if (e)
213 throw e.error;
214 }
215 }
216 return ar;
217 }
218 /** @deprecated */
219 function __spread() {
220 for (var ar = [], i = 0; i < arguments.length; i++)
221 ar = ar.concat(__read(arguments[i]));
222 return ar;
223 }
224 /** @deprecated */
225 function __spreadArrays() {
226 for (var s = 0, i = 0, il = arguments.length; i < il; i++)
227 s += arguments[i].length;
228 for (var r = Array(s), k = 0, i = 0; i < il; i++)
229 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
230 r[k] = a[j];
231 return r;
232 }
233 function __spreadArray(to, from, pack) {
234 if (pack || arguments.length === 2)
235 for (var i = 0, l = from.length, ar; i < l; i++) {
236 if (ar || !(i in from)) {
237 if (!ar)
238 ar = Array.prototype.slice.call(from, 0, i);
239 ar[i] = from[i];
240 }
241 }
242 return to.concat(ar || from);
243 }
244 function __await(v) {
245 return this instanceof __await ? (this.v = v, this) : new __await(v);
246 }
247 function __asyncGenerator(thisArg, _arguments, generator) {
248 if (!Symbol.asyncIterator)
249 throw new TypeError("Symbol.asyncIterator is not defined.");
250 var g = generator.apply(thisArg, _arguments || []), i, q = [];
251 return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
252 function verb(n) { if (g[n])
253 i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
254 function resume(n, v) { try {
255 step(g[n](v));
256 }
257 catch (e) {
258 settle(q[0][3], e);
259 } }
260 function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
261 function fulfill(value) { resume("next", value); }
262 function reject(value) { resume("throw", value); }
263 function settle(f, v) { if (f(v), q.shift(), q.length)
264 resume(q[0][0], q[0][1]); }
265 }
266 function __asyncDelegator(o) {
267 var i, p;
268 return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
269 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; }
270 }
271 function __asyncValues(o) {
272 if (!Symbol.asyncIterator)
273 throw new TypeError("Symbol.asyncIterator is not defined.");
274 var m = o[Symbol.asyncIterator], i;
275 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);
276 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); }); }; }
277 function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
278 }
279 function __makeTemplateObject(cooked, raw) {
280 if (Object.defineProperty) {
281 Object.defineProperty(cooked, "raw", { value: raw });
282 }
283 else {
284 cooked.raw = raw;
285 }
286 return cooked;
287 }
288 ;
289 var __setModuleDefault = Object.create ? (function (o, v) {
290 Object.defineProperty(o, "default", { enumerable: true, value: v });
291 }) : function (o, v) {
292 o["default"] = v;
293 };
294 function __importStar(mod) {
295 if (mod && mod.__esModule)
296 return mod;
297 var result = {};
298 if (mod != null)
299 for (var k in mod)
300 if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
301 __createBinding(result, mod, k);
302 __setModuleDefault(result, mod);
303 return result;
304 }
305 function __importDefault(mod) {
306 return (mod && mod.__esModule) ? mod : { default: mod };
307 }
308 function __classPrivateFieldGet(receiver, state, kind, f) {
309 if (kind === "a" && !f)
310 throw new TypeError("Private accessor was defined without a getter");
311 if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
312 throw new TypeError("Cannot read private member from an object whose class did not declare it");
313 return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
314 }
315 function __classPrivateFieldSet(receiver, state, value, kind, f) {
316 if (kind === "m")
317 throw new TypeError("Private method is not writable");
318 if (kind === "a" && !f)
319 throw new TypeError("Private accessor was defined without a setter");
320 if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
321 throw new TypeError("Cannot write private member to an object whose class did not declare it");
322 return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
323 }
324
325 /**
326 * @license
327 * Copyright Google LLC All Rights Reserved.
328 *
329 * Use of this source code is governed by an MIT-style license that can be
330 * found in the LICENSE file at https://angular.io/license
331 */
332 /** Injection token to be used to override the default options for `mat-checkbox`. */
333 var MAT_CHECKBOX_DEFAULT_OPTIONS = new core.InjectionToken('mat-checkbox-default-options', {
334 providedIn: 'root',
335 factory: MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY
336 });
337 /** @docs-private */
338 function MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY() {
339 return {
340 color: 'accent',
341 clickAction: 'check-indeterminate',
342 };
343 }
344
345 // Increasing integer for generating unique ids for checkbox components.
346 var nextUniqueId = 0;
347 // Default checkbox configuration.
348 var defaults = MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY();
349 /**
350 * Provider Expression that allows mat-checkbox to register as a ControlValueAccessor.
351 * This allows it to support [(ngModel)].
352 * @docs-private
353 */
354 var MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR = {
355 provide: forms.NG_VALUE_ACCESSOR,
356 useExisting: core.forwardRef(function () { return MatCheckbox; }),
357 multi: true
358 };
359 /** Change event object emitted by MatCheckbox. */
360 var MatCheckboxChange = /** @class */ (function () {
361 function MatCheckboxChange() {
362 }
363 return MatCheckboxChange;
364 }());
365 // Boilerplate for applying mixins to MatCheckbox.
366 /** @docs-private */
367 var _MatCheckboxBase = core$1.mixinTabIndex(core$1.mixinColor(core$1.mixinDisableRipple(core$1.mixinDisabled(/** @class */ (function () {
368 function class_1(_elementRef) {
369 this._elementRef = _elementRef;
370 }
371 return class_1;
372 }())))));
373 /**
374 * A material design checkbox component. Supports all of the functionality of an HTML5 checkbox,
375 * and exposes a similar API. A MatCheckbox can be either checked, unchecked, indeterminate, or
376 * disabled. Note that all additional accessibility attributes are taken care of by the component,
377 * so there is no need to provide them yourself. However, if you want to omit a label and still
378 * have the checkbox be accessible, you may supply an [aria-label] input.
379 * See: https://material.io/design/components/selection-controls.html
380 */
381 var MatCheckbox = /** @class */ (function (_super) {
382 __extends(MatCheckbox, _super);
383 function MatCheckbox(elementRef, _changeDetectorRef, _focusMonitor, _ngZone, tabIndex, _animationMode, _options) {
384 var _this = _super.call(this, elementRef) || this;
385 _this._changeDetectorRef = _changeDetectorRef;
386 _this._focusMonitor = _focusMonitor;
387 _this._ngZone = _ngZone;
388 _this._animationMode = _animationMode;
389 _this._options = _options;
390 /**
391 * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will
392 * take precedence so this may be omitted.
393 */
394 _this.ariaLabel = '';
395 /**
396 * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element
397 */
398 _this.ariaLabelledby = null;
399 _this._uniqueId = "mat-checkbox-" + ++nextUniqueId;
400 /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */
401 _this.id = _this._uniqueId;
402 /** Whether the label should appear after or before the checkbox. Defaults to 'after' */
403 _this.labelPosition = 'after';
404 /** Name value will be applied to the input element if present */
405 _this.name = null;
406 /** Event emitted when the checkbox's `checked` value changes. */
407 _this.change = new core.EventEmitter();
408 /** Event emitted when the checkbox's `indeterminate` value changes. */
409 _this.indeterminateChange = new core.EventEmitter();
410 /**
411 * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.
412 * @docs-private
413 */
414 _this._onTouched = function () { };
415 _this._currentAnimationClass = '';
416 _this._currentCheckState = 0 /* Init */;
417 _this._controlValueAccessorChangeFn = function () { };
418 _this._checked = false;
419 _this._disabled = false;
420 _this._indeterminate = false;
421 _this._options = _this._options || defaults;
422 _this.color = _this.defaultColor = _this._options.color || defaults.color;
423 _this.tabIndex = parseInt(tabIndex) || 0;
424 return _this;
425 }
426 Object.defineProperty(MatCheckbox.prototype, "inputId", {
427 /** Returns the unique id for the visual hidden input. */
428 get: function () { return (this.id || this._uniqueId) + "-input"; },
429 enumerable: false,
430 configurable: true
431 });
432 Object.defineProperty(MatCheckbox.prototype, "required", {
433 /** Whether the checkbox is required. */
434 get: function () { return this._required; },
435 set: function (value) { this._required = coercion.coerceBooleanProperty(value); },
436 enumerable: false,
437 configurable: true
438 });
439 MatCheckbox.prototype.ngAfterViewInit = function () {
440 var _this = this;
441 this._focusMonitor.monitor(this._elementRef, true).subscribe(function (focusOrigin) {
442 if (!focusOrigin) {
443 // When a focused element becomes disabled, the browser *immediately* fires a blur event.
444 // Angular does not expect events to be raised during change detection, so any state change
445 // (such as a form control's 'ng-touched') will cause a changed-after-checked error.
446 // See https://github.com/angular/angular/issues/17793. To work around this, we defer
447 // telling the form control it has been touched until the next tick.
448 Promise.resolve().then(function () {
449 _this._onTouched();
450 _this._changeDetectorRef.markForCheck();
451 });
452 }
453 });
454 this._syncIndeterminate(this._indeterminate);
455 };
456 // TODO: Delete next major revision.
457 MatCheckbox.prototype.ngAfterViewChecked = function () { };
458 MatCheckbox.prototype.ngOnDestroy = function () {
459 this._focusMonitor.stopMonitoring(this._elementRef);
460 };
461 Object.defineProperty(MatCheckbox.prototype, "checked", {
462 /**
463 * Whether the checkbox is checked.
464 */
465 get: function () { return this._checked; },
466 set: function (value) {
467 if (value != this.checked) {
468 this._checked = value;
469 this._changeDetectorRef.markForCheck();
470 }
471 },
472 enumerable: false,
473 configurable: true
474 });
475 Object.defineProperty(MatCheckbox.prototype, "disabled", {
476 /**
477 * Whether the checkbox is disabled. This fully overrides the implementation provided by
478 * mixinDisabled, but the mixin is still required because mixinTabIndex requires it.
479 */
480 get: function () { return this._disabled; },
481 set: function (value) {
482 var newValue = coercion.coerceBooleanProperty(value);
483 if (newValue !== this.disabled) {
484 this._disabled = newValue;
485 this._changeDetectorRef.markForCheck();
486 }
487 },
488 enumerable: false,
489 configurable: true
490 });
491 Object.defineProperty(MatCheckbox.prototype, "indeterminate", {
492 /**
493 * Whether the checkbox is indeterminate. This is also known as "mixed" mode and can be used to
494 * represent a checkbox with three states, e.g. a checkbox that represents a nested list of
495 * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately
496 * set to false.
497 */
498 get: function () { return this._indeterminate; },
499 set: function (value) {
500 var changed = value != this._indeterminate;
501 this._indeterminate = coercion.coerceBooleanProperty(value);
502 if (changed) {
503 if (this._indeterminate) {
504 this._transitionCheckState(3 /* Indeterminate */);
505 }
506 else {
507 this._transitionCheckState(this.checked ? 1 /* Checked */ : 2 /* Unchecked */);
508 }
509 this.indeterminateChange.emit(this._indeterminate);
510 }
511 this._syncIndeterminate(this._indeterminate);
512 },
513 enumerable: false,
514 configurable: true
515 });
516 MatCheckbox.prototype._isRippleDisabled = function () {
517 return this.disableRipple || this.disabled;
518 };
519 /** Method being called whenever the label text changes. */
520 MatCheckbox.prototype._onLabelTextChange = function () {
521 // Since the event of the `cdkObserveContent` directive runs outside of the zone, the checkbox
522 // component will be only marked for check, but no actual change detection runs automatically.
523 // Instead of going back into the zone in order to trigger a change detection which causes
524 // *all* components to be checked (if explicitly marked or not using OnPush), we only trigger
525 // an explicit change detection for the checkbox view and its children.
526 this._changeDetectorRef.detectChanges();
527 };
528 // Implemented as part of ControlValueAccessor.
529 MatCheckbox.prototype.writeValue = function (value) {
530 this.checked = !!value;
531 };
532 // Implemented as part of ControlValueAccessor.
533 MatCheckbox.prototype.registerOnChange = function (fn) {
534 this._controlValueAccessorChangeFn = fn;
535 };
536 // Implemented as part of ControlValueAccessor.
537 MatCheckbox.prototype.registerOnTouched = function (fn) {
538 this._onTouched = fn;
539 };
540 // Implemented as part of ControlValueAccessor.
541 MatCheckbox.prototype.setDisabledState = function (isDisabled) {
542 this.disabled = isDisabled;
543 };
544 MatCheckbox.prototype._getAriaChecked = function () {
545 if (this.checked) {
546 return 'true';
547 }
548 return this.indeterminate ? 'mixed' : 'false';
549 };
550 MatCheckbox.prototype._transitionCheckState = function (newState) {
551 var oldState = this._currentCheckState;
552 var element = this._elementRef.nativeElement;
553 if (oldState === newState) {
554 return;
555 }
556 if (this._currentAnimationClass.length > 0) {
557 element.classList.remove(this._currentAnimationClass);
558 }
559 this._currentAnimationClass = this._getAnimationClassForCheckStateTransition(oldState, newState);
560 this._currentCheckState = newState;
561 if (this._currentAnimationClass.length > 0) {
562 element.classList.add(this._currentAnimationClass);
563 // Remove the animation class to avoid animation when the checkbox is moved between containers
564 var animationClass_1 = this._currentAnimationClass;
565 this._ngZone.runOutsideAngular(function () {
566 setTimeout(function () {
567 element.classList.remove(animationClass_1);
568 }, 1000);
569 });
570 }
571 };
572 MatCheckbox.prototype._emitChangeEvent = function () {
573 var event = new MatCheckboxChange();
574 event.source = this;
575 event.checked = this.checked;
576 this._controlValueAccessorChangeFn(this.checked);
577 this.change.emit(event);
578 // Assigning the value again here is redundant, but we have to do it in case it was
579 // changed inside the `change` listener which will cause the input to be out of sync.
580 if (this._inputElement) {
581 this._inputElement.nativeElement.checked = this.checked;
582 }
583 };
584 /** Toggles the `checked` state of the checkbox. */
585 MatCheckbox.prototype.toggle = function () {
586 this.checked = !this.checked;
587 };
588 /**
589 * Event handler for checkbox input element.
590 * Toggles checked state if element is not disabled.
591 * Do not toggle on (change) event since IE doesn't fire change event when
592 * indeterminate checkbox is clicked.
593 * @param event
594 */
595 MatCheckbox.prototype._onInputClick = function (event) {
596 var _this = this;
597 var _a;
598 var clickAction = (_a = this._options) === null || _a === void 0 ? void 0 : _a.clickAction;
599 // We have to stop propagation for click events on the visual hidden input element.
600 // By default, when a user clicks on a label element, a generated click event will be
601 // dispatched on the associated input element. Since we are using a label element as our
602 // root container, the click event on the `checkbox` will be executed twice.
603 // The real click event will bubble up, and the generated click event also tries to bubble up.
604 // This will lead to multiple click events.
605 // Preventing bubbling for the second event will solve that issue.
606 event.stopPropagation();
607 // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click
608 if (!this.disabled && clickAction !== 'noop') {
609 // When user manually click on the checkbox, `indeterminate` is set to false.
610 if (this.indeterminate && clickAction !== 'check') {
611 Promise.resolve().then(function () {
612 _this._indeterminate = false;
613 _this.indeterminateChange.emit(_this._indeterminate);
614 });
615 }
616 this.toggle();
617 this._transitionCheckState(this._checked ? 1 /* Checked */ : 2 /* Unchecked */);
618 // Emit our custom change event if the native input emitted one.
619 // It is important to only emit it, if the native input triggered one, because
620 // we don't want to trigger a change event, when the `checked` variable changes for example.
621 this._emitChangeEvent();
622 }
623 else if (!this.disabled && clickAction === 'noop') {
624 // Reset native input when clicked with noop. The native checkbox becomes checked after
625 // click, reset it to be align with `checked` value of `mat-checkbox`.
626 this._inputElement.nativeElement.checked = this.checked;
627 this._inputElement.nativeElement.indeterminate = this.indeterminate;
628 }
629 };
630 /** Focuses the checkbox. */
631 MatCheckbox.prototype.focus = function (origin, options) {
632 if (origin) {
633 this._focusMonitor.focusVia(this._inputElement, origin, options);
634 }
635 else {
636 this._inputElement.nativeElement.focus(options);
637 }
638 };
639 MatCheckbox.prototype._onInteractionEvent = function (event) {
640 // We always have to stop propagation on the change event.
641 // Otherwise the change event, from the input element, will bubble up and
642 // emit its event object to the `change` output.
643 event.stopPropagation();
644 };
645 MatCheckbox.prototype._getAnimationClassForCheckStateTransition = function (oldState, newState) {
646 // Don't transition if animations are disabled.
647 if (this._animationMode === 'NoopAnimations') {
648 return '';
649 }
650 var animSuffix = '';
651 switch (oldState) {
652 case 0 /* Init */:
653 // Handle edge case where user interacts with checkbox that does not have [(ngModel)] or
654 // [checked] bound to it.
655 if (newState === 1 /* Checked */) {
656 animSuffix = 'unchecked-checked';
657 }
658 else if (newState == 3 /* Indeterminate */) {
659 animSuffix = 'unchecked-indeterminate';
660 }
661 else {
662 return '';
663 }
664 break;
665 case 2 /* Unchecked */:
666 animSuffix = newState === 1 /* Checked */ ?
667 'unchecked-checked' : 'unchecked-indeterminate';
668 break;
669 case 1 /* Checked */:
670 animSuffix = newState === 2 /* Unchecked */ ?
671 'checked-unchecked' : 'checked-indeterminate';
672 break;
673 case 3 /* Indeterminate */:
674 animSuffix = newState === 1 /* Checked */ ?
675 'indeterminate-checked' : 'indeterminate-unchecked';
676 break;
677 }
678 return "mat-checkbox-anim-" + animSuffix;
679 };
680 /**
681 * Syncs the indeterminate value with the checkbox DOM node.
682 *
683 * We sync `indeterminate` directly on the DOM node, because in Ivy the check for whether a
684 * property is supported on an element boils down to `if (propName in element)`. Domino's
685 * HTMLInputElement doesn't have an `indeterminate` property so Ivy will warn during
686 * server-side rendering.
687 */
688 MatCheckbox.prototype._syncIndeterminate = function (value) {
689 var nativeCheckbox = this._inputElement;
690 if (nativeCheckbox) {
691 nativeCheckbox.nativeElement.indeterminate = value;
692 }
693 };
694 return MatCheckbox;
695 }(_MatCheckboxBase));
696 MatCheckbox.decorators = [
697 { type: core.Component, args: [{
698 selector: 'mat-checkbox',
699 template: "<label [attr.for]=\"inputId\" class=\"mat-checkbox-layout\" #label>\n <span class=\"mat-checkbox-inner-container\"\n [class.mat-checkbox-inner-container-no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n class=\"mat-checkbox-input cdk-visually-hidden\" type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\">\n <span matRipple class=\"mat-checkbox-ripple mat-focus-indicator\"\n [matRippleTrigger]=\"label\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleRadius]=\"20\"\n [matRippleCentered]=\"true\"\n [matRippleAnimation]=\"{enterDuration: _animationMode === 'NoopAnimations' ? 0 : 150}\">\n <span class=\"mat-ripple-element mat-checkbox-persistent-ripple\"></span>\n </span>\n <span class=\"mat-checkbox-frame\"></span>\n <span class=\"mat-checkbox-background\">\n <svg version=\"1.1\"\n focusable=\"false\"\n class=\"mat-checkbox-checkmark\"\n viewBox=\"0 0 24 24\"\n xml:space=\"preserve\"\n aria-hidden=\"true\">\n <path class=\"mat-checkbox-checkmark-path\"\n fill=\"none\"\n stroke=\"white\"\n d=\"M4.1,12.7 9,17.6 20.3,6.3\"/>\n </svg>\n <!-- Element for rendering the indeterminate state checkbox. -->\n <span class=\"mat-checkbox-mixedmark\"></span>\n </span>\n </span>\n <span class=\"mat-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"_onLabelTextChange()\">\n <!-- Add an invisible span so JAWS can read the label -->\n <span style=\"display:none\">&nbsp;</span>\n <ng-content></ng-content>\n </span>\n</label>\n",
700 exportAs: 'matCheckbox',
701 host: {
702 'class': 'mat-checkbox',
703 '[id]': 'id',
704 '[attr.tabindex]': 'null',
705 '[class.mat-checkbox-indeterminate]': 'indeterminate',
706 '[class.mat-checkbox-checked]': 'checked',
707 '[class.mat-checkbox-disabled]': 'disabled',
708 '[class.mat-checkbox-label-before]': 'labelPosition == "before"',
709 '[class._mat-animation-noopable]': "_animationMode === 'NoopAnimations'",
710 },
711 providers: [MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR],
712 inputs: ['disableRipple', 'color', 'tabIndex'],
713 encapsulation: core.ViewEncapsulation.None,
714 changeDetection: core.ChangeDetectionStrategy.OnPush,
715 styles: ["@keyframes mat-checkbox-fade-in-background{0%{opacity:0}50%{opacity:1}}@keyframes mat-checkbox-fade-out-background{0%,50%{opacity:1}100%{opacity:0}}@keyframes mat-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:22.910259}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1)}100%{stroke-dashoffset:0}}@keyframes mat-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mat-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);stroke-dashoffset:0}to{stroke-dashoffset:-22.910259}}@keyframes mat-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(45deg)}}@keyframes mat-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(360deg)}}@keyframes mat-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:rotate(0deg)}}@keyframes mat-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(315deg)}}@keyframes mat-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;opacity:1;transform:scaleX(1)}32.8%,100%{opacity:0;transform:scaleX(0)}}.mat-checkbox-background,.mat-checkbox-frame{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:2px;box-sizing:border-box;pointer-events:none}.mat-checkbox{display:inline-block;transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer;-webkit-tap-highlight-color:transparent}._mat-animation-noopable.mat-checkbox{transition:none;animation:none}.mat-checkbox .mat-ripple-element:not(.mat-checkbox-persistent-ripple){opacity:.16}.mat-checkbox .mat-checkbox-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.cdk-high-contrast-active .mat-checkbox.cdk-keyboard-focused .mat-checkbox-ripple{outline:solid 3px}.mat-checkbox-layout{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mat-checkbox-label{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.mat-checkbox-inner-container{display:inline-block;height:16px;line-height:0;margin:auto;margin-right:8px;order:0;position:relative;vertical-align:middle;white-space:nowrap;width:16px;flex-shrink:0}[dir=rtl] .mat-checkbox-inner-container{margin-left:8px;margin-right:auto}.mat-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mat-checkbox-frame{background-color:transparent;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1);border-width:2px;border-style:solid}._mat-animation-noopable .mat-checkbox-frame{transition:none}.mat-checkbox-background{align-items:center;display:inline-flex;justify-content:center;transition:background-color 90ms cubic-bezier(0, 0, 0.2, 0.1),opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-checkbox-background{transition:none}.cdk-high-contrast-active .mat-checkbox .mat-checkbox-background{background:none}.mat-checkbox-persistent-ripple{display:block;width:100%;height:100%;transform:none}.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:.04}.mat-checkbox.cdk-keyboard-focused .mat-checkbox-persistent-ripple{opacity:.12}.mat-checkbox-persistent-ripple,.mat-checkbox.mat-checkbox-disabled .mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:0}@media(hover: none){.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{display:none}}.mat-checkbox-checkmark{top:0;left:0;right:0;bottom:0;position:absolute;width:100%}.mat-checkbox-checkmark-path{stroke-dashoffset:22.910259;stroke-dasharray:22.910259;stroke-width:2.1333333333px}.cdk-high-contrast-black-on-white .mat-checkbox-checkmark-path{stroke:#000 !important}.mat-checkbox-mixedmark{width:calc(100% - 6px);height:2px;opacity:0;transform:scaleX(0) rotate(0deg);border-radius:2px}.cdk-high-contrast-active .mat-checkbox-mixedmark{height:0;border-top:solid 2px;margin-top:2px}.mat-checkbox-label-before .mat-checkbox-inner-container{order:1;margin-left:8px;margin-right:auto}[dir=rtl] .mat-checkbox-label-before .mat-checkbox-inner-container{margin-left:auto;margin-right:8px}.mat-checkbox-checked .mat-checkbox-checkmark{opacity:1}.mat-checkbox-checked .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-checked .mat-checkbox-mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark{opacity:0;transform:rotate(45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-indeterminate .mat-checkbox-mixedmark{opacity:1;transform:scaleX(1) rotate(0deg)}.mat-checkbox-unchecked .mat-checkbox-background{background-color:transparent}.mat-checkbox-disabled{cursor:default}.cdk-high-contrast-active .mat-checkbox-disabled{opacity:.5}.mat-checkbox-anim-unchecked-checked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-checked .mat-checkbox-checkmark-path{animation:180ms linear 0ms mat-checkbox-unchecked-checked-checkmark-path}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-unchecked-indeterminate-mixedmark}.mat-checkbox-anim-checked-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-checked-unchecked .mat-checkbox-checkmark-path{animation:90ms linear 0ms mat-checkbox-checked-unchecked-checkmark-path}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-checkmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-checkmark}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-mixedmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-checkmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-checkmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-mixedmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-mixedmark}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-mixedmark{animation:300ms linear 0ms mat-checkbox-indeterminate-unchecked-mixedmark}.mat-checkbox-input{bottom:0;left:50%}\n"]
716 },] }
717 ];
718 MatCheckbox.ctorParameters = function () { return [
719 { type: core.ElementRef },
720 { type: core.ChangeDetectorRef },
721 { type: a11y.FocusMonitor },
722 { type: core.NgZone },
723 { type: String, decorators: [{ type: core.Attribute, args: ['tabindex',] }] },
724 { type: String, decorators: [{ type: core.Optional }, { type: core.Inject, args: [animations.ANIMATION_MODULE_TYPE,] }] },
725 { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [MAT_CHECKBOX_DEFAULT_OPTIONS,] }] }
726 ]; };
727 MatCheckbox.propDecorators = {
728 ariaLabel: [{ type: core.Input, args: ['aria-label',] }],
729 ariaLabelledby: [{ type: core.Input, args: ['aria-labelledby',] }],
730 ariaDescribedby: [{ type: core.Input, args: ['aria-describedby',] }],
731 id: [{ type: core.Input }],
732 required: [{ type: core.Input }],
733 labelPosition: [{ type: core.Input }],
734 name: [{ type: core.Input }],
735 change: [{ type: core.Output }],
736 indeterminateChange: [{ type: core.Output }],
737 value: [{ type: core.Input }],
738 _inputElement: [{ type: core.ViewChild, args: ['input',] }],
739 ripple: [{ type: core.ViewChild, args: [core$1.MatRipple,] }],
740 checked: [{ type: core.Input }],
741 disabled: [{ type: core.Input }],
742 indeterminate: [{ type: core.Input }]
743 };
744
745 var MAT_CHECKBOX_REQUIRED_VALIDATOR = {
746 provide: forms.NG_VALIDATORS,
747 useExisting: core.forwardRef(function () { return MatCheckboxRequiredValidator; }),
748 multi: true
749 };
750 /**
751 * Validator for Material checkbox's required attribute in template-driven checkbox.
752 * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not
753 * work with `mat-checkbox`.
754 */
755 var MatCheckboxRequiredValidator = /** @class */ (function (_super) {
756 __extends(MatCheckboxRequiredValidator, _super);
757 function MatCheckboxRequiredValidator() {
758 return _super !== null && _super.apply(this, arguments) || this;
759 }
760 return MatCheckboxRequiredValidator;
761 }(forms.CheckboxRequiredValidator));
762 MatCheckboxRequiredValidator.decorators = [
763 { type: core.Directive, args: [{
764 selector: "mat-checkbox[required][formControlName],\n mat-checkbox[required][formControl], mat-checkbox[required][ngModel]",
765 providers: [MAT_CHECKBOX_REQUIRED_VALIDATOR],
766 },] }
767 ];
768
769 /**
770 * @license
771 * Copyright Google LLC All Rights Reserved.
772 *
773 * Use of this source code is governed by an MIT-style license that can be
774 * found in the LICENSE file at https://angular.io/license
775 */
776 /** This module is used by both original and MDC-based checkbox implementations. */
777 var _MatCheckboxRequiredValidatorModule = /** @class */ (function () {
778 function _MatCheckboxRequiredValidatorModule() {
779 }
780 return _MatCheckboxRequiredValidatorModule;
781 }());
782 _MatCheckboxRequiredValidatorModule.decorators = [
783 { type: core.NgModule, args: [{
784 exports: [MatCheckboxRequiredValidator],
785 declarations: [MatCheckboxRequiredValidator],
786 },] }
787 ];
788 var MatCheckboxModule = /** @class */ (function () {
789 function MatCheckboxModule() {
790 }
791 return MatCheckboxModule;
792 }());
793 MatCheckboxModule.decorators = [
794 { type: core.NgModule, args: [{
795 imports: [
796 core$1.MatRippleModule, core$1.MatCommonModule, observers.ObserversModule,
797 _MatCheckboxRequiredValidatorModule
798 ],
799 exports: [MatCheckbox, core$1.MatCommonModule, _MatCheckboxRequiredValidatorModule],
800 declarations: [MatCheckbox],
801 },] }
802 ];
803
804 /**
805 * @license
806 * Copyright Google LLC All Rights Reserved.
807 *
808 * Use of this source code is governed by an MIT-style license that can be
809 * found in the LICENSE file at https://angular.io/license
810 */
811
812 /**
813 * Generated bundle index. Do not edit.
814 */
815
816 exports.MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR = MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR;
817 exports.MAT_CHECKBOX_DEFAULT_OPTIONS = MAT_CHECKBOX_DEFAULT_OPTIONS;
818 exports.MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY = MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY;
819 exports.MAT_CHECKBOX_REQUIRED_VALIDATOR = MAT_CHECKBOX_REQUIRED_VALIDATOR;
820 exports.MatCheckbox = MatCheckbox;
821 exports.MatCheckboxChange = MatCheckboxChange;
822 exports.MatCheckboxModule = MatCheckboxModule;
823 exports.MatCheckboxRequiredValidator = MatCheckboxRequiredValidator;
824 exports._MatCheckboxRequiredValidatorModule = _MatCheckboxRequiredValidatorModule;
825
826 Object.defineProperty(exports, '__esModule', { value: true });
827
828})));
829//# sourceMappingURL=material-checkbox.umd.js.map
Note: See TracBrowser for help on using the repository browser.