ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 19.5 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-grid.mjs","sources":["../../components/grid/row.directive.ts","../../components/grid/col.directive.ts","../../components/grid/grid.module.ts","../../components/grid/public-api.ts","../../components/grid/ng-zorro-antd-grid.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { gridResponsiveMap, NzBreakpointKey, NzBreakpointService } from 'ng-zorro-antd/core/services';\nimport { IndexableObject } from 'ng-zorro-antd/core/types';\n\nexport type NzJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between';\nexport type NzAlign = 'top' | 'middle' | 'bottom';\n\n@Directive({\n selector: '[nz-row],nz-row,nz-form-item',\n exportAs: 'nzRow',\n host: {\n class: 'ant-row',\n '[class.ant-row-top]': `nzAlign === 'top'`,\n '[class.ant-row-middle]': `nzAlign === 'middle'`,\n '[class.ant-row-bottom]': `nzAlign === 'bottom'`,\n '[class.ant-row-start]': `nzJustify === 'start'`,\n '[class.ant-row-end]': `nzJustify === 'end'`,\n '[class.ant-row-center]': `nzJustify === 'center'`,\n '[class.ant-row-space-around]': `nzJustify === 'space-around'`,\n '[class.ant-row-space-between]': `nzJustify === 'space-between'`,\n '[class.ant-row-rtl]': `dir === \"rtl\"`\n }\n})\nexport class NzRowDirective implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n @Input() nzAlign: NzAlign | null = null;\n @Input() nzJustify: NzJustify | null = null;\n @Input() nzGutter: string | number | IndexableObject | [number, number] | [IndexableObject, IndexableObject] | null =\n null;\n\n readonly actualGutter$ = new ReplaySubject<[number | null, number | null]>(1);\n\n dir: Direction = 'ltr';\n private readonly destroy$ = new Subject();\n\n getGutter(): [number | null, number | null] {\n const results: [number | null, number | null] = [null, null];\n const gutter = this.nzGutter || 0;\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, null];\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object' && g !== null) {\n results[index] = null;\n Object.keys(gridResponsiveMap).map((screen: string) => {\n const bp = screen as NzBreakpointKey;\n if (this.mediaMatcher.matchMedia(gridResponsiveMap[bp]).matches && g[bp]) {\n results[index] = g![bp] as number;\n }\n });\n } else {\n results[index] = Number(g) || null;\n }\n });\n return results;\n }\n\n setGutterStyle(): void {\n const [horizontalGutter, verticalGutter] = this.getGutter();\n this.actualGutter$.next([horizontalGutter, verticalGutter]);\n const renderGutter = (name: string, gutter: number | null): void => {\n const nativeElement = this.elementRef.nativeElement;\n if (gutter !== null) {\n this.renderer.setStyle(nativeElement, name, `-${gutter / 2}px`);\n }\n };\n renderGutter('margin-left', horizontalGutter);\n renderGutter('margin-right', horizontalGutter);\n renderGutter('margin-top', verticalGutter);\n renderGutter('margin-bottom', verticalGutter);\n }\n constructor(\n public elementRef: ElementRef,\n public renderer: Renderer2,\n public mediaMatcher: MediaMatcher,\n public ngZone: NgZone,\n public platform: Platform,\n private breakpointService: NzBreakpointService,\n @Optional() private directionality: Directionality\n ) {}\n\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n\n this.setGutterStyle();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.nzGutter) {\n this.setGutterStyle();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.platform.isBrowser) {\n this.breakpointService\n .subscribe(gridResponsiveMap)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.setGutterStyle();\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\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://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Host,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NgClassInterface } from 'ng-zorro-antd/core/types';\nimport { isNotNil } from 'ng-zorro-antd/core/util';\n\nimport { NzRowDirective } from './row.directive';\n\nexport interface EmbeddedProperty {\n span?: number;\n pull?: number;\n push?: number;\n offset?: number;\n order?: number;\n}\n\n@Directive({\n selector: '[nz-col],nz-col,nz-form-control,nz-form-label',\n exportAs: 'nzCol',\n host: {\n '[style.flex]': 'hostFlexStyle'\n }\n})\nexport class NzColDirective implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n private classMap: { [key: string]: boolean } = {};\n private destroy$ = new Subject();\n hostFlexStyle: string | null = null;\n dir: Direction = 'ltr';\n @Input() nzFlex: string | number | null = null;\n @Input() nzSpan: string | number | null = null;\n @Input() nzOrder: string | number | null = null;\n @Input() nzOffset: string | number | null = null;\n @Input() nzPush: string | number | null = null;\n @Input() nzPull: string | number | null = null;\n @Input() nzXs: string | number | EmbeddedProperty | null = null;\n @Input() nzSm: string | number | EmbeddedProperty | null = null;\n @Input() nzMd: string | number | EmbeddedProperty | null = null;\n @Input() nzLg: string | number | EmbeddedProperty | null = null;\n @Input() nzXl: string | number | EmbeddedProperty | null = null;\n @Input() nzXXl: string | number | EmbeddedProperty | null = null;\n\n setHostClassMap(): void {\n const hostClassMap = {\n ['ant-col']: true,\n [`ant-col-${this.nzSpan}`]: isNotNil(this.nzSpan),\n [`ant-col-order-${this.nzOrder}`]: isNotNil(this.nzOrder),\n [`ant-col-offset-${this.nzOffset}`]: isNotNil(this.nzOffset),\n [`ant-col-pull-${this.nzPull}`]: isNotNil(this.nzPull),\n [`ant-col-push-${this.nzPush}`]: isNotNil(this.nzPush),\n ['ant-col-rtl']: this.dir === 'rtl',\n ...this.generateClass()\n };\n for (const i in this.classMap) {\n if (this.classMap.hasOwnProperty(i)) {\n this.renderer.removeClass(this.elementRef.nativeElement, i);\n }\n }\n this.classMap = { ...hostClassMap };\n for (const i in this.classMap) {\n if (this.classMap.hasOwnProperty(i) && this.classMap[i]) {\n this.renderer.addClass(this.elementRef.nativeElement, i);\n }\n }\n }\n\n setHostFlexStyle(): void {\n this.hostFlexStyle = this.parseFlex(this.nzFlex);\n }\n\n parseFlex(flex: number | string | null): string | null {\n if (typeof flex === 'number') {\n return `${flex} ${flex} auto`;\n } else if (typeof flex === 'string') {\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n }\n return flex;\n }\n\n generateClass(): object {\n const listOfSizeInputName: Array<keyof NzColDirective> = ['nzXs', 'nzSm', 'nzMd', 'nzLg', 'nzXl', 'nzXXl'];\n const listClassMap: NgClassInterface = {};\n listOfSizeInputName.forEach(name => {\n const sizeName = name.replace('nz', '').toLowerCase();\n if (isNotNil(this[name])) {\n if (typeof this[name] === 'number' || typeof this[name] === 'string') {\n listClassMap[`ant-col-${sizeName}-${this[name]}`] = true;\n } else {\n const embedded = this[name] as EmbeddedProperty;\n const prefixArray: Array<keyof EmbeddedProperty> = ['span', 'pull', 'push', 'offset', 'order'];\n prefixArray.forEach(prefix => {\n const prefixClass = prefix === 'span' ? '-' : `-${prefix}-`;\n listClassMap[`ant-col-${sizeName}${prefixClass}${embedded[prefix]}`] =\n embedded && isNotNil(embedded[prefix]);\n });\n }\n }\n });\n return listClassMap;\n }\n\n constructor(\n private elementRef: ElementRef,\n @Optional() @Host() public nzRowDirective: NzRowDirective,\n public renderer: Renderer2,\n @Optional() private directionality: Directionality\n ) {}\n\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n this.setHostClassMap();\n });\n\n this.setHostClassMap();\n this.setHostFlexStyle();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setHostClassMap();\n const { nzFlex } = changes;\n if (nzFlex) {\n this.setHostFlexStyle();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.nzRowDirective) {\n this.nzRowDirective.actualGutter$\n .pipe(takeUntil(this.destroy$))\n .subscribe(([horizontalGutter, verticalGutter]) => {\n const renderGutter = (name: string, gutter: number | null): void => {\n const nativeElement = this.elementRef.nativeElement;\n if (gutter !== null) {\n this.renderer.setStyle(nativeElement, name, `${gutter / 2}px`);\n }\n };\n renderGutter('padding-left', horizontalGutter);\n renderGutter('padding-right', horizontalGutter);\n renderGutter('padding-top', verticalGutter);\n renderGutter('padding-bottom', verticalGutter);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\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://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzColDirective } from './col.directive';\nimport { NzRowDirective } from './row.directive';\n\n@NgModule({\n declarations: [NzColDirective, NzRowDirective],\n exports: [NzColDirective, NzRowDirective],\n imports: [BidiModule, CommonModule, LayoutModule, PlatformModule]\n})\nexport class NzGridModule {}\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://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './row.directive';\nexport * from './col.directive';\nexport * from './grid.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}