@angular/material 19.2.0-next.1 → 19.2.0-next.3
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/bottom-sheet/index.d.ts +18 -8
- package/button/_button-base.scss +4 -4
- package/checkbox/_checkbox-common.scss +38 -25
- package/chips/index.d.ts +0 -2
- package/core/index.d.ts +1 -0
- package/datepicker/index.d.ts +3 -3
- package/dialog/index.d.ts +10 -3
- package/expansion/index.d.ts +7 -4
- package/fesm2022/autocomplete.mjs +13 -13
- package/fesm2022/autocomplete.mjs.map +1 -1
- package/fesm2022/badge.mjs +10 -10
- package/fesm2022/badge.mjs.map +1 -1
- package/fesm2022/bottom-sheet/testing.mjs +1 -1
- package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2022/bottom-sheet.mjs +138 -50
- package/fesm2022/bottom-sheet.mjs.map +1 -1
- package/fesm2022/button-toggle.mjs +14 -14
- package/fesm2022/button-toggle.mjs.map +1 -1
- package/fesm2022/button.mjs +42 -42
- package/fesm2022/button.mjs.map +1 -1
- package/fesm2022/card.mjs +46 -46
- package/fesm2022/card.mjs.map +1 -1
- package/fesm2022/checkbox.mjs +16 -16
- package/fesm2022/checkbox.mjs.map +1 -1
- package/fesm2022/chips.mjs +52 -53
- package/fesm2022/chips.mjs.map +1 -1
- package/fesm2022/core.mjs +74 -76
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/datepicker.mjs +205 -131
- package/fesm2022/datepicker.mjs.map +1 -1
- package/fesm2022/dialog.mjs +123 -43
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/divider.mjs +7 -7
- package/fesm2022/divider.mjs.map +1 -1
- package/fesm2022/expansion.mjs +97 -41
- package/fesm2022/expansion.mjs.map +1 -1
- package/fesm2022/form-field.mjs +68 -43
- package/fesm2022/form-field.mjs.map +1 -1
- package/fesm2022/grid-list.mjs +22 -22
- package/fesm2022/grid-list.mjs.map +1 -1
- package/fesm2022/icon/testing.mjs +7 -7
- package/fesm2022/icon/testing.mjs.map +1 -1
- package/fesm2022/icon.mjs +10 -10
- package/fesm2022/icon.mjs.map +1 -1
- package/fesm2022/input.mjs +7 -7
- package/fesm2022/input.mjs.map +1 -1
- package/fesm2022/list.mjs +51 -51
- package/fesm2022/list.mjs.map +1 -1
- package/fesm2022/menu.mjs +111 -51
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/paginator.mjs +10 -10
- package/fesm2022/paginator.mjs.map +1 -1
- package/fesm2022/progress-bar.mjs +7 -7
- package/fesm2022/progress-bar.mjs.map +1 -1
- package/fesm2022/progress-spinner.mjs +7 -7
- package/fesm2022/progress-spinner.mjs.map +1 -1
- package/fesm2022/radio.mjs +10 -10
- package/fesm2022/radio.mjs.map +1 -1
- package/fesm2022/select.mjs +174 -69
- package/fesm2022/select.mjs.map +1 -1
- package/fesm2022/sidenav.mjs +94 -44
- package/fesm2022/sidenav.mjs.map +1 -1
- package/fesm2022/slide-toggle.mjs +14 -14
- package/fesm2022/slide-toggle.mjs.map +1 -1
- package/fesm2022/slider.mjs +16 -16
- package/fesm2022/slider.mjs.map +1 -1
- package/fesm2022/snack-bar.mjs +179 -91
- package/fesm2022/snack-bar.mjs.map +1 -1
- package/fesm2022/sort.mjs +299 -56
- package/fesm2022/sort.mjs.map +1 -1
- package/fesm2022/stepper.mjs +169 -60
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/table.mjs +55 -55
- package/fesm2022/table.mjs.map +1 -1
- package/fesm2022/tabs.mjs +171 -73
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/timepicker.mjs +36 -43
- package/fesm2022/timepicker.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +10 -10
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tooltip.mjs +46 -19
- package/fesm2022/tooltip.mjs.map +1 -1
- package/fesm2022/tree.mjs +25 -25
- package/fesm2022/tree.mjs.map +1 -1
- package/form-field/index.d.ts +1 -2
- package/menu/index.d.ts +5 -10
- package/package.json +2 -2
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.mjs +1 -1
- package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +2 -2
- package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +2 -2
- package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +2 -2
- package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +2 -2
- package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +2 -2
- package/select/index.d.ts +12 -11
- package/sidenav/index.d.ts +1 -2
- package/snack-bar/index.d.ts +9 -8
- package/sort/index.d.ts +6 -7
- package/stepper/index.d.ts +2 -3
- package/tabs/index.d.ts +1 -2
- package/timepicker/index.d.ts +4 -1
- package/tooltip/index.d.ts +1 -2
package/fesm2022/sort.mjs
CHANGED
|
@@ -4,8 +4,7 @@ import { FocusMonitor, AriaDescriber } from '@angular/cdk/a11y';
|
|
|
4
4
|
import { SPACE, ENTER } from '@angular/cdk/keycodes';
|
|
5
5
|
import { ReplaySubject, Subject, merge } from 'rxjs';
|
|
6
6
|
import { _CdkPrivateStyleLoader } from '@angular/cdk/private';
|
|
7
|
-
import { _StructuralStylesLoader, MatCommonModule
|
|
8
|
-
import { trigger, state, style, transition, animate, keyframes, query, animateChild } from '@angular/animations';
|
|
7
|
+
import { _StructuralStylesLoader, MatCommonModule } from '@angular/material/core';
|
|
9
8
|
|
|
10
9
|
/** @docs-private */
|
|
11
10
|
function getSortDuplicateSortableIdError(id) {
|
|
@@ -127,10 +126,10 @@ class MatSort {
|
|
|
127
126
|
this._stateChanges.complete();
|
|
128
127
|
this._initializedStream.complete();
|
|
129
128
|
}
|
|
130
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
|
131
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.
|
|
129
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSort, deps: [{ token: MAT_SORT_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
130
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.3", type: MatSort, isStandalone: true, selector: "[matSort]", inputs: { active: ["matSortActive", "active"], start: ["matSortStart", "start"], direction: ["matSortDirection", "direction"], disableClear: ["matSortDisableClear", "disableClear", booleanAttribute], disabled: ["matSortDisabled", "disabled", booleanAttribute] }, outputs: { sortChange: "matSortChange" }, host: { classAttribute: "mat-sort" }, exportAs: ["matSort"], usesOnChanges: true, ngImport: i0 });
|
|
132
131
|
}
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSort, decorators: [{
|
|
134
133
|
type: Directive,
|
|
135
134
|
args: [{
|
|
136
135
|
selector: '[matSort]',
|
|
@@ -185,10 +184,10 @@ class MatSortHeaderIntl {
|
|
|
185
184
|
* components if the labels have changed after initialization.
|
|
186
185
|
*/
|
|
187
186
|
changes = new Subject();
|
|
188
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
|
189
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.
|
|
187
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortHeaderIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
188
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortHeaderIntl, providedIn: 'root' });
|
|
190
189
|
}
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortHeaderIntl, decorators: [{
|
|
192
191
|
type: Injectable,
|
|
193
192
|
args: [{ providedIn: 'root' }]
|
|
194
193
|
}] });
|
|
@@ -355,10 +354,10 @@ class MatSortHeader {
|
|
|
355
354
|
}
|
|
356
355
|
this._sortActionDescription = newDescription;
|
|
357
356
|
}
|
|
358
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
|
359
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.
|
|
357
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
358
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.3", type: MatSortHeader, isStandalone: true, selector: "[mat-sort-header]", inputs: { id: ["mat-sort-header", "id"], arrowPosition: "arrowPosition", start: "start", disabled: ["disabled", "disabled", booleanAttribute], sortActionDescription: "sortActionDescription", disableClear: ["disableClear", "disableClear", booleanAttribute] }, host: { listeners: { "click": "_toggleOnInteraction()", "keydown": "_handleKeydown($event)", "mouseleave": "_recentlyCleared.set(false)" }, properties: { "attr.aria-sort": "_getAriaSortAttribute()", "class.mat-sort-header-disabled": "_isDisabled()" }, classAttribute: "mat-sort-header" }, exportAs: ["matSortHeader"], ngImport: i0, template: "<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition === 'before'\"\n [class.mat-sort-header-descending]=\"this._sort.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"this._sort.direction === 'asc'\"\n [class.mat-sort-header-recently-cleared-ascending]=\"_recentlyCleared() === 'asc'\"\n [class.mat-sort-header-recently-cleared-descending]=\"_recentlyCleared() === 'desc'\"\n [class.mat-sort-header-animations-disabled]=\"_animationModule === 'NoopAnimations'\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n [attr.role]=\"_isDisabled() ? null : 'button'\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\"/>\n </svg>\n </div>\n }\n</div>\n", styles: [".mat-sort-header-container{display:flex;cursor:pointer;align-items:center;letter-spacing:normal;outline:0}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container,[mat-sort-header].cdk-program-focused .mat-sort-header-container{border-bottom:solid 1px currentColor}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-container::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-sort-header-content{display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}@keyframes _mat-sort-header-recently-cleared-ascending{from{transform:translateY(0);opacity:1}to{transform:translateY(-25%);opacity:0}}@keyframes _mat-sort-header-recently-cleared-descending{from{transform:translateY(0) rotate(180deg);opacity:1}to{transform:translateY(25%) rotate(180deg);opacity:0}}.mat-sort-header-arrow{height:12px;width:12px;position:relative;transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1),opacity 225ms cubic-bezier(0.4, 0, 0.2, 1);opacity:0;overflow:visible;color:var(--mat-sort-arrow-color, var(--mat-sys-on-surface))}.mat-sort-header.cdk-keyboard-focused .mat-sort-header-arrow,.mat-sort-header.cdk-program-focused .mat-sort-header-arrow,.mat-sort-header:hover .mat-sort-header-arrow{opacity:.54}.mat-sort-header .mat-sort-header-sorted .mat-sort-header-arrow{opacity:1}.mat-sort-header-descending .mat-sort-header-arrow{transform:rotate(180deg)}.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow{transform:translateY(-25%)}.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow{transition:none;animation:_mat-sort-header-recently-cleared-ascending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards}.mat-sort-header-recently-cleared-descending .mat-sort-header-arrow{transition:none;animation:_mat-sort-header-recently-cleared-descending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards}.mat-sort-header-animations-disabled .mat-sort-header-arrow{transition-duration:0ms;animation-duration:0ms}.mat-sort-header-arrow svg{width:24px;height:24px;fill:currentColor;position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px;transform:translateZ(0)}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
360
359
|
}
|
|
361
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortHeader, decorators: [{
|
|
362
361
|
type: Component,
|
|
363
362
|
args: [{ selector: '[mat-sort-header]', exportAs: 'matSortHeader', host: {
|
|
364
363
|
'class': 'mat-sort-header',
|
|
@@ -386,11 +385,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ng
|
|
|
386
385
|
}] } });
|
|
387
386
|
|
|
388
387
|
class MatSortModule {
|
|
389
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
|
390
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.
|
|
391
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.
|
|
388
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
389
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.3", ngImport: i0, type: MatSortModule, imports: [MatCommonModule, MatSort, MatSortHeader], exports: [MatSort, MatSortHeader] });
|
|
390
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortModule, providers: [MAT_SORT_HEADER_INTL_PROVIDER], imports: [MatCommonModule] });
|
|
392
391
|
}
|
|
393
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
|
392
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatSortModule, decorators: [{
|
|
394
393
|
type: NgModule,
|
|
395
394
|
args: [{
|
|
396
395
|
imports: [MatCommonModule, MatSort, MatSortHeader],
|
|
@@ -399,7 +398,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ng
|
|
|
399
398
|
}]
|
|
400
399
|
}] });
|
|
401
400
|
|
|
402
|
-
const SORT_ANIMATION_TRANSITION = AnimationDurations.ENTERING + ' ' + AnimationCurves.STANDARD_CURVE;
|
|
403
401
|
/**
|
|
404
402
|
* Animations used by MatSort.
|
|
405
403
|
* @docs-private
|
|
@@ -407,34 +405,185 @@ const SORT_ANIMATION_TRANSITION = AnimationDurations.ENTERING + ' ' + AnimationC
|
|
|
407
405
|
* @breaking-change 21.0.0
|
|
408
406
|
*/
|
|
409
407
|
const matSortAnimations = {
|
|
408
|
+
// Represents:
|
|
409
|
+
// trigger('indicator', [
|
|
410
|
+
// state('active-asc, asc', style({transform: 'translateY(0px)'})),
|
|
411
|
+
// // 10px is the height of the sort indicator, minus the width of the pointers
|
|
412
|
+
// state('active-desc, desc', style({transform: 'translateY(10px)'})),
|
|
413
|
+
// transition('active-asc <=> active-desc', animate(SORT_ANIMATION_TRANSITION)),
|
|
414
|
+
// ])
|
|
410
415
|
/** Animation that moves the sort indicator. */
|
|
411
|
-
indicator:
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
416
|
+
indicator: {
|
|
417
|
+
type: 7,
|
|
418
|
+
name: 'indicator',
|
|
419
|
+
definitions: [
|
|
420
|
+
{
|
|
421
|
+
type: 0,
|
|
422
|
+
name: 'active-asc, asc',
|
|
423
|
+
styles: { type: 6, styles: { transform: 'translateY(0px)' }, offset: null },
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
type: 0,
|
|
427
|
+
name: 'active-desc, desc',
|
|
428
|
+
styles: { type: 6, styles: { transform: 'translateY(10px)' }, offset: null },
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
type: 1,
|
|
432
|
+
expr: 'active-asc <=> active-desc',
|
|
433
|
+
animation: { type: 4, styles: null, timings: '225ms cubic-bezier(0.4,0.0,0.2,1)' },
|
|
434
|
+
options: null,
|
|
435
|
+
},
|
|
436
|
+
],
|
|
437
|
+
options: {},
|
|
438
|
+
},
|
|
439
|
+
// Represents:
|
|
440
|
+
// trigger('leftPointer', [
|
|
441
|
+
// state('active-asc, asc', style({transform: 'rotate(-45deg)'})),
|
|
442
|
+
// state('active-desc, desc', style({transform: 'rotate(45deg)'})),
|
|
443
|
+
// transition('active-asc <=> active-desc', animate(SORT_ANIMATION_TRANSITION)),
|
|
444
|
+
// ])
|
|
417
445
|
/** Animation that rotates the left pointer of the indicator based on the sorting direction. */
|
|
418
|
-
leftPointer:
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
446
|
+
leftPointer: {
|
|
447
|
+
type: 7,
|
|
448
|
+
name: 'leftPointer',
|
|
449
|
+
definitions: [
|
|
450
|
+
{
|
|
451
|
+
type: 0,
|
|
452
|
+
name: 'active-asc, asc',
|
|
453
|
+
styles: { type: 6, styles: { transform: 'rotate(-45deg)' }, offset: null },
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
type: 0,
|
|
457
|
+
name: 'active-desc, desc',
|
|
458
|
+
styles: { type: 6, styles: { transform: 'rotate(45deg)' }, offset: null },
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
type: 1,
|
|
462
|
+
expr: 'active-asc <=> active-desc',
|
|
463
|
+
animation: { type: 4, styles: null, timings: '225ms cubic-bezier(0.4,0.0,0.2,1)' },
|
|
464
|
+
options: null,
|
|
465
|
+
},
|
|
466
|
+
],
|
|
467
|
+
options: {},
|
|
468
|
+
},
|
|
469
|
+
// Represents:
|
|
470
|
+
// trigger('rightPointer', [
|
|
471
|
+
// state('active-asc, asc', style({transform: 'rotate(45deg)'})),
|
|
472
|
+
// state('active-desc, desc', style({transform: 'rotate(-45deg)'})),
|
|
473
|
+
// transition('active-asc <=> active-desc', animate(SORT_ANIMATION_TRANSITION)),
|
|
474
|
+
// ])
|
|
423
475
|
/** Animation that rotates the right pointer of the indicator based on the sorting direction. */
|
|
424
|
-
rightPointer:
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
476
|
+
rightPointer: {
|
|
477
|
+
type: 7,
|
|
478
|
+
name: 'rightPointer',
|
|
479
|
+
definitions: [
|
|
480
|
+
{
|
|
481
|
+
type: 0,
|
|
482
|
+
name: 'active-asc, asc',
|
|
483
|
+
styles: { type: 6, styles: { transform: 'rotate(45deg)' }, offset: null },
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
type: 0,
|
|
487
|
+
name: 'active-desc, desc',
|
|
488
|
+
styles: { type: 6, styles: { transform: 'rotate(-45deg)' }, offset: null },
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
type: 1,
|
|
492
|
+
expr: 'active-asc <=> active-desc',
|
|
493
|
+
animation: { type: 4, styles: null, timings: '225ms cubic-bezier(0.4,0.0,0.2,1)' },
|
|
494
|
+
options: null,
|
|
495
|
+
},
|
|
496
|
+
],
|
|
497
|
+
options: {},
|
|
498
|
+
},
|
|
499
|
+
// Represents:
|
|
500
|
+
// trigger('arrowOpacity', [
|
|
501
|
+
// state('desc-to-active, asc-to-active, active', style({opacity: 1})),
|
|
502
|
+
// state('desc-to-hint, asc-to-hint, hint', style({opacity: 0.54})),
|
|
503
|
+
// state(
|
|
504
|
+
// 'hint-to-desc, active-to-desc, desc, hint-to-asc, active-to-asc, asc, void',
|
|
505
|
+
// style({opacity: 0}),
|
|
506
|
+
// ),
|
|
507
|
+
// // Transition between all states except for immediate transitions
|
|
508
|
+
// transition('* => asc, * => desc, * => active, * => hint, * => void', animate('0ms')),
|
|
509
|
+
// transition('* <=> *', animate(SORT_ANIMATION_TRANSITION)),
|
|
510
|
+
// ])
|
|
429
511
|
/** Animation that controls the arrow opacity. */
|
|
430
|
-
arrowOpacity:
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
512
|
+
arrowOpacity: {
|
|
513
|
+
type: 7,
|
|
514
|
+
name: 'arrowOpacity',
|
|
515
|
+
definitions: [
|
|
516
|
+
{
|
|
517
|
+
type: 0,
|
|
518
|
+
name: 'desc-to-active, asc-to-active, active',
|
|
519
|
+
styles: { type: 6, styles: { 'opacity': 1 }, offset: null },
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
type: 0,
|
|
523
|
+
name: 'desc-to-hint, asc-to-hint, hint',
|
|
524
|
+
styles: { type: 6, styles: { 'opacity': 0.54 }, offset: null },
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
type: 0,
|
|
528
|
+
name: 'hint-to-desc, active-to-desc, desc, hint-to-asc, active-to-asc, asc, void',
|
|
529
|
+
styles: { type: 6, styles: { 'opacity': 0 }, offset: null },
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
type: 1,
|
|
533
|
+
expr: '* => asc, * => desc, * => active, * => hint, * => void',
|
|
534
|
+
animation: { type: 4, styles: null, timings: '0ms' },
|
|
535
|
+
options: null,
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
type: 1,
|
|
539
|
+
expr: '* <=> *',
|
|
540
|
+
animation: { type: 4, styles: null, timings: '225ms cubic-bezier(0.4,0.0,0.2,1)' },
|
|
541
|
+
options: null,
|
|
542
|
+
},
|
|
543
|
+
],
|
|
544
|
+
options: {},
|
|
545
|
+
},
|
|
546
|
+
// Represents:
|
|
547
|
+
// trigger('arrowPosition', [
|
|
548
|
+
// // Hidden Above => Hint Center
|
|
549
|
+
// transition(
|
|
550
|
+
// '* => desc-to-hint, * => desc-to-active',
|
|
551
|
+
// animate(
|
|
552
|
+
// SORT_ANIMATION_TRANSITION,
|
|
553
|
+
// keyframes([style({transform: 'translateY(-25%)'}), style({transform: 'translateY(0)'})]),
|
|
554
|
+
// ),
|
|
555
|
+
// ),
|
|
556
|
+
// // Hint Center => Hidden Below
|
|
557
|
+
// transition(
|
|
558
|
+
// '* => hint-to-desc, * => active-to-desc',
|
|
559
|
+
// animate(
|
|
560
|
+
// SORT_ANIMATION_TRANSITION,
|
|
561
|
+
// keyframes([style({transform: 'translateY(0)'}), style({transform: 'translateY(25%)'})]),
|
|
562
|
+
// ),
|
|
563
|
+
// ),
|
|
564
|
+
// // Hidden Below => Hint Center
|
|
565
|
+
// transition(
|
|
566
|
+
// '* => asc-to-hint, * => asc-to-active',
|
|
567
|
+
// animate(
|
|
568
|
+
// SORT_ANIMATION_TRANSITION,
|
|
569
|
+
// keyframes([style({transform: 'translateY(25%)'}), style({transform: 'translateY(0)'})]),
|
|
570
|
+
// ),
|
|
571
|
+
// ),
|
|
572
|
+
// // Hint Center => Hidden Above
|
|
573
|
+
// transition(
|
|
574
|
+
// '* => hint-to-asc, * => active-to-asc',
|
|
575
|
+
// animate(
|
|
576
|
+
// SORT_ANIMATION_TRANSITION,
|
|
577
|
+
// keyframes([style({transform: 'translateY(0)'}), style({transform: 'translateY(-25%)'})]),
|
|
578
|
+
// ),
|
|
579
|
+
// ),
|
|
580
|
+
// state(
|
|
581
|
+
// 'desc-to-hint, asc-to-hint, hint, desc-to-active, asc-to-active, active',
|
|
582
|
+
// style({transform: 'translateY(0)'}),
|
|
583
|
+
// ),
|
|
584
|
+
// state('hint-to-desc, active-to-desc, desc', style({transform: 'translateY(-25%)'})),
|
|
585
|
+
// state('hint-to-asc, active-to-asc, asc', style({transform: 'translateY(25%)'})),
|
|
586
|
+
// ])
|
|
438
587
|
/**
|
|
439
588
|
* Animation for the translation of the arrow as a whole. States are separated into two
|
|
440
589
|
* groups: ones with animations and others that are immediate. Immediate states are asc, desc,
|
|
@@ -442,23 +591,117 @@ const matSortAnimations = {
|
|
|
442
591
|
* and are determined as a function of their prev user-perceived state and what the next state
|
|
443
592
|
* should be.
|
|
444
593
|
*/
|
|
445
|
-
arrowPosition:
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
594
|
+
arrowPosition: {
|
|
595
|
+
type: 7,
|
|
596
|
+
name: 'arrowPosition',
|
|
597
|
+
definitions: [
|
|
598
|
+
{
|
|
599
|
+
type: 1,
|
|
600
|
+
expr: '* => desc-to-hint, * => desc-to-active',
|
|
601
|
+
animation: {
|
|
602
|
+
type: 4,
|
|
603
|
+
styles: {
|
|
604
|
+
type: 5,
|
|
605
|
+
'steps': [
|
|
606
|
+
{ type: 6, styles: { transform: 'translateY(-25%)' }, offset: null },
|
|
607
|
+
{ type: 6, styles: { transform: 'translateY(0)' }, offset: null },
|
|
608
|
+
],
|
|
609
|
+
},
|
|
610
|
+
timings: '225ms cubic-bezier(0.4,0.0,0.2,1)',
|
|
611
|
+
},
|
|
612
|
+
options: null,
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
type: 1,
|
|
616
|
+
expr: '* => hint-to-desc, * => active-to-desc',
|
|
617
|
+
animation: {
|
|
618
|
+
type: 4,
|
|
619
|
+
styles: {
|
|
620
|
+
type: 5,
|
|
621
|
+
'steps': [
|
|
622
|
+
{ type: 6, styles: { transform: 'translateY(0)' }, offset: null },
|
|
623
|
+
{ type: 6, styles: { transform: 'translateY(25%)' }, offset: null },
|
|
624
|
+
],
|
|
625
|
+
},
|
|
626
|
+
timings: '225ms cubic-bezier(0.4,0.0,0.2,1)',
|
|
627
|
+
},
|
|
628
|
+
options: null,
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
type: 1,
|
|
632
|
+
expr: '* => asc-to-hint, * => asc-to-active',
|
|
633
|
+
animation: {
|
|
634
|
+
type: 4,
|
|
635
|
+
styles: {
|
|
636
|
+
type: 5,
|
|
637
|
+
'steps': [
|
|
638
|
+
{ type: 6, styles: { transform: 'translateY(25%)' }, offset: null },
|
|
639
|
+
{ type: 6, styles: { transform: 'translateY(0)' }, offset: null },
|
|
640
|
+
],
|
|
641
|
+
},
|
|
642
|
+
timings: '225ms cubic-bezier(0.4,0.0,0.2,1)',
|
|
643
|
+
},
|
|
644
|
+
options: null,
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
type: 1,
|
|
648
|
+
expr: '* => hint-to-asc, * => active-to-asc',
|
|
649
|
+
animation: {
|
|
650
|
+
type: 4,
|
|
651
|
+
styles: {
|
|
652
|
+
type: 5,
|
|
653
|
+
'steps': [
|
|
654
|
+
{ type: 6, styles: { transform: 'translateY(0)' }, offset: null },
|
|
655
|
+
{ type: 6, styles: { transform: 'translateY(-25%)' }, offset: null },
|
|
656
|
+
],
|
|
657
|
+
},
|
|
658
|
+
timings: '225ms cubic-bezier(0.4,0.0,0.2,1)',
|
|
659
|
+
},
|
|
660
|
+
options: null,
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
type: 0,
|
|
664
|
+
name: 'desc-to-hint, asc-to-hint, hint, desc-to-active, asc-to-active, active',
|
|
665
|
+
styles: { type: 6, styles: { transform: 'translateY(0)' }, offset: null },
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
type: 0,
|
|
669
|
+
name: 'hint-to-desc, active-to-desc, desc',
|
|
670
|
+
styles: { type: 6, styles: { transform: 'translateY(-25%)' }, offset: null },
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
type: 0,
|
|
674
|
+
name: 'hint-to-asc, active-to-asc, asc',
|
|
675
|
+
styles: { type: 6, styles: { transform: 'translateY(25%)' }, offset: null },
|
|
676
|
+
},
|
|
677
|
+
],
|
|
678
|
+
options: {},
|
|
679
|
+
},
|
|
680
|
+
// Represents:
|
|
681
|
+
// trigger('allowChildren', [
|
|
682
|
+
// transition('* <=> *', [query('@*', animateChild(), {optional: true})]),
|
|
683
|
+
// ])
|
|
458
684
|
/** Necessary trigger that calls animate on children animations. */
|
|
459
|
-
allowChildren:
|
|
460
|
-
|
|
461
|
-
|
|
685
|
+
allowChildren: {
|
|
686
|
+
type: 7,
|
|
687
|
+
name: 'allowChildren',
|
|
688
|
+
definitions: [
|
|
689
|
+
{
|
|
690
|
+
type: 1,
|
|
691
|
+
expr: '* <=> *',
|
|
692
|
+
animation: [
|
|
693
|
+
{
|
|
694
|
+
type: 11,
|
|
695
|
+
selector: '@*',
|
|
696
|
+
animation: { type: 9, options: null },
|
|
697
|
+
options: { optional: true },
|
|
698
|
+
},
|
|
699
|
+
],
|
|
700
|
+
options: null,
|
|
701
|
+
},
|
|
702
|
+
],
|
|
703
|
+
options: {},
|
|
704
|
+
},
|
|
462
705
|
};
|
|
463
706
|
|
|
464
707
|
/**
|