@angular/material 20.1.0-next.2 → 20.1.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/autocomplete/_autocomplete-theme.scss +4 -4
- package/autocomplete/_m2-autocomplete.scss +10 -22
- package/badge/_badge-theme.scss +4 -4
- package/badge/_m2-badge.scss +49 -63
- package/bottom-sheet/_bottom-sheet-theme.scss +4 -4
- package/bottom-sheet/_m2-bottom-sheet.scss +16 -30
- package/button/_button-theme.scss +4 -4
- package/button/_fab-theme.scss +4 -4
- package/button/_icon-button-theme.scss +10 -8
- package/button/_m2-button.scss +135 -154
- package/button/_m2-fab.scss +60 -69
- package/button/_m2-icon-button.scss +30 -50
- package/button/_m3-button.scss +1 -2
- package/button/_m3-fab.scss +1 -2
- package/button/_m3-icon-button.scss +1 -2
- package/button-toggle/_button-toggle-theme.scss +4 -4
- package/button-toggle/_m2-button-toggle.scss +58 -75
- package/button-toggle/_m3-button-toggle.scss +1 -2
- package/card/_card-theme.scss +4 -4
- package/card/_m2-card.scss +30 -43
- package/checkbox/_checkbox-theme.scss +10 -8
- package/checkbox/_m2-checkbox.scss +30 -41
- package/checkbox/_m3-checkbox.scss +1 -2
- package/chips/_chips-theme.scss +10 -7
- package/chips/_m2-chip.scss +40 -54
- package/chips/_m3-chip.scss +1 -2
- package/core/_core-theme.scss +4 -4
- package/core/_m2-app.scss +11 -23
- package/core/m2/_theming.scss +8 -4
- package/core/option/_m2-optgroup.scss +13 -25
- package/core/option/_m2-option.scss +16 -23
- package/core/option/_optgroup-theme.scss +4 -4
- package/core/option/_option-theme.scss +6 -6
- package/core/ripple/_m2-ripple.scss +8 -20
- package/core/ripple/_ripple-theme.scss +4 -4
- package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +14 -21
- package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +8 -8
- package/core/theming/_definition.scss +3 -1
- package/core/tokens/_m2-utils.scss +14 -6
- package/core/tokens/m3/_theme.scss +1 -1
- package/datepicker/_datepicker-theme.scss +6 -6
- package/datepicker/_m2-datepicker.scss +26 -33
- package/dialog/_dialog-theme.scss +4 -4
- package/dialog/_m2-dialog.scss +34 -46
- package/divider/_divider-theme.scss +4 -4
- package/divider/_m2-divider.scss +10 -21
- package/expansion/_expansion-theme.scss +4 -4
- package/expansion/_m2-expansion.scss +51 -67
- package/expansion/_m3-expansion.scss +1 -2
- package/fesm2022/animation-DfMFjxHu.mjs.map +1 -1
- package/fesm2022/autocomplete/testing.mjs.map +1 -1
- package/fesm2022/autocomplete.mjs.map +1 -1
- package/fesm2022/badge/testing.mjs.map +1 -1
- package/fesm2022/badge.mjs.map +1 -1
- package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2022/bottom-sheet.mjs.map +1 -1
- package/fesm2022/button/testing.mjs.map +1 -1
- package/fesm2022/button-toggle/testing.mjs.map +1 -1
- package/fesm2022/button-toggle.mjs.map +1 -1
- package/fesm2022/button.mjs.map +1 -1
- package/fesm2022/card/testing.mjs.map +1 -1
- package/fesm2022/card.mjs.map +1 -1
- package/fesm2022/checkbox/testing.mjs.map +1 -1
- package/fesm2022/checkbox.mjs.map +1 -1
- package/fesm2022/chips/testing.mjs.map +1 -1
- package/fesm2022/chips.mjs.map +1 -1
- package/fesm2022/common-module-cKSwHniA.mjs.map +1 -1
- package/fesm2022/core/testing.mjs.map +1 -1
- package/fesm2022/core.mjs +1 -1
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/date-formats-K6TQue-Y.mjs.map +1 -1
- package/fesm2022/date-range-input-harness-DEyfkeOs.mjs.map +1 -1
- package/fesm2022/datepicker/testing.mjs.map +1 -1
- package/fesm2022/datepicker.mjs.map +1 -1
- package/fesm2022/dialog/testing.mjs.map +1 -1
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/divider/testing.mjs.map +1 -1
- package/fesm2022/divider.mjs.map +1 -1
- package/fesm2022/error-options-DCNQlTOA.mjs.map +1 -1
- package/fesm2022/error-state-Dtb1IHM-.mjs.map +1 -1
- package/fesm2022/expansion/testing.mjs.map +1 -1
- package/fesm2022/expansion.mjs.map +1 -1
- package/fesm2022/form-field/testing/control.mjs.map +1 -1
- package/fesm2022/form-field/testing.mjs.map +1 -1
- package/fesm2022/form-field-CFbrnFED.mjs.map +1 -1
- package/fesm2022/form-field.mjs.map +1 -1
- package/fesm2022/grid-list/testing.mjs.map +1 -1
- package/fesm2022/grid-list.mjs.map +1 -1
- package/fesm2022/icon/testing.mjs.map +1 -1
- package/fesm2022/icon-button-DxiIc1ex.mjs.map +1 -1
- package/fesm2022/icon-registry-CwOTJ7YM.mjs.map +1 -1
- package/fesm2022/icon.mjs.map +1 -1
- package/fesm2022/index-BFRo2fUq.mjs.map +1 -1
- package/fesm2022/index-DwiL-HGk.mjs.map +1 -1
- package/fesm2022/input/testing.mjs.map +1 -1
- package/fesm2022/input-harness-C5Msdc4-.mjs.map +1 -1
- package/fesm2022/input-value-accessor-D1GvPuqO.mjs.map +1 -1
- package/fesm2022/input.mjs.map +1 -1
- package/fesm2022/internal-form-field-D5iFxU6d.mjs.map +1 -1
- package/fesm2022/line-Bz5f9Cyx.mjs.map +1 -1
- package/fesm2022/list/testing.mjs.map +1 -1
- package/fesm2022/list.mjs.map +1 -1
- package/fesm2022/material.mjs.map +1 -1
- package/fesm2022/menu/testing.mjs.map +1 -1
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/module-B0CLRw5e.mjs.map +1 -1
- package/fesm2022/module-B62K-792.mjs.map +1 -1
- package/fesm2022/module-CWxMD37a.mjs.map +1 -1
- package/fesm2022/module-Ce6F7TNm.mjs.map +1 -1
- package/fesm2022/option-BzhYL_xC.mjs.map +1 -1
- package/fesm2022/option-harness-BFcc-M_4.mjs.map +1 -1
- package/fesm2022/paginator/testing.mjs.map +1 -1
- package/fesm2022/paginator.mjs.map +1 -1
- package/fesm2022/progress-bar/testing.mjs.map +1 -1
- package/fesm2022/progress-bar.mjs.map +1 -1
- package/fesm2022/progress-spinner/testing.mjs.map +1 -1
- package/fesm2022/progress-spinner.mjs.map +1 -1
- package/fesm2022/pseudo-checkbox-DDmgx3P4.mjs.map +1 -1
- package/fesm2022/pseudo-checkbox-module-4F8Up4PL.mjs.map +1 -1
- package/fesm2022/public-api-BoO5eSq-.mjs.map +1 -1
- package/fesm2022/radio/testing.mjs.map +1 -1
- package/fesm2022/radio.mjs.map +1 -1
- package/fesm2022/ripple-BYgV4oZC.mjs.map +1 -1
- package/fesm2022/ripple-loader-BnMiRtmT.mjs.map +1 -1
- package/fesm2022/select/testing.mjs.map +1 -1
- package/fesm2022/select.mjs.map +1 -1
- package/fesm2022/sidenav/testing.mjs.map +1 -1
- package/fesm2022/sidenav.mjs +2 -4
- package/fesm2022/sidenav.mjs.map +1 -1
- package/fesm2022/slide-toggle/testing.mjs.map +1 -1
- package/fesm2022/slide-toggle.mjs.map +1 -1
- package/fesm2022/slider/testing.mjs.map +1 -1
- package/fesm2022/slider.mjs.map +1 -1
- package/fesm2022/snack-bar/testing.mjs.map +1 -1
- package/fesm2022/snack-bar.mjs.map +1 -1
- package/fesm2022/sort/testing.mjs.map +1 -1
- package/fesm2022/sort.mjs.map +1 -1
- package/fesm2022/stepper/testing.mjs.map +1 -1
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/structural-styles-CObeNzjn.mjs.map +1 -1
- package/fesm2022/table/testing.mjs.map +1 -1
- package/fesm2022/table.mjs.map +1 -1
- package/fesm2022/tabs/testing.mjs.map +1 -1
- package/fesm2022/tabs.mjs +4 -4
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/timepicker/testing.mjs.map +1 -1
- package/fesm2022/timepicker.mjs.map +1 -1
- package/fesm2022/toolbar/testing.mjs.map +1 -1
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tooltip/testing.mjs.map +1 -1
- package/fesm2022/tooltip.mjs.map +1 -1
- package/fesm2022/tree/testing.mjs.map +1 -1
- package/fesm2022/tree.mjs.map +1 -1
- package/form-field/_form-field-theme.scss +4 -4
- package/form-field/_m2-form-field.scss +125 -138
- package/form-field/_m3-form-field.scss +1 -2
- package/grid-list/_grid-list-theme.scss +4 -4
- package/grid-list/_m2-grid-list.scss +14 -25
- package/icon/_icon-theme.scss +4 -4
- package/icon/_m2-icon.scss +7 -21
- package/list/_list-theme.scss +14 -12
- package/list/_m2-list.scss +84 -98
- package/list/_m3-list.scss +1 -2
- package/menu/_m2-menu.scss +33 -46
- package/menu/_menu-theme.scss +4 -4
- package/package.json +6 -6
- package/paginator/_m2-paginator.scss +38 -57
- package/paginator/_m3-paginator.scss +1 -2
- package/paginator/_paginator-theme.scss +4 -4
- package/prebuilt-themes/deeppurple-amber.css +1 -1
- package/prebuilt-themes/indigo-pink.css +1 -1
- package/prebuilt-themes/pink-bluegrey.css +1 -1
- package/prebuilt-themes/purple-green.css +1 -1
- package/progress-bar/_m2-progress-bar.scss +11 -24
- package/progress-bar/_progress-bar-theme.scss +6 -6
- package/progress-spinner/_m2-progress-spinner.scss +9 -20
- package/progress-spinner/_progress-spinner-theme.scss +6 -6
- package/radio/_m2-radio.scss +30 -41
- package/radio/_m3-radio.scss +1 -2
- package/radio/_radio-theme.scss +6 -6
- package/schematics/ng-add/index.js +2 -2
- package/schematics/ng-generate/theme-color/schema.json +1 -1
- package/select/_m2-select.scss +23 -31
- package/select/_m3-select.scss +1 -2
- package/select/_select-theme.scss +6 -6
- package/sidenav/_m2-sidenav.scss +26 -36
- package/sidenav/_sidenav-theme.scss +4 -4
- package/slide-toggle/_m2-slide-toggle.scss +94 -113
- package/slide-toggle/_slide-toggle-theme.scss +6 -6
- package/slider/_m2-slider.scss +34 -52
- package/slider/_slider-theme.scss +4 -4
- package/snack-bar/_m2-snack-bar.scss +16 -36
- package/snack-bar/_snack-bar-theme.scss +4 -4
- package/sort/_m2-sort.scss +7 -18
- package/sort/_sort-theme.scss +4 -4
- package/stepper/_m2-stepper.scss +39 -54
- package/stepper/_m3-stepper.scss +1 -2
- package/stepper/_stepper-theme.scss +4 -4
- package/table/_m2-table.scss +54 -65
- package/table/_m3-table.scss +1 -2
- package/table/_table-theme.scss +4 -4
- package/tabs/_m2-tabs.scss +31 -47
- package/tabs/_m3-tabs.scss +1 -2
- package/tabs/_tabs-theme.scss +9 -9
- package/timepicker/_m2-timepicker.scss +10 -22
- package/timepicker/_timepicker-theme.scss +4 -4
- package/toolbar/_m2-toolbar.scss +26 -45
- package/toolbar/_m3-toolbar.scss +1 -2
- package/toolbar/_toolbar-theme.scss +4 -4
- package/tooltip/_m2-tooltip.scss +16 -33
- package/tooltip/_tooltip-theme.scss +4 -4
- package/tree/_m2-tree.scss +21 -39
- package/tree/_m3-tree.scss +1 -2
- package/tree/_tree-theme.scss +4 -4
package/fesm2022/tree.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.mjs","sources":["../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/node.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/padding.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/outlet.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/tree.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/toggle.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/tree-module.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/data-source/flat-data-source.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/tree/data-source/nested-data-source.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n CDK_TREE_NODE_OUTLET_NODE,\n CdkNestedTreeNode,\n CdkTreeNode,\n CdkTreeNodeDef,\n} from '@angular/cdk/tree';\nimport {\n AfterContentInit,\n Directive,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n numberAttribute,\n inject,\n HostAttributeToken,\n} from '@angular/core';\nimport {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from '@angular/cdk/a11y';\n\n/**\n * Determinte if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.\n */\nfunction isNoopTreeKeyManager<T extends TreeKeyManagerItem>(\n keyManager: TreeKeyManagerStrategy<T>,\n): keyManager is NoopTreeKeyManager<T> {\n return !!(keyManager as any)._isNoopTreeKeyManager;\n}\n\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\n@Directive({\n selector: 'mat-tree-node',\n exportAs: 'matTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}],\n host: {\n 'class': 'mat-tree-node',\n '[attr.aria-expanded]': '_getAriaExpanded()',\n '[attr.aria-level]': 'level + 1',\n '[attr.aria-posinset]': '_getPositionInSet()',\n '[attr.aria-setsize]': '_getSetSize()',\n '(click)': '_focusItem()',\n '[tabindex]': '_getTabindexAttribute()',\n },\n})\nexport class MatTreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n /**\n * The tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n alias: 'tabIndex',\n })\n get tabIndexInputBinding(): number {\n return this._tabIndexInputBinding;\n }\n set tabIndexInputBinding(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndexInputBinding = value;\n }\n private _tabIndexInputBinding: number;\n\n /**\n * The default tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n defaultTabIndex = 0;\n\n protected _getTabindexAttribute() {\n if (isNoopTreeKeyManager(this._tree._keyManager)) {\n return this.tabIndexInputBinding;\n }\n return this._tabindex;\n }\n\n /**\n * Whether the component is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\n }\n\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n * Captures the node's template and a when predicate that describes when this node should be used.\n */\n@Directive({\n selector: '[matTreeNodeDef]',\n inputs: [{name: 'when', alias: 'matTreeNodeDefWhen'}],\n providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}],\n})\nexport class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n @Input('matTreeNode') data: T;\n}\n\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\n@Directive({\n selector: 'mat-nested-tree-node',\n exportAs: 'matNestedTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [\n {provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},\n {provide: CdkTreeNode, useExisting: MatNestedTreeNode},\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode},\n ],\n host: {\n 'class': 'mat-nested-tree-node',\n },\n})\nexport class MatNestedTreeNode<T, K = T>\n extends CdkNestedTreeNode<T, K>\n implements AfterContentInit, OnDestroy, OnInit\n{\n @Input('matNestedTreeNode') node: T;\n\n /**\n * Whether the node is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n /** Tabindex of the node. */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n })\n get tabIndex(): number {\n return this.isDisabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value;\n }\n private _tabIndex: number;\n\n // This is a workaround for https://github.com/angular/angular/issues/19145\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #19145 is fixed\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {CdkTreeNodePadding} from '@angular/cdk/tree';\nimport {Directive, Input, numberAttribute} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodePadding]',\n providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}],\n})\nexport class MatTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n @Input({alias: 'matTreeNodePadding', transform: numberAttribute})\n override get level(): number {\n return this._level;\n }\n override set level(value: number) {\n this._setLevelInput(value);\n }\n\n /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n @Input('matTreeNodePaddingIndent')\n override get indent(): number | string {\n return this._indent;\n }\n override set indent(indent: number | string) {\n this._setIndentInput(indent);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\nimport {Directive, ViewContainerRef, inject} from '@angular/core';\n\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\n@Directive({\n selector: '[matTreeNodeOutlet]',\n providers: [\n {\n provide: CdkTreeNodeOutlet,\n useExisting: MatTreeNodeOutlet,\n },\n ],\n})\nexport class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n viewContainer = inject(ViewContainerRef);\n _node = inject(CDK_TREE_NODE_OUTLET_NODE, {optional: true});\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkTree} from '@angular/cdk/tree';\nimport {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {MatTreeNodeOutlet} from './outlet';\n\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\n@Component({\n selector: 'mat-tree',\n exportAs: 'matTree',\n template: `<ng-container matTreeNodeOutlet></ng-container>`,\n host: {\n 'class': 'mat-tree',\n },\n styleUrl: 'tree.css',\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{provide: CdkTree, useExisting: MatTree}],\n imports: [MatTreeNodeOutlet],\n})\nexport class MatTree<T, K = T> extends CdkTree<T, K> {\n // Outlets within the tree's template where the dataNodes will be inserted.\n // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n @ViewChild(MatTreeNodeOutlet, {static: true}) override _nodeOutlet: MatTreeNodeOutlet =\n undefined!;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkTreeNodeToggle} from '@angular/cdk/tree';\nimport {Directive} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeToggle]',\n providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}],\n inputs: [{name: 'recursive', alias: 'matTreeNodeToggleRecursive'}],\n})\nexport class MatTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatCommonModule} from '../core';\nimport {MatNestedTreeNode, MatTreeNodeDef, MatTreeNode} from './node';\nimport {MatTree} from './tree';\nimport {MatTreeNodeToggle} from './toggle';\nimport {MatTreeNodeOutlet} from './outlet';\nimport {MatTreeNodePadding} from './padding';\n\nconst MAT_TREE_DIRECTIVES = [\n MatNestedTreeNode,\n MatTreeNodeDef,\n MatTreeNodePadding,\n MatTreeNodeToggle,\n MatTree,\n MatTreeNode,\n MatTreeNodeOutlet,\n];\n\n@NgModule({\n imports: [CdkTreeModule, MatCommonModule, ...MAT_TREE_DIRECTIVES],\n exports: [MatCommonModule, MAT_TREE_DIRECTIVES],\n})\nexport class MatTreeModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n *\n * @deprecated Use MatTree#childrenAccessor and MatTreeNode#isExpandable\n * instead. To be removed in a future version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlattener<T, F, K = F> {\n constructor(\n public transformFunction: (node: T, level: number) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null,\n ) {}\n\n _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\n const flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n } else {\n childrenNodes.pipe(take(1)).subscribe(children => {\n this._flattenChildren(children, level, resultNodes, parentMap);\n });\n }\n }\n }\n return resultNodes;\n }\n\n _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\n children.forEach((child, index) => {\n let childParentMap: boolean[] = parentMap.slice();\n childParentMap.push(index != children.length - 1);\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n let resultNodes: F[] = [];\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\n return resultNodes;\n }\n\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n let results: F[] = [];\n let currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach(node => {\n let expand = true;\n for (let i = 0; i <= this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (this.isExpandable(node)) {\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n });\n return results;\n }\n}\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n *\n * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future\n * version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n private readonly _flattenedData = new BehaviorSubject<F[]>([]);\n private readonly _expandedData = new BehaviorSubject<F[]>([]);\n\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n this._treeControl.dataNodes = this._flattenedData.value;\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n constructor(\n private _treeControl: FlatTreeControl<F, K>,\n private _treeFlattener: MatTreeFlattener<T, F, K>,\n initialData?: T[],\n ) {\n super();\n\n if (initialData) {\n // Assign the data through the constructor to ensure that all of the logic is executed.\n this.data = initialData;\n }\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n return merge(\n collectionViewer.viewChange,\n this._treeControl.expansionModel.changed,\n this._flattenedData,\n ).pipe(\n map(() => {\n this._expandedData.next(\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl),\n );\n return this._expandedData.value;\n }),\n );\n }\n\n disconnect() {\n // no op\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class MatTreeNestedDataSource<T> extends DataSource<T> {\n /**\n * Data for the nested tree\n */\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(...([collectionViewer.viewChange, this._data] as Observable<unknown>[])).pipe(\n map(() => this.data),\n );\n }\n\n disconnect() {\n // no op\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/node.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/padding.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/outlet.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/tree.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/toggle.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/tree-module.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/data-source/flat-data-source.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/tree/data-source/nested-data-source.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n CDK_TREE_NODE_OUTLET_NODE,\n CdkNestedTreeNode,\n CdkTreeNode,\n CdkTreeNodeDef,\n} from '@angular/cdk/tree';\nimport {\n AfterContentInit,\n Directive,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n numberAttribute,\n inject,\n HostAttributeToken,\n} from '@angular/core';\nimport {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from '@angular/cdk/a11y';\n\n/**\n * Determinte if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.\n */\nfunction isNoopTreeKeyManager<T extends TreeKeyManagerItem>(\n keyManager: TreeKeyManagerStrategy<T>,\n): keyManager is NoopTreeKeyManager<T> {\n return !!(keyManager as any)._isNoopTreeKeyManager;\n}\n\n/**\n * Wrapper for the CdkTree node with Material design styles.\n */\n@Directive({\n selector: 'mat-tree-node',\n exportAs: 'matTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}],\n host: {\n 'class': 'mat-tree-node',\n '[attr.aria-expanded]': '_getAriaExpanded()',\n '[attr.aria-level]': 'level + 1',\n '[attr.aria-posinset]': '_getPositionInSet()',\n '[attr.aria-setsize]': '_getSetSize()',\n '(click)': '_focusItem()',\n '[tabindex]': '_getTabindexAttribute()',\n },\n})\nexport class MatTreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n /**\n * The tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n alias: 'tabIndex',\n })\n get tabIndexInputBinding(): number {\n return this._tabIndexInputBinding;\n }\n set tabIndexInputBinding(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndexInputBinding = value;\n }\n private _tabIndexInputBinding: number;\n\n /**\n * The default tabindex of the tree node.\n *\n * @deprecated By default MatTreeNode manages focus using TreeKeyManager instead of tabIndex.\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\n * an unexpected state. Tabindex to be removed in a future version.\n * @breaking-change 21.0.0 Remove this attribute.\n */\n defaultTabIndex = 0;\n\n protected _getTabindexAttribute() {\n if (isNoopTreeKeyManager(this._tree._keyManager)) {\n return this.tabIndexInputBinding;\n }\n return this._tabindex;\n }\n\n /**\n * Whether the component is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\n }\n\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n * Captures the node's template and a when predicate that describes when this node should be used.\n */\n@Directive({\n selector: '[matTreeNodeDef]',\n inputs: [{name: 'when', alias: 'matTreeNodeDefWhen'}],\n providers: [{provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef}],\n})\nexport class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n @Input('matTreeNode') data: T;\n}\n\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n */\n@Directive({\n selector: 'mat-nested-tree-node',\n exportAs: 'matNestedTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [\n {provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},\n {provide: CdkTreeNode, useExisting: MatNestedTreeNode},\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode},\n ],\n host: {\n 'class': 'mat-nested-tree-node',\n },\n})\nexport class MatNestedTreeNode<T, K = T>\n extends CdkNestedTreeNode<T, K>\n implements AfterContentInit, OnDestroy, OnInit\n{\n @Input('matNestedTreeNode') node: T;\n\n /**\n * Whether the node is disabled.\n *\n * @deprecated This is an alias for `isDisabled`.\n * @breaking-change 21.0.0 Remove this input\n */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n /** Tabindex of the node. */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n })\n get tabIndex(): number {\n return this.isDisabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value;\n }\n private _tabIndex: number;\n\n // This is a workaround for https://github.com/angular/angular/issues/19145\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #19145 is fixed\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {CdkTreeNodePadding} from '@angular/cdk/tree';\nimport {Directive, Input, numberAttribute} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodePadding]',\n providers: [{provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding}],\n})\nexport class MatTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n @Input({alias: 'matTreeNodePadding', transform: numberAttribute})\n override get level(): number {\n return this._level;\n }\n override set level(value: number) {\n this._setLevelInput(value);\n }\n\n /** The indent for each level. Default number 40px from material design menu sub-menu spec. */\n @Input('matTreeNodePaddingIndent')\n override get indent(): number | string {\n return this._indent;\n }\n override set indent(indent: number | string) {\n this._setIndentInput(indent);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\nimport {Directive, ViewContainerRef, inject} from '@angular/core';\n\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\n@Directive({\n selector: '[matTreeNodeOutlet]',\n providers: [\n {\n provide: CdkTreeNodeOutlet,\n useExisting: MatTreeNodeOutlet,\n },\n ],\n})\nexport class MatTreeNodeOutlet implements CdkTreeNodeOutlet {\n viewContainer = inject(ViewContainerRef);\n _node = inject(CDK_TREE_NODE_OUTLET_NODE, {optional: true});\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkTree} from '@angular/cdk/tree';\nimport {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {MatTreeNodeOutlet} from './outlet';\n\n/**\n * Wrapper for the CdkTable with Material design styles.\n */\n@Component({\n selector: 'mat-tree',\n exportAs: 'matTree',\n template: `<ng-container matTreeNodeOutlet></ng-container>`,\n host: {\n 'class': 'mat-tree',\n },\n styleUrl: 'tree.css',\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{provide: CdkTree, useExisting: MatTree}],\n imports: [MatTreeNodeOutlet],\n})\nexport class MatTree<T, K = T> extends CdkTree<T, K> {\n // Outlets within the tree's template where the dataNodes will be inserted.\n // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n @ViewChild(MatTreeNodeOutlet, {static: true}) override _nodeOutlet: MatTreeNodeOutlet =\n undefined!;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkTreeNodeToggle} from '@angular/cdk/tree';\nimport {Directive} from '@angular/core';\n\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n */\n@Directive({\n selector: '[matTreeNodeToggle]',\n providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}],\n inputs: [{name: 'recursive', alias: 'matTreeNodeToggleRecursive'}],\n})\nexport class MatTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {MatCommonModule} from '../core';\nimport {MatNestedTreeNode, MatTreeNodeDef, MatTreeNode} from './node';\nimport {MatTree} from './tree';\nimport {MatTreeNodeToggle} from './toggle';\nimport {MatTreeNodeOutlet} from './outlet';\nimport {MatTreeNodePadding} from './padding';\n\nconst MAT_TREE_DIRECTIVES = [\n MatNestedTreeNode,\n MatTreeNodeDef,\n MatTreeNodePadding,\n MatTreeNodeToggle,\n MatTree,\n MatTreeNode,\n MatTreeNodeOutlet,\n];\n\n@NgModule({\n imports: [CdkTreeModule, MatCommonModule, ...MAT_TREE_DIRECTIVES],\n exports: [MatCommonModule, MAT_TREE_DIRECTIVES],\n})\nexport class MatTreeModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n *\n * @deprecated Use MatTree#childrenAccessor and MatTreeNode#isExpandable\n * instead. To be removed in a future version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlattener<T, F, K = F> {\n constructor(\n public transformFunction: (node: T, level: number) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null,\n ) {}\n\n _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\n const flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n } else {\n childrenNodes.pipe(take(1)).subscribe(children => {\n this._flattenChildren(children, level, resultNodes, parentMap);\n });\n }\n }\n }\n return resultNodes;\n }\n\n _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\n children.forEach((child, index) => {\n let childParentMap: boolean[] = parentMap.slice();\n childParentMap.push(index != children.length - 1);\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n let resultNodes: F[] = [];\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\n return resultNodes;\n }\n\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n let results: F[] = [];\n let currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach(node => {\n let expand = true;\n for (let i = 0; i <= this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (this.isExpandable(node)) {\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n });\n return results;\n }\n}\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n *\n * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future\n * version.\n * @breaking-change 21.0.0\n */\nexport class MatTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n private readonly _flattenedData = new BehaviorSubject<F[]>([]);\n private readonly _expandedData = new BehaviorSubject<F[]>([]);\n\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n this._treeControl.dataNodes = this._flattenedData.value;\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n constructor(\n private _treeControl: FlatTreeControl<F, K>,\n private _treeFlattener: MatTreeFlattener<T, F, K>,\n initialData?: T[],\n ) {\n super();\n\n if (initialData) {\n // Assign the data through the constructor to ensure that all of the logic is executed.\n this.data = initialData;\n }\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n return merge(\n collectionViewer.viewChange,\n this._treeControl.expansionModel.changed,\n this._flattenedData,\n ).pipe(\n map(() => {\n this._expandedData.next(\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl),\n );\n return this._expandedData.value;\n }),\n );\n }\n\n disconnect() {\n // no op\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class MatTreeNestedDataSource<T> extends DataSource<T> {\n /**\n * Data for the nested tree\n */\n get data() {\n return this._data.value;\n }\n set data(value: T[]) {\n this._data.next(value);\n }\n private readonly _data = new BehaviorSubject<T[]>([]);\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(...([collectionViewer.viewChange, this._data] as Observable<unknown>[])).pipe(\n map(() => this.data),\n );\n }\n\n disconnect() {\n // no op\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@use 'sass:map';
|
|
7
7
|
|
|
8
8
|
@mixin base($theme) {
|
|
9
|
-
$tokens: m2-form-field.get-
|
|
9
|
+
$tokens: map.get(m2-form-field.get-tokens($theme), base);
|
|
10
10
|
@if inspection.get-theme-version($theme) == 1 {
|
|
11
11
|
$tokens: map.get(m3-form-field.get-tokens($theme), base);
|
|
12
12
|
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
/// @param {Map} $theme The theme to generate color styles for.
|
|
19
19
|
/// @param {String} $color-variant The color variant to use for the component (M3 only)
|
|
20
20
|
@mixin color($theme, $color-variant: null) {
|
|
21
|
-
$tokens: m2-form-field.get-
|
|
21
|
+
$tokens: map.get(m2-form-field.get-tokens($theme), color);
|
|
22
22
|
@if inspection.get-theme-version($theme) == 1 {
|
|
23
23
|
$tokens: map.get(m3-form-field.get-tokens($theme, $color-variant), color);
|
|
24
24
|
}
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
@mixin typography($theme) {
|
|
42
|
-
$tokens: m2-form-field.get-
|
|
42
|
+
$tokens: map.get(m2-form-field.get-tokens($theme), typography);
|
|
43
43
|
@if inspection.get-theme-version($theme) == 1 {
|
|
44
44
|
$tokens: map.get(m3-form-field.get-tokens($theme), typography);
|
|
45
45
|
}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
@mixin density($theme) {
|
|
51
|
-
$tokens: m2-form-field.get-
|
|
51
|
+
$tokens: map.get(m2-form-field.get-tokens($theme), density);
|
|
52
52
|
@if inspection.get-theme-version($theme) == 1 {
|
|
53
53
|
$tokens: map.get(m3-form-field.get-tokens($theme), density);
|
|
54
54
|
}
|
|
@@ -8,107 +8,133 @@
|
|
|
8
8
|
@use 'sass:math';
|
|
9
9
|
@use 'sass:meta';
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
// but may be in a future version of the theming API.
|
|
13
|
-
@function get-unthemable-tokens() {
|
|
14
|
-
@return (
|
|
15
|
-
form-field-filled-active-indicator-height: 1px,
|
|
16
|
-
form-field-filled-focus-active-indicator-height: 2px,
|
|
17
|
-
form-field-filled-container-shape: 4px,
|
|
18
|
-
form-field-outlined-outline-width: 1px,
|
|
19
|
-
form-field-outlined-focus-outline-width: 2px,
|
|
20
|
-
form-field-outlined-container-shape: 4px,
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Tokens that can be configured through Angular Material's color theming API.
|
|
25
|
-
@function get-color-tokens($theme) {
|
|
11
|
+
@function get-tokens($theme) {
|
|
26
12
|
$system: m2-utils.get-system($theme);
|
|
27
|
-
|
|
28
|
-
$is-dark: inspection.get-theme-type($theme) == dark;
|
|
29
|
-
$surface: map.get($system, surface);
|
|
30
|
-
$color-tokens: private-get-color-palette-color-tokens($theme, primary);
|
|
31
13
|
$disabled: m3-utils.color-with-opacity(map.get($system, on-surface), 38%);
|
|
32
14
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
form-field-error-text-color: map.get($system, error),
|
|
38
|
-
|
|
39
|
-
// On dark themes we set the native `select` color to some shade of white,
|
|
40
|
-
// however the color propagates to all of the `option` elements, which are
|
|
41
|
-
// always on a white background inside the dropdown, causing them to blend in.
|
|
42
|
-
// Since we can't change background of the dropdown, we need to explicitly
|
|
43
|
-
// reset the color of the options to something dark.
|
|
44
|
-
form-field-select-option-text-color: if($is-dark, m2-palette.$dark-primary-text, inherit),
|
|
45
|
-
// Note the spelling of the `GrayText` here which is a system color. See:
|
|
46
|
-
// https://developer.mozilla.org/en-US/docs/Web/CSS/system-color
|
|
47
|
-
form-field-select-disabled-option-text-color:
|
|
48
|
-
if($is-dark, m2-palette.$dark-disabled-text, GrayText),
|
|
49
|
-
|
|
50
|
-
// These tokens are necessary for M3. MDC has them built in already, but:
|
|
51
|
-
// 1. They are too specific, breaking a lot of internal clients.
|
|
52
|
-
// 2. The larger selectors result in a larger bundle.
|
|
53
|
-
// Note: MDC has tokens for all the various states of the icons. Some of them are ommitted,
|
|
54
|
-
// because they resolve to the same value (e.g. focus and base states for the leading icon
|
|
55
|
-
// are the same).
|
|
56
|
-
form-field-leading-icon-color: unset,
|
|
57
|
-
form-field-disabled-leading-icon-color: unset,
|
|
58
|
-
form-field-trailing-icon-color: unset,
|
|
59
|
-
form-field-disabled-trailing-icon-color: unset,
|
|
60
|
-
form-field-error-focus-trailing-icon-color: unset,
|
|
61
|
-
form-field-error-hover-trailing-icon-color: unset,
|
|
62
|
-
form-field-error-trailing-icon-color: unset,
|
|
63
|
-
form-field-enabled-select-arrow-color: map.get($system, on-surface-variant),
|
|
64
|
-
form-field-disabled-select-arrow-color: $disabled,
|
|
65
|
-
form-field-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
|
|
66
|
-
form-field-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
|
|
67
|
-
form-field-filled-container-color: map.get($system, surface-variant),
|
|
68
|
-
form-field-filled-disabled-container-color:
|
|
69
|
-
m3-utils.color-with-opacity(map.get($system, on-surface), 4%),
|
|
70
|
-
form-field-filled-label-text-color: map.get($system, on-surface-variant),
|
|
71
|
-
form-field-filled-hover-label-text-color: map.get($system, on-surface-variant),
|
|
72
|
-
form-field-filled-disabled-label-text-color: $disabled,
|
|
73
|
-
form-field-filled-input-text-color: map.get($system, on-surface),
|
|
74
|
-
form-field-filled-disabled-input-text-color: $disabled,
|
|
75
|
-
form-field-filled-input-text-placeholder-color: map.get($system, on-surface-variant),
|
|
76
|
-
form-field-filled-error-hover-label-text-color: map.get($system, error),
|
|
77
|
-
form-field-filled-error-focus-label-text-color: map.get($system, error),
|
|
78
|
-
form-field-filled-error-label-text-color: map.get($system, error),
|
|
79
|
-
form-field-filled-error-caret-color: map.get($system, error),
|
|
80
|
-
form-field-filled-active-indicator-color: map.get($system, on-surface-variant),
|
|
81
|
-
form-field-filled-disabled-active-indicator-color:
|
|
82
|
-
m3-utils.color-with-opacity(map.get($system, on-surface), 12%),
|
|
83
|
-
form-field-filled-hover-active-indicator-color: map.get($system, on-surface),
|
|
84
|
-
form-field-filled-error-active-indicator-color: map.get($system, error),
|
|
85
|
-
form-field-filled-error-focus-active-indicator-color: map.get($system, error),
|
|
86
|
-
form-field-filled-error-hover-active-indicator-color: map.get($system, error),
|
|
87
|
-
form-field-outlined-label-text-color: map.get($system, on-surface-variant),
|
|
88
|
-
form-field-outlined-hover-label-text-color: map.get($system, on-surface),
|
|
89
|
-
form-field-outlined-disabled-label-text-color: $disabled,
|
|
90
|
-
form-field-outlined-input-text-color: map.get($system, on-surface),
|
|
91
|
-
form-field-outlined-disabled-input-text-color: $disabled,
|
|
92
|
-
form-field-outlined-input-text-placeholder-color: map.get($system, on-surface-variant),
|
|
93
|
-
form-field-outlined-error-caret-color: map.get($system, error),
|
|
94
|
-
form-field-outlined-error-focus-label-text-color: map.get($system, error),
|
|
95
|
-
form-field-outlined-error-label-text-color: map.get($system, error),
|
|
96
|
-
form-field-outlined-error-hover-label-text-color: map.get($system, error),
|
|
97
|
-
form-field-outlined-outline-color: map.get($system, outline-variant),
|
|
98
|
-
form-field-outlined-disabled-outline-color:
|
|
99
|
-
m3-utils.color-with-opacity(map.get($system, on-surface), 12%),
|
|
100
|
-
form-field-outlined-hover-outline-color: map.get($system, on-surface),
|
|
101
|
-
form-field-outlined-error-focus-outline-color: map.get($system, error),
|
|
102
|
-
form-field-outlined-error-hover-outline-color: map.get($system, error),
|
|
103
|
-
form-field-outlined-error-outline-color: map.get($system, error),
|
|
104
|
-
));
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
@function _variable-safe-mix($first-color, $second-color, $amount) {
|
|
108
|
-
@if (meta.type-of($first-color) == color and meta.type-of($second-color) == color) {
|
|
109
|
-
@return color.mix($first-color, $second-color, $amount);
|
|
15
|
+
// TODO: Use system colors instead of checking theme type
|
|
16
|
+
$is-dark: false;
|
|
17
|
+
@if (meta.type-of($theme) == map and map.get($theme, color)) {
|
|
18
|
+
$is-dark: inspection.get-theme-type($theme) == dark;
|
|
110
19
|
}
|
|
111
|
-
|
|
20
|
+
|
|
21
|
+
@return (
|
|
22
|
+
base: (
|
|
23
|
+
form-field-filled-active-indicator-height: 1px,
|
|
24
|
+
form-field-filled-focus-active-indicator-height: 2px,
|
|
25
|
+
form-field-filled-container-shape: 4px,
|
|
26
|
+
form-field-outlined-outline-width: 1px,
|
|
27
|
+
form-field-outlined-focus-outline-width: 2px,
|
|
28
|
+
form-field-outlined-container-shape: 4px,
|
|
29
|
+
),
|
|
30
|
+
color: map.merge(private-get-color-palette-color-tokens($theme, primary), (
|
|
31
|
+
// MDC has a token for the enabled placeholder, but not for the disabled one.
|
|
32
|
+
form-field-disabled-input-text-placeholder-color: $disabled,
|
|
33
|
+
form-field-state-layer-color: map.get($system, on-surface),
|
|
34
|
+
form-field-error-text-color: map.get($system, error),
|
|
35
|
+
|
|
36
|
+
// On dark themes we set the native `select` color to some shade of white,
|
|
37
|
+
// however the color propagates to all of the `option` elements, which are
|
|
38
|
+
// always on a white background inside the dropdown, causing them to blend in.
|
|
39
|
+
// Since we can't change background of the dropdown, we need to explicitly
|
|
40
|
+
// reset the color of the options to something dark.
|
|
41
|
+
form-field-select-option-text-color: if($is-dark, m2-palette.$dark-primary-text, inherit),
|
|
42
|
+
// Note the spelling of the `GrayText` here which is a system color. See:
|
|
43
|
+
// https://developer.mozilla.org/en-US/docs/Web/CSS/system-color
|
|
44
|
+
form-field-select-disabled-option-text-color:
|
|
45
|
+
if($is-dark, m2-palette.$dark-disabled-text, GrayText),
|
|
46
|
+
|
|
47
|
+
// These tokens are necessary for M3. MDC has them built in already, but:
|
|
48
|
+
// 1. They are too specific, breaking a lot of internal clients.
|
|
49
|
+
// 2. The larger selectors result in a larger bundle.
|
|
50
|
+
// Note: MDC has tokens for all the various states of the icons. Some of them are ommitted,
|
|
51
|
+
// because they resolve to the same value (e.g. focus and base states for the leading icon
|
|
52
|
+
// are the same).
|
|
53
|
+
form-field-leading-icon-color: unset,
|
|
54
|
+
form-field-disabled-leading-icon-color: unset,
|
|
55
|
+
form-field-trailing-icon-color: unset,
|
|
56
|
+
form-field-disabled-trailing-icon-color: unset,
|
|
57
|
+
form-field-error-focus-trailing-icon-color: unset,
|
|
58
|
+
form-field-error-hover-trailing-icon-color: unset,
|
|
59
|
+
form-field-error-trailing-icon-color: unset,
|
|
60
|
+
form-field-enabled-select-arrow-color: map.get($system, on-surface-variant),
|
|
61
|
+
form-field-disabled-select-arrow-color: $disabled,
|
|
62
|
+
form-field-hover-state-layer-opacity: map.get($system, hover-state-layer-opacity),
|
|
63
|
+
form-field-focus-state-layer-opacity: map.get($system, focus-state-layer-opacity),
|
|
64
|
+
form-field-filled-container-color: map.get($system, surface-variant),
|
|
65
|
+
form-field-filled-disabled-container-color:
|
|
66
|
+
m3-utils.color-with-opacity(map.get($system, on-surface), 4%),
|
|
67
|
+
form-field-filled-label-text-color: map.get($system, on-surface-variant),
|
|
68
|
+
form-field-filled-hover-label-text-color: map.get($system, on-surface-variant),
|
|
69
|
+
form-field-filled-disabled-label-text-color: $disabled,
|
|
70
|
+
form-field-filled-input-text-color: map.get($system, on-surface),
|
|
71
|
+
form-field-filled-disabled-input-text-color: $disabled,
|
|
72
|
+
form-field-filled-input-text-placeholder-color: map.get($system, on-surface-variant),
|
|
73
|
+
form-field-filled-error-hover-label-text-color: map.get($system, error),
|
|
74
|
+
form-field-filled-error-focus-label-text-color: map.get($system, error),
|
|
75
|
+
form-field-filled-error-label-text-color: map.get($system, error),
|
|
76
|
+
form-field-filled-error-caret-color: map.get($system, error),
|
|
77
|
+
form-field-filled-active-indicator-color: map.get($system, on-surface-variant),
|
|
78
|
+
form-field-filled-disabled-active-indicator-color:
|
|
79
|
+
m3-utils.color-with-opacity(map.get($system, on-surface), 12%),
|
|
80
|
+
form-field-filled-hover-active-indicator-color: map.get($system, on-surface),
|
|
81
|
+
form-field-filled-error-active-indicator-color: map.get($system, error),
|
|
82
|
+
form-field-filled-error-focus-active-indicator-color: map.get($system, error),
|
|
83
|
+
form-field-filled-error-hover-active-indicator-color: map.get($system, error),
|
|
84
|
+
form-field-outlined-label-text-color: map.get($system, on-surface-variant),
|
|
85
|
+
form-field-outlined-hover-label-text-color: map.get($system, on-surface),
|
|
86
|
+
form-field-outlined-disabled-label-text-color: $disabled,
|
|
87
|
+
form-field-outlined-input-text-color: map.get($system, on-surface),
|
|
88
|
+
form-field-outlined-disabled-input-text-color: $disabled,
|
|
89
|
+
form-field-outlined-input-text-placeholder-color: map.get($system, on-surface-variant),
|
|
90
|
+
form-field-outlined-error-caret-color: map.get($system, error),
|
|
91
|
+
form-field-outlined-error-focus-label-text-color: map.get($system, error),
|
|
92
|
+
form-field-outlined-error-label-text-color: map.get($system, error),
|
|
93
|
+
form-field-outlined-error-hover-label-text-color: map.get($system, error),
|
|
94
|
+
form-field-outlined-outline-color: map.get($system, outline-variant),
|
|
95
|
+
form-field-outlined-disabled-outline-color:
|
|
96
|
+
m3-utils.color-with-opacity(map.get($system, on-surface), 12%),
|
|
97
|
+
form-field-outlined-hover-outline-color: map.get($system, on-surface),
|
|
98
|
+
form-field-outlined-error-focus-outline-color: map.get($system, error),
|
|
99
|
+
form-field-outlined-error-hover-outline-color: map.get($system, error),
|
|
100
|
+
form-field-outlined-error-outline-color: map.get($system, error),
|
|
101
|
+
)),
|
|
102
|
+
typography: (
|
|
103
|
+
// MDC uses `subtitle1` for the input value, placeholder and floating label. The spec
|
|
104
|
+
// shows `body1` for text fields though, so we manually override the typography.
|
|
105
|
+
// Note: Form controls inherit the typography from the parent form field.
|
|
106
|
+
form-field-container-text-font: map.get($system, body-large-font),
|
|
107
|
+
form-field-container-text-line-height: map.get($system, body-large-line-height),
|
|
108
|
+
form-field-container-text-size: map.get($system, body-large-size),
|
|
109
|
+
form-field-container-text-tracking: map.get($system, body-large-tracking),
|
|
110
|
+
form-field-container-text-weight: map.get($system, body-large-weight),
|
|
111
|
+
|
|
112
|
+
// In container styles, we updated the floating label to use the `body-1` typography level.
|
|
113
|
+
// The MDC notched outline overrides this accidentally (only when the label floats) to a
|
|
114
|
+
// `rem`-based value. This results in different label widths when floated/docked and then
|
|
115
|
+
// breaks the notch width as it has been measured in the docked state (where `body-1` is
|
|
116
|
+
// applied). We try to unset these styles set by the `mdc-notched-outline`:
|
|
117
|
+
// https://github.com/material-components/material-components-web/blob/master/packages/mdc-notched-outline/_mixins.scss#L272-L292.
|
|
118
|
+
// This is why we can't use their `label-text-populated-size` token and we have to declare
|
|
119
|
+
// our own version of it.
|
|
120
|
+
form-field-outlined-label-text-populated-size: map.get($system, body-large-size),
|
|
121
|
+
|
|
122
|
+
form-field-subscript-text-font: map.get($system, body-small-font),
|
|
123
|
+
form-field-subscript-text-line-height: map.get($system, body-small-line-height),
|
|
124
|
+
form-field-subscript-text-size: map.get($system, body-small-size),
|
|
125
|
+
form-field-subscript-text-tracking: map.get($system, body-small-tracking),
|
|
126
|
+
form-field-subscript-text-weight: map.get($system, body-small-weight),
|
|
127
|
+
form-field-filled-label-text-font: map.get($system, body-large-font),
|
|
128
|
+
form-field-filled-label-text-size: map.get($system, body-large-size),
|
|
129
|
+
form-field-filled-label-text-tracking: map.get($system, body-large-tracking),
|
|
130
|
+
form-field-filled-label-text-weight: map.get($system, body-large-weight),
|
|
131
|
+
form-field-outlined-label-text-font: map.get($system, body-large-font),
|
|
132
|
+
form-field-outlined-label-text-size: map.get($system, body-large-size),
|
|
133
|
+
form-field-outlined-label-text-tracking: map.get($system, body-large-tracking),
|
|
134
|
+
form-field-outlined-label-text-weight: map.get($system, body-large-weight),
|
|
135
|
+
),
|
|
136
|
+
density: get-density-tokens($theme),
|
|
137
|
+
);
|
|
112
138
|
}
|
|
113
139
|
|
|
114
140
|
// Generates the mapping for the properties that change based on the form field color.
|
|
@@ -130,49 +156,10 @@
|
|
|
130
156
|
);
|
|
131
157
|
}
|
|
132
158
|
|
|
133
|
-
// Tokens that can be configured through Angular Material's typography theming API.
|
|
134
|
-
@function get-typography-tokens($theme) {
|
|
135
|
-
$system: m2-utils.get-system($theme);
|
|
136
|
-
@return (
|
|
137
|
-
// MDC uses `subtitle1` for the input value, placeholder and floating label. The spec
|
|
138
|
-
// shows `body1` for text fields though, so we manually override the typography.
|
|
139
|
-
// Note: Form controls inherit the typography from the parent form field.
|
|
140
|
-
form-field-container-text-font: map.get($system, body-large-font),
|
|
141
|
-
form-field-container-text-line-height: map.get($system, body-large-line-height),
|
|
142
|
-
form-field-container-text-size: map.get($system, body-large-size),
|
|
143
|
-
form-field-container-text-tracking: map.get($system, body-large-tracking),
|
|
144
|
-
form-field-container-text-weight: map.get($system, body-large-weight),
|
|
145
|
-
|
|
146
|
-
// In the container styles, we updated the floating label to use the `body-1` typography level.
|
|
147
|
-
// The MDC notched outline overrides this accidentally (only when the label floats) to a
|
|
148
|
-
// `rem`-based value. This results in different label widths when floated/docked and ultimately
|
|
149
|
-
// breaks the notch width as it has been measured in the docked state (where `body-1` is
|
|
150
|
-
// applied). We try to unset these styles set by the `mdc-notched-outline`:
|
|
151
|
-
// https://github.com/material-components/material-components-web/blob/master/packages/mdc-notched-outline/_mixins.scss#L272-L292.
|
|
152
|
-
// This is why we can't use their `label-text-populated-size` token and we have to declare
|
|
153
|
-
// our own version of it.
|
|
154
|
-
form-field-outlined-label-text-populated-size:
|
|
155
|
-
map.get($system, body-large-size),
|
|
156
|
-
|
|
157
|
-
form-field-subscript-text-font: map.get($system, body-small-font),
|
|
158
|
-
form-field-subscript-text-line-height: map.get($system, body-small-line-height),
|
|
159
|
-
form-field-subscript-text-size: map.get($system, body-small-size),
|
|
160
|
-
form-field-subscript-text-tracking: map.get($system, body-small-tracking),
|
|
161
|
-
form-field-subscript-text-weight: map.get($system, body-small-weight),
|
|
162
|
-
form-field-filled-label-text-font: map.get($system, body-large-font),
|
|
163
|
-
form-field-filled-label-text-size: map.get($system, body-large-size),
|
|
164
|
-
form-field-filled-label-text-tracking: map.get($system, body-large-tracking),
|
|
165
|
-
form-field-filled-label-text-weight: map.get($system, body-large-weight),
|
|
166
|
-
form-field-outlined-label-text-font: map.get($system, body-large-font),
|
|
167
|
-
form-field-outlined-label-text-size: map.get($system, body-large-size),
|
|
168
|
-
form-field-outlined-label-text-tracking: map.get($system, body-large-tracking),
|
|
169
|
-
form-field-outlined-label-text-weight: map.get($system, body-large-weight),
|
|
170
|
-
);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
159
|
// Tokens that can be configured through Angular Material's density theming API.
|
|
174
160
|
@function get-density-tokens($theme) {
|
|
175
|
-
$
|
|
161
|
+
$system: m2-utils.get-system($theme);
|
|
162
|
+
$density-scale: theming.clamp-density(map.get($system, density-scale), -5);
|
|
176
163
|
$size-scale: (
|
|
177
164
|
0: 56px,
|
|
178
165
|
-1: 52px,
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
@use 'sass:list';
|
|
3
3
|
@use '../core/tokens/m3-utils';
|
|
4
4
|
@use '../core/theming/theming';
|
|
5
|
-
@use '../core/theming/inspection';
|
|
6
5
|
@use '../core/tokens/m3';
|
|
7
6
|
|
|
8
7
|
// The prefix used to generate the fully qualified name for tokens in this file.
|
|
@@ -117,7 +116,7 @@ $prefix: (mat, form-field);
|
|
|
117
116
|
form-field-filled-label-text-weight: map.get($system, body-large-weight),
|
|
118
117
|
form-field-outlined-label-text-populated-size: null,
|
|
119
118
|
),
|
|
120
|
-
density: get-density-tokens(map.get($
|
|
119
|
+
density: get-density-tokens(map.get($system, density-scale)),
|
|
121
120
|
);
|
|
122
121
|
}
|
|
123
122
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@use '../core/tokens/token-utils';
|
|
7
7
|
|
|
8
8
|
@mixin base($theme) {
|
|
9
|
-
$tokens: m2-grid-list.get-
|
|
9
|
+
$tokens: map.get(m2-grid-list.get-tokens($theme), base);
|
|
10
10
|
@if inspection.get-theme-version($theme) == 1 {
|
|
11
11
|
$tokens: map.get(m3-grid-list.get-tokens($theme), base);
|
|
12
12
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
@mixin color($theme) {
|
|
18
|
-
$tokens: m2-grid-list.get-
|
|
18
|
+
$tokens: map.get(m2-grid-list.get-tokens($theme), color);
|
|
19
19
|
@if inspection.get-theme-version($theme) == 1 {
|
|
20
20
|
$tokens: map.get(m3-grid-list.get-tokens($theme), color);
|
|
21
21
|
}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
@mixin typography($theme) {
|
|
27
|
-
$tokens: m2-grid-list.get-
|
|
27
|
+
$tokens: map.get(m2-grid-list.get-tokens($theme), typography);
|
|
28
28
|
@if inspection.get-theme-version($theme) == 1 {
|
|
29
29
|
$tokens: map.get(m3-grid-list.get-tokens($theme), typography);
|
|
30
30
|
}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
@mixin density($theme) {
|
|
36
|
-
$tokens: m2-grid-list.get-
|
|
36
|
+
$tokens: map.get(m2-grid-list.get-tokens($theme), density);
|
|
37
37
|
@if inspection.get-theme-version($theme) == 1 {
|
|
38
38
|
$tokens: map.get(m3-grid-list.get-tokens($theme), density);
|
|
39
39
|
}
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
@use '../core/tokens/m2-utils';
|
|
2
2
|
@use 'sass:map';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
// but may be in a future version of the theming API.
|
|
6
|
-
@function get-unthemable-tokens() {
|
|
7
|
-
@return ();
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
// Tokens that can be configured through Angular Material's color theming API.
|
|
11
|
-
@function get-color-tokens($theme) {
|
|
12
|
-
@return ();
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// Tokens that can be configured through Angular Material's typography theming API.
|
|
16
|
-
@function get-typography-tokens($theme) {
|
|
4
|
+
@function get-tokens($theme) {
|
|
17
5
|
$system: m2-utils.get-system($theme);
|
|
6
|
+
|
|
18
7
|
@return (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
8
|
+
base: (),
|
|
9
|
+
color: (),
|
|
10
|
+
typography: (
|
|
11
|
+
// TODO(crisbeto): other components have tokens for all typography dimensions.
|
|
12
|
+
// Here we only set the font size to maintain the same appearance as the pre-tokens
|
|
13
|
+
// theming API. Consider adding more tokens for letter spacing, font weight etc.
|
|
14
|
+
grid-list-tile-header-primary-text-size: map.get($system, body-medium-size),
|
|
15
|
+
grid-list-tile-header-secondary-text-size: map.get($system, body-small-size),
|
|
16
|
+
grid-list-tile-footer-primary-text-size: map.get($system, body-medium-size),
|
|
17
|
+
grid-list-tile-footer-secondary-text-size: map.get($system, body-small-size),
|
|
18
|
+
),
|
|
19
|
+
density: (),
|
|
26
20
|
);
|
|
27
21
|
}
|
|
28
|
-
|
|
29
|
-
// Tokens that can be configured through Angular Material's density theming API.
|
|
30
|
-
@function get-density-tokens($theme) {
|
|
31
|
-
@return ();
|
|
32
|
-
}
|
package/icon/_icon-theme.scss
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
@use 'sass:map';
|
|
6
6
|
|
|
7
7
|
@mixin base($theme) {
|
|
8
|
-
$tokens: m2-icon.get-
|
|
8
|
+
$tokens: map.get(m2-icon.get-tokens($theme), base);
|
|
9
9
|
@if inspection.get-theme-version($theme) == 1 {
|
|
10
10
|
$tokens: map.get(m3-icon.get-tokens($theme), base);
|
|
11
11
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
/// @param {Map} $theme The theme to generate color styles for.
|
|
18
18
|
/// @param {String} $color-variant The color variant to use for the component (M3 only)
|
|
19
19
|
@mixin color($theme, $color-variant: null) {
|
|
20
|
-
$tokens: m2-icon.get-
|
|
20
|
+
$tokens: map.get(m2-icon.get-tokens($theme), color);
|
|
21
21
|
@if inspection.get-theme-version($theme) == 1 {
|
|
22
22
|
$tokens: map.get(m3-icon.get-tokens($theme, $color-variant), color);
|
|
23
23
|
}
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
/// Outputs typography theme styles for the mat-icon.
|
|
51
51
|
/// @param {Map} $theme The theme to generate typography styles for.
|
|
52
52
|
@mixin typography($theme) {
|
|
53
|
-
$tokens: m2-icon.get-
|
|
53
|
+
$tokens: map.get(m2-icon.get-tokens($theme), typography);
|
|
54
54
|
@if inspection.get-theme-version($theme) == 1 {
|
|
55
55
|
$tokens: map.get(m3-icon.get-tokens($theme), typography);
|
|
56
56
|
}
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
/// Outputs density theme styles for the mat-icon.
|
|
62
62
|
/// @param {Map} $theme The theme to generate density styles for.
|
|
63
63
|
@mixin density($theme) {
|
|
64
|
-
$tokens: m2-icon.get-
|
|
64
|
+
$tokens: map.get(m2-icon.get-tokens($theme), density);
|
|
65
65
|
@if inspection.get-theme-version($theme) == 1 {
|
|
66
66
|
$tokens: map.get(m3-icon.get-tokens($theme), density);
|
|
67
67
|
}
|