diff --git a/.gitignore b/.gitignore index 926bc276..51bbf34c 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,8 @@ yarn-error.log # dist artifacts @angular-react/ +angular-react-fabric +angular-react-toolkit # ng-packagr (temporary files) .ng_pkg_build/ diff --git a/README.md b/README.md index 48b1839e..156b8b4d 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Use of Angular-React allows consuming any React elements, but specifically Offic The light-weight Angular component wrappers that expose the Fabric React component API through common Angular components (including both imperative AND declarative syntax in many cases). +`angular-react@3` is for `Angular@8` ### Quick links diff --git a/apps/demo/src/app/app.component.html b/apps/demo/src/app/app.component.html index 8c3d665c..4d392104 100644 --- a/apps/demo/src/app/app.component.html +++ b/apps/demo/src/app/app.component.html @@ -9,252 +9,64 @@

Getting up and running...

- - -
- - Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem laboriosam id ad mollitia optio saepe qui aliquid - facere, porro maiores voluptas, aliquam totam adipisci molestias illum dolorem accusamus. Quam, nisi. Lorem ipsum - dolor sit amet consectetur, adipisicing elit. Suscipit dolores architecto illo reprehenderit fugiat dolorum sapiente - modi placeat ex nostrum, illum esse iusto commodi neque corrupti labore nam voluptatum nisi? Lorem ipsum dolor sit, - amet consectetur adipisicing elit. Animi, impedit dolore aliquid voluptate debitis recusandae officiis qui - blanditiis soluta ea delectus culpa molestiae enim quo, quibusdam exercitationem magni nemo amet! - +
+ rating: + + +
test {{fillPercentage}} {{starNum}}
+
+
- - - - - - - - - - - - -
------------------------------------------------------------
- -
------------------------------------------------------------
- -{{ textFieldValue }} - - -
- -
Tab 1's content
-
Tab 2's content
-
Tab 3's content
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + pivot: +
+ + + + {{tab.label}} + + +
111
+
+
+
+
+
+ breadcrumb: + +
+
+ button: + primary button + default button +
+
+ calendar: + +
+
+ callout: + +
+
+ checkbox: + +
+choice group: + +data picker: + - +divider: + - - - +
+dropdown: + - - - - - - - - - - Custom content for index {{ index }} - - - - - - - - - - - - - -
{{ selection.count || 0 }} item(s) selected
- - Marquee {{ marqueeEnabled === false ? 'Disabled' : 'Enabled' }} - - -
{{peoplePickerSelectedItems.length}} item(s) selected in the people picker
- -
+
+ combo-box: + +
diff --git a/apps/demo/src/app/app.component.ts b/apps/demo/src/app/app.component.ts index a160c6ce..e86c3c06 100644 --- a/apps/demo/src/app/app.component.ts +++ b/apps/demo/src/app/app.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectorRef, Component, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectorRef, Component, ElementRef, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core'; import { ICalendarStrings, IContextualMenuProps, @@ -9,12 +9,31 @@ import { ICheckboxProps, IPersonaProps, IPeoplePickerProps, -} from 'office-ui-fabric-react'; +} from '@fluentui/react'; import { RenderPropOptions } from '@angular-react/core'; import { FabDropdownComponent } from '@angular-react/fabric'; import { FabPeoplePickerComponent } from '@angular-react/fabric/public-api'; +import { createListItems, createGroups, IExampleItem } from '@uifabric/example-data'; +import { IColumn, DetailsRow, IGroup } from '@fluentui/react/lib/DetailsList'; const suffix = ' cm'; +interface IKeyboardShortcutsTab { + label: string; + items: IKeyboardShortcutItem[]; + groups: IKeyboardShortcutsGroup[] +} + +interface IKeyboardShortcutItem { + action: string; + shortcut: string; +} + +interface IKeyboardShortcutsGroup extends IGroup { + name: string; + startIndex: number; + count: number; + level: number; +} @Component({ selector: 'app-root', @@ -35,6 +54,8 @@ export class AppComponent { dismissMenu: (ev?: any, dismissAll?: boolean) => void; }>; + @ViewChild('calloutTarget', { static: false }) calloutTarget: ElementRef; + onClickEventHandler(ev) { console.log('onClick', { ev }); } @@ -47,10 +68,14 @@ export class AppComponent { console.log(args); } - peoplePickerSelectedItems: any[] = [{text:"Default person"}]; - pickerSuggestions: IPersonaProps[] = [{text: "Bob Jones"},{text: "Steve Fred"}, {text: "Mary"}]; + // tslint:disable-next-line: member-ordering + peoplePickerSelectedItems: any[] = [{ text: "Default person" }]; + // tslint:disable-next-line: member-ordering + pickerSuggestions: IPersonaProps[] = [{ text: "Bob Jones" }, { text: "Steve Fred" }, { text: "Mary" }]; + // tslint:disable-next-line: member-ordering selectedItem?: IDropdownOption; + // tslint:disable-next-line: member-ordering options: FabDropdownComponent['options'] = [ { key: 'A', text: 'Option a' }, { key: 'B', text: 'Option b' }, @@ -62,12 +87,14 @@ export class AppComponent { { key: 'G', text: 'Option g' }, ]; + // tslint:disable-next-line: member-ordering textFieldValue = 'Hello'; marqueeEnabled: boolean; runDisabled: boolean; selection: ISelection; + // tslint:disable-next-line: member-ordering strings: ICalendarStrings = { months: [ 'January', @@ -94,6 +121,7 @@ export class AppComponent { weekNumberFormatString: 'Week number {0}', }; + // tslint:disable-next-line: member-ordering detailItems = [ { field1: 'f1content1', field2: 'f2content1' }, { field1: 'f1content2', field2: 'f2content2' }, @@ -102,6 +130,205 @@ export class AppComponent { { field2: 'f2content5' }, ]; + // tslint:disable-next-line: member-ordering + groupListItems = createListItems(3); + // tslint:disable-next-line: member-ordering + groupListGroups = createGroups(3, 3, 0, 3); + // tslint:disable-next-line: member-ordering + // columns = Object.keys(this.groupListItems[0]) + // .slice(0, 3) + // .map( + // (key: string): IColumn => ({ + // key: key, + // name: key, + // fieldName: key, + // minWidth: 300, + // }), + // ); + + // tslint:disable-next-line: member-ordering + public readonly columns: IColumn[] = [ + { + name: 'action', + fieldName: 'action', + isResizable: false, + key: 'action', + minWidth: 100 + }, + { + name: 'shortcut', + fieldName: 'shortcut', + isResizable: false, + key: 'shortcut', + minWidth: 100 + } + ]; + + // tslint:disable-next-line: member-ordering + private readonly _pipelineEditorShortcutItems: IKeyboardShortcutItem[] = [ + { + action: 'Select all', + shortcut: 'Ctrl+A' + }, + { + action: 'Cut', + shortcut: 'Ctrl+X' + }, + { + action: 'Copy', + shortcut: 'Ctrl+C' + }, + { + action: 'Paste', + shortcut: 'Ctrl+V' + }, + { + action: 'Delete', + shortcut: 'Delete' + }, + { + action: 'Zoom in', + shortcut: 'I' + }, + { + action: 'O', + shortcut: 'O' + }, + { + action: 'Zoom to fit', + shortcut: 'F' + }, + { + action: 'Hide nested activities', + shortcut: 'N' + } + ]; + + // tslint:disable-next-line: member-ordering + private readonly _pipelineEditorGroups: IKeyboardShortcutsGroup[] = [ + { + name: 'Basic', + startIndex: 0, + count: 5, + level: 0, + key: 'Basic' + }, + { + name: 'Canvas controls', + startIndex: 5, + count: 4, + level: 0, + key: 'canvas' + } + ]; + + // tslint:disable-next-line: member-ordering + private readonly _dataflowEditorShortcutItems: IKeyboardShortcutItem[] = [ + { + action: 'Select all', + shortcut: 'Ctrl+A' + }, + { + action: 'Delete', + shortcut: 'Delete' + }, + { + action: 'Zoom in', + shortcut: 'I' + }, + { + action: 'O', + shortcut: 'O' + }, + { + action: 'Zoom to fit', + shortcut: 'F' + } + ]; + + // tslint:disable-next-line: member-ordering + private readonly _dataflowEditorGroups: IKeyboardShortcutsGroup[] = [ + { + name: 'Basic', + startIndex: 0, + count: 2, + level: 0, + key: 'Basic' + }, + { + name: 'Canvas controls', + startIndex: 2, + count: 3, + level: 0, + key: 'canvas' + } + ]; + + // tslint:disable-next-line: member-ordering + public readonly tabs: IKeyboardShortcutsTab[] = [ + { + label: 'Pipeline_Editor', + items: this._pipelineEditorShortcutItems, + groups: this._pipelineEditorGroups + }, + { + label: 'Dataflow_Editor', + items: this._dataflowEditorShortcutItems, + groups: this._dataflowEditorGroups + }, + { + label: 'Pipeline_Editor', + items: this._pipelineEditorShortcutItems, + groups: this._pipelineEditorGroups + }, + { + label: 'Dataflow_Editor', + items: this._dataflowEditorShortcutItems, + groups: this._dataflowEditorGroups + }, + { + label: 'Pipeline_Editor', + items: this._pipelineEditorShortcutItems, + groups: this._pipelineEditorGroups + }, + { + label: 'Dataflow_Editor', + items: this._dataflowEditorShortcutItems, + groups: this._dataflowEditorGroups + }, { + label: 'Pipeline_Editor', + items: this._pipelineEditorShortcutItems, + groups: this._pipelineEditorGroups + }, + { + label: 'Dataflow_Editor', + items: this._dataflowEditorShortcutItems, + groups: this._dataflowEditorGroups + }, + { + label: 'Pipeline_Editor', + items: this._pipelineEditorShortcutItems, + groups: this._pipelineEditorGroups + }, + { + label: 'Dataflow_Editor', + items: this._dataflowEditorShortcutItems, + groups: this._dataflowEditorGroups + } + ]; + + public itemsWithHref = [ + // Normally each breadcrumb would have a unique href, but to make the navigation less disruptive + // in the example, it uses the breadcrumb page as the href for all the items + { text: 'Files', key: 'Files', href: '#/controls/web/breadcrumb' }, + { text: 'Folder 1', key: 'f1', href: '#/controls/web/breadcrumb' }, + { text: 'Folder 2', key: 'f2', href: '#/controls/web/breadcrumb' }, + { text: 'Folder 3', key: 'f3', href: '#/controls/web/breadcrumb' }, + { text: 'Folder 4 (non-clickable)', key: 'f4' }, + { text: 'Folder 5', key: 'f5', href: '#/controls/web/breadcrumb', isCurrentItem: true }, + ]; + + onNewClicked() { console.log('New clicked'); } @@ -163,12 +390,12 @@ export class AppComponent { return String(value) + suffix; } - peoplePickerInputChanged(data: any){ + peoplePickerInputChanged(data: any) { const results = this.pickerSuggestions.filter(value => value.text.toLowerCase().indexOf(data.toLowerCase()) > -1); return new Promise((resolve, reject) => setTimeout(() => resolve(results), 250)); } - updatePeoplePickerSelectedItems(items){ + updatePeoplePickerSelectedItems(items) { this.peoplePickerSelectedItems = items.items; } @@ -194,6 +421,15 @@ export class AppComponent { this.peoplePickerInputChanged = this.peoplePickerInputChanged.bind(this); } + public showCallout = false; + + ngAfterViewInit() { + console.log(this.calloutTarget) + if (this.calloutTarget) { + this.showCallout = true; + } + } + customItemCount = 1; // FIXME: Allow declarative syntax too @@ -381,4 +617,12 @@ export class AppComponent { } fullScreenIcon = 'MiniExpand'; + + onRatingChange({ ev, rating }) { + console.log(ev, rating); + } + + onRatingChanged({ rating }) { + console.log(rating) + } } diff --git a/apps/demo/src/app/app.module.ts b/apps/demo/src/app/app.module.ts index fcacaa11..e09c5f04 100644 --- a/apps/demo/src/app/app.module.ts +++ b/apps/demo/src/app/app.module.ts @@ -36,11 +36,12 @@ import { FabTextFieldModule, FabPeoplePickerModule, FabTagPickerModule, - FabProgressIndicatorModule + FabProgressIndicatorModule, + FabRatingModule } from '@angular-react/fabric'; import { NgModule } from '@angular/core'; import { NxModule } from '@nrwl/nx'; -import { initializeIcons } from 'office-ui-fabric-react/lib/Icons'; +import { initializeIcons } from '@fluentui/react/lib/Icons'; import { AppComponent } from './app.component'; import { CounterComponent } from './counter/counter.component'; @@ -84,7 +85,8 @@ import { CounterComponent } from './counter/counter.component'; FabTextFieldModule, FabPeoplePickerModule, FabTagPickerModule, - FabProgressIndicatorModule + FabProgressIndicatorModule, + FabRatingModule ], declarations: [AppComponent, CounterComponent], bootstrap: [AppComponent], diff --git a/apps/docs/src/app/containers/component-docs/fabric/fabric.component.ts b/apps/docs/src/app/containers/component-docs/fabric/fabric.component.ts index 6109e152..d8c6bd14 100644 --- a/apps/docs/src/app/containers/component-docs/fabric/fabric.component.ts +++ b/apps/docs/src/app/containers/component-docs/fabric/fabric.component.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { IComboBoxOption, ICalendarStrings } from 'office-ui-fabric-react'; +import { IComboBoxOption, ICalendarStrings } from '@fluentui/react'; @Component({ selector: 'app-fabric', diff --git a/libs/.gitkeep b/libs/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/libs/core/package.json b/libs/core/package.json index 4e01487b..57398bd8 100644 --- a/libs/core/package.json +++ b/libs/core/package.json @@ -19,8 +19,7 @@ "umdModuleIds": { "react": "React", "react-dom": "ReactDOM" - }, - "comments": "none" + } }, "dest": "../../@angular-react/core" }, @@ -49,6 +48,7 @@ "components" ], "private": false, + "sideEffects": false, "peerDependencies": { "@angular/compiler": "^8.0.2", "@angular/core": "^8.0.2", diff --git a/libs/fabric/src/lib/components/breadcrumb/breadcrumb.component.ts b/libs/fabric/lib/components/breadcrumb/breadcrumb.component.ts similarity index 89% rename from libs/fabric/src/lib/components/breadcrumb/breadcrumb.component.ts rename to libs/fabric/lib/components/breadcrumb/breadcrumb.component.ts index 29819d2b..7ed476ef 100644 --- a/libs/fabric/src/lib/components/breadcrumb/breadcrumb.component.ts +++ b/libs/fabric/lib/components/breadcrumb/breadcrumb.component.ts @@ -12,8 +12,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IBreadcrumbItem, IBreadcrumbProps } from 'office-ui-fabric-react/lib/Breadcrumb'; +import { IBreadcrumbItem, IBreadcrumbProps } from '@fluentui/react/lib/Breadcrumb'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabBreadcrumbComponent') @Component({ selector: 'fab-breadcrumb', exportAs: 'fabBreadcrumb', @@ -24,6 +26,7 @@ import { IBreadcrumbItem, IBreadcrumbProps } from 'office-ui-fabric-react/lib/Br [items]="items" [className]="className" [dividerAs]="dividerAs" + [overflowButtonAs]="overflowButtonAs" [maxDisplayedItems]="maxDisplayedItems" [ariaLabel]="ariaLabel" [overflowAriaLabel]="overflowAriaLabel" @@ -47,6 +50,7 @@ export class FabBreadcrumbComponent extends ReactWrapperComponent implements OnInit, AfterContentInit, OnDestroy { @@ -115,6 +114,7 @@ export abstract class FabBaseButtonComponent extends ReactWrapperComponent) => { @@ -186,6 +186,7 @@ export abstract class FabBaseButtonComponent extends ReactWrapperComponent @@ -72,7 +71,6 @@ export class FabCalendarComponent extends ReactWrapperComponent @Input() value?: ICalendarProps['value']; @Input() firstDayOfWeek?: ICalendarProps['firstDayOfWeek']; @Input() dateRangeType?: ICalendarProps['dateRangeType']; - @Input() autoNavigateOnSelection?: ICalendarProps['autoNavigateOnSelection']; @Input() showGoToToday?: ICalendarProps['showGoToToday']; @Input() strings: ICalendarProps['strings']; @Input() highlightCurrentMonth?: ICalendarProps['highlightCurrentMonth']; @@ -86,10 +84,8 @@ export class FabCalendarComponent extends ReactWrapperComponent @Input() restrictedDates?: ICalendarProps['restrictedDates']; @Input() showSixWeeksByDefault?: ICalendarProps['showSixWeeksByDefault']; @Input() workWeekDays?: ICalendarProps['workWeekDays']; - @Input() selectDateOnClick?: ICalendarProps['selectDateOnClick']; @Input() showCloseButton?: ICalendarProps['showCloseButton']; @Input() allFocusable?: ICalendarProps['allFocusable']; - @Input() yearPickerHidden?: ICalendarProps['yearPickerHidden']; @Output() readonly onSelectDate = new EventEmitter<{ date: Date; selectedDateRangeArray?: Date[] }>(); @Output() readonly onDismiss = new EventEmitter(); diff --git a/libs/fabric/src/lib/components/calendar/calendar.module.ts b/libs/fabric/lib/components/calendar/calendar.module.ts similarity index 78% rename from libs/fabric/src/lib/components/calendar/calendar.module.ts rename to libs/fabric/lib/components/calendar/calendar.module.ts index 1aaacfbd..2f8db2c6 100644 --- a/libs/fabric/src/lib/components/calendar/calendar.module.ts +++ b/libs/fabric/lib/components/calendar/calendar.module.ts @@ -4,14 +4,14 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import * as CalendarCss from 'office-ui-fabric-react/lib-amd/components/Calendar/Calendar.scss'; -import { Calendar } from 'office-ui-fabric-react'; -import { noop } from '../../utils/noop'; +// import * as CalendarCss from 'office-ui-fabric-react/lib-amd/components/Calendar/Calendar.scss'; +import { Calendar } from '@fluentui/react/lib/Calendar'; +// import { noop } from '@angular-react/fabric/lib/utils'; import { FabCalendarComponent } from './calendar.component'; import { CalendarStringsDirective } from './directives/calendar-strings-directive.component'; // Dummy action to force CalendarCss to load and not be tree-shaken away. -noop(CalendarCss); +// noop(CalendarCss); const declarations = [FabCalendarComponent, CalendarStringsDirective]; diff --git a/libs/fabric/src/lib/components/calendar/directives/calendar-strings-directive.component.ts b/libs/fabric/lib/components/calendar/directives/calendar-strings-directive.component.ts similarity index 96% rename from libs/fabric/src/lib/components/calendar/directives/calendar-strings-directive.component.ts rename to libs/fabric/lib/components/calendar/directives/calendar-strings-directive.component.ts index a4400e1b..aeac0a13 100644 --- a/libs/fabric/src/lib/components/calendar/directives/calendar-strings-directive.component.ts +++ b/libs/fabric/lib/components/calendar/directives/calendar-strings-directive.component.ts @@ -2,7 +2,7 @@ // Licensed under the MIT License. import { Directive, Input } from '@angular/core'; -import { ICalendarStrings } from 'office-ui-fabric-react'; +import { ICalendarStrings } from '@fluentui/react/lib/Calendar'; /** * Wrapper directive for calendar strings diff --git a/libs/fabric/lib/components/calendar/ng-package.json b/libs/fabric/lib/components/calendar/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/calendar/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/calendar/public-api.ts b/libs/fabric/lib/components/calendar/public-api.ts similarity index 71% rename from libs/fabric/src/lib/components/calendar/public-api.ts rename to libs/fabric/lib/components/calendar/public-api.ts index 8bc8c6fc..8523a541 100644 --- a/libs/fabric/src/lib/components/calendar/public-api.ts +++ b/libs/fabric/lib/components/calendar/public-api.ts @@ -3,3 +3,4 @@ export * from './calendar.component'; export * from './calendar.module'; +export * from './directives/calendar-strings-directive.component'; diff --git a/libs/fabric/src/lib/components/callout/callout.component.ts b/libs/fabric/lib/components/callout/callout.component.ts similarity index 94% rename from libs/fabric/src/lib/components/callout/callout.component.ts rename to libs/fabric/lib/components/callout/callout.component.ts index fd228161..4c5b242e 100644 --- a/libs/fabric/src/lib/components/callout/callout.component.ts +++ b/libs/fabric/lib/components/callout/callout.component.ts @@ -13,9 +13,11 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { ICalloutProps } from 'office-ui-fabric-react/lib/Callout'; -import { ICalloutPositionedInfo } from 'office-ui-fabric-react/lib/utilities/positioning/positioning.types'; +import { ICalloutProps } from '@fluentui/react/lib/Callout'; +import { ICalloutPositionedInfo } from '@fluentui/react/lib/utilities/positioning/positioning.types'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabCalloutComponent') @Component({ selector: 'fab-callout', exportAs: 'fabCallout', diff --git a/libs/fabric/src/lib/components/callout/callout.module.ts b/libs/fabric/lib/components/callout/callout.module.ts similarity index 90% rename from libs/fabric/src/lib/components/callout/callout.module.ts rename to libs/fabric/lib/components/callout/callout.module.ts index 887e8a69..20864f0c 100644 --- a/libs/fabric/src/lib/components/callout/callout.module.ts +++ b/libs/fabric/lib/components/callout/callout.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Callout, FocusTrapCallout } from 'office-ui-fabric-react'; +import { Callout, FocusTrapCallout } from '@fluentui/react/lib/Callout'; import { FabCalloutComponent } from './callout.component'; const components = [FabCalloutComponent]; diff --git a/libs/fabric/src/lib/components/callout/focus-trap-callout.component.ts b/libs/fabric/lib/components/callout/focus-trap-callout.component.ts similarity index 95% rename from libs/fabric/src/lib/components/callout/focus-trap-callout.component.ts rename to libs/fabric/lib/components/callout/focus-trap-callout.component.ts index 7280813a..fa754e73 100644 --- a/libs/fabric/src/lib/components/callout/focus-trap-callout.component.ts +++ b/libs/fabric/lib/components/callout/focus-trap-callout.component.ts @@ -13,9 +13,11 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IFocusTrapCalloutProps } from 'office-ui-fabric-react'; -import { ICalloutPositionedInfo } from 'office-ui-fabric-react/lib/utilities/positioning'; +import { IFocusTrapCalloutProps } from '@fluentui/react/lib/Callout'; +import { ICalloutPositionedInfo } from '@fluentui/react/lib/utilities/positioning'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabFocusTrapCalloutComponent') @Component({ selector: 'fab-focus-trap-callout', exportAs: 'fabFocusTrapCallout', diff --git a/libs/fabric/lib/components/callout/ng-package.json b/libs/fabric/lib/components/callout/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/callout/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/callout/public-api.ts b/libs/fabric/lib/components/callout/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/callout/public-api.ts rename to libs/fabric/lib/components/callout/public-api.ts diff --git a/libs/fabric/src/lib/components/checkbox/checkbox.component.ts b/libs/fabric/lib/components/checkbox/checkbox.component.ts similarity index 95% rename from libs/fabric/src/lib/components/checkbox/checkbox.component.ts rename to libs/fabric/lib/components/checkbox/checkbox.component.ts index 84f223b2..db96a1b4 100644 --- a/libs/fabric/src/lib/components/checkbox/checkbox.component.ts +++ b/libs/fabric/lib/components/checkbox/checkbox.component.ts @@ -15,9 +15,11 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { ICheckboxProps } from 'office-ui-fabric-react/lib/Checkbox'; +import { ICheckboxProps } from '@fluentui/react/lib/Checkbox'; import { FormEvent } from 'react'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabCheckboxComponent') @Component({ selector: 'fab-checkbox', exportAs: 'fabCheckbox', @@ -39,7 +41,6 @@ import { FormEvent } from 'react'; [ariaPositionInSet]="ariaPositionInSet" [ariaSetSize]="ariaSetSize" [checkmarkIconProps]="checkmarkIconProps" - [keytipProps]="keytipProps" [styles]="styles" [RenderLabel]="renderLabel && onRenderLabel" [Change]="onChangeHandler" @@ -67,7 +68,6 @@ export class FabCheckboxComponent extends ReactWrapperComponent @Input() ariaPositionInSet?: ICheckboxProps['ariaPositionInSet']; @Input() ariaSetSize?: ICheckboxProps['ariaSetSize']; @Input() checkmarkIconProps?: ICheckboxProps['checkmarkIconProps']; - @Input() keytipProps?: ICheckboxProps['keytipProps']; @Input() styles?: ICheckboxProps['styles']; @Input() renderLabel?: InputRendererOptions; diff --git a/libs/fabric/src/lib/components/checkbox/checkbox.module.ts b/libs/fabric/lib/components/checkbox/checkbox.module.ts similarity index 92% rename from libs/fabric/src/lib/components/checkbox/checkbox.module.ts rename to libs/fabric/lib/components/checkbox/checkbox.module.ts index 13efa05a..50875ce4 100644 --- a/libs/fabric/src/lib/components/checkbox/checkbox.module.ts +++ b/libs/fabric/lib/components/checkbox/checkbox.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Checkbox } from 'office-ui-fabric-react'; +import { Checkbox } from '@fluentui/react/lib/Checkbox'; import { FabCheckboxComponent } from './checkbox.component'; const components = [FabCheckboxComponent]; diff --git a/libs/fabric/lib/components/checkbox/ng-package.json b/libs/fabric/lib/components/checkbox/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/checkbox/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/checkbox/public-api.ts b/libs/fabric/lib/components/checkbox/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/checkbox/public-api.ts rename to libs/fabric/lib/components/checkbox/public-api.ts diff --git a/libs/fabric/src/lib/components/choice-group/choice-group.component.ts b/libs/fabric/lib/components/choice-group/choice-group.component.ts similarity index 93% rename from libs/fabric/src/lib/components/choice-group/choice-group.component.ts rename to libs/fabric/lib/components/choice-group/choice-group.component.ts index 2cec0ef1..ed8afcbf 100644 --- a/libs/fabric/src/lib/components/choice-group/choice-group.component.ts +++ b/libs/fabric/lib/components/choice-group/choice-group.component.ts @@ -13,8 +13,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IChoiceGroupOption, IChoiceGroupProps } from 'office-ui-fabric-react/lib/ChoiceGroup'; +import { IChoiceGroupOption, IChoiceGroupProps } from '@fluentui/react/lib/ChoiceGroup'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabChoiceGroupComponent') @Component({ selector: 'fab-choice-group', exportAs: 'fabChoiceGroup', diff --git a/libs/fabric/src/lib/components/choice-group/choice-group.module.ts b/libs/fabric/lib/components/choice-group/choice-group.module.ts similarity index 91% rename from libs/fabric/src/lib/components/choice-group/choice-group.module.ts rename to libs/fabric/lib/components/choice-group/choice-group.module.ts index dfd52f6b..332c3666 100644 --- a/libs/fabric/src/lib/components/choice-group/choice-group.module.ts +++ b/libs/fabric/lib/components/choice-group/choice-group.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { ChoiceGroup } from 'office-ui-fabric-react'; +import { ChoiceGroup } from '@fluentui/react/lib/ChoiceGroup'; import { FabChoiceGroupComponent } from './choice-group.component'; const components = [FabChoiceGroupComponent]; diff --git a/libs/fabric/lib/components/choice-group/ng-package.json b/libs/fabric/lib/components/choice-group/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/choice-group/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/choice-group/public-api.ts b/libs/fabric/lib/components/choice-group/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/choice-group/public-api.ts rename to libs/fabric/lib/components/choice-group/public-api.ts diff --git a/libs/fabric/src/lib/components/combo-box/base-combo-box.component.ts b/libs/fabric/lib/components/combo-box/base-combo-box.component.ts similarity index 84% rename from libs/fabric/src/lib/components/combo-box/base-combo-box.component.ts rename to libs/fabric/lib/components/combo-box/base-combo-box.component.ts index c84219d0..35767d73 100644 --- a/libs/fabric/src/lib/components/combo-box/base-combo-box.component.ts +++ b/libs/fabric/lib/components/combo-box/base-combo-box.component.ts @@ -14,14 +14,19 @@ import { ContentChild, AfterContentInit, } from '@angular/core'; -import { IComboBox, IComboBoxOption, IComboBoxProps } from 'office-ui-fabric-react/lib/ComboBox'; +import { IComboBox, IComboBoxOption, IComboBoxProps } from '@fluentui/react/lib/ComboBox'; import { ComboBoxOptionDirective } from './directives/combo-box-option.directive'; import { ComboBoxOptionsDirective } from './directives/combo-box-options.directive'; +import { OnChanges, TypedChanges } from '@angular-react/fabric/lib/declarations'; export abstract class FabBaseComboBoxComponent extends ReactWrapperComponent - implements OnInit, AfterContentInit { + implements OnInit, OnChanges, AfterContentInit { @Input() componentRef?: IComboBoxProps['componentRef']; + @Input() label?: IComboBoxProps['label']; + @Input() defaultSelectedKey?: IComboBoxProps['defaultSelectedKey']; + @Input() selectedKey?: IComboBoxProps['selectedKey']; + _selectedKey?: IComboBoxProps['selectedKey']; @Input() options: IComboBoxProps['options']; @Input() allowFreeform?: IComboBoxProps['allowFreeform']; @Input() autoComplete?: IComboBoxProps['autoComplete']; @@ -39,7 +44,6 @@ export abstract class FabBaseComboBoxComponent extends ReactWrapperComponent IComboBoxOption[] | PromiseLike; @@ -92,6 +96,17 @@ export abstract class FabBaseComboBoxComponent extends ReactWrapperComponent) { + if ( + changes['selectedKey'] && + changes['selectedKey'].previousValue !== changes['selectedKey'].currentValue && + changes['selectedKey'].currentValue + ) { + const currentValue = changes['selectedKey'].currentValue; + this._selectedKey = currentValue; + } + } + onItemClickHandler(event: React.FormEvent, option?: IComboBoxOption, index?: number) { this.onItemClick.emit({ event: event.nativeEvent, diff --git a/libs/fabric/src/lib/components/combo-box/combo-box.component.ts b/libs/fabric/lib/components/combo-box/combo-box.component.ts similarity index 91% rename from libs/fabric/src/lib/components/combo-box/combo-box.component.ts rename to libs/fabric/lib/components/combo-box/combo-box.component.ts index 052ec4d5..85f1433c 100644 --- a/libs/fabric/src/lib/components/combo-box/combo-box.component.ts +++ b/libs/fabric/lib/components/combo-box/combo-box.component.ts @@ -11,7 +11,9 @@ import { ViewChild, } from '@angular/core'; import { FabBaseComboBoxComponent } from './base-combo-box.component'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabComboBoxComponent') @Component({ selector: 'fab-combo-box', exportAs: 'fabComboBox', @@ -19,6 +21,9 @@ import { FabBaseComboBoxComponent } from './base-combo-box.component'; - implements OnChanges, AfterContentInit, OnDestroy { + implements OnInit, OnChanges, AfterContentInit, OnDestroy { @ContentChild(CommandBarItemsDirective, { static: true }) readonly itemsDirective?: CommandBarItemsDirective; @ContentChild(CommandBarFarItemsDirective, { static: true }) readonly farItemsDirective?: CommandBarFarItemsDirective; @ContentChild(CommandBarOverflowItemsDirective, { static: true }) readonly overflowItemsDirective?: CommandBarOverflowItemsDirective; @@ -100,6 +103,8 @@ export class FabCommandBarComponent extends ReactWrapperComponent) { if ( changes['items'] && @@ -196,6 +201,7 @@ export class FabCommandBarComponent extends ReactWrapperComponent { abstract readonly directiveItems: QueryList; diff --git a/libs/fabric/lib/components/command-bar/index.ts b/libs/fabric/lib/components/command-bar/index.ts new file mode 100644 index 00000000..7e1a213e --- /dev/null +++ b/libs/fabric/lib/components/command-bar/index.ts @@ -0,0 +1 @@ +export * from './public-api'; diff --git a/libs/fabric/lib/components/command-bar/ng-package.json b/libs/fabric/lib/components/command-bar/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/command-bar/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/command-bar/public-api.ts b/libs/fabric/lib/components/command-bar/public-api.ts similarity index 60% rename from libs/fabric/src/lib/components/command-bar/public-api.ts rename to libs/fabric/lib/components/command-bar/public-api.ts index 3a59a454..60f744c9 100644 --- a/libs/fabric/src/lib/components/command-bar/public-api.ts +++ b/libs/fabric/lib/components/command-bar/public-api.ts @@ -3,3 +3,5 @@ export * from './command-bar.component'; export * from './command-bar.module'; +export * from './directives/command-bar-item.directives'; +export * from './directives/command-bar-items.directives'; diff --git a/libs/fabric/src/lib/components/contextual-menu/contextual-menu.module.ts b/libs/fabric/lib/components/contextual-menu/contextual-menu.module.ts similarity index 100% rename from libs/fabric/src/lib/components/contextual-menu/contextual-menu.module.ts rename to libs/fabric/lib/components/contextual-menu/contextual-menu.module.ts diff --git a/libs/fabric/src/lib/components/contextual-menu/directives/contextual-menu-item.directive.ts b/libs/fabric/lib/components/contextual-menu/directives/contextual-menu-item.directive.ts similarity index 93% rename from libs/fabric/src/lib/components/contextual-menu/directives/contextual-menu-item.directive.ts rename to libs/fabric/lib/components/contextual-menu/directives/contextual-menu-item.directive.ts index 22f5f57f..15c93ad9 100644 --- a/libs/fabric/src/lib/components/contextual-menu/directives/contextual-menu-item.directive.ts +++ b/libs/fabric/lib/components/contextual-menu/directives/contextual-menu-item.directive.ts @@ -14,14 +14,11 @@ import { TemplateRef, ElementRef, } from '@angular/core'; -import { IContextualMenuItem } from 'office-ui-fabric-react'; +import { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu'; import { KnownKeys, InputRendererOptions } from '@angular-react/core'; - -import { OnChanges } from '../../../declarations/angular/typed-changes'; -import { ItemChangedPayload } from '../../core/declarative/item-changed.payload'; -import { ChangeableItemsHelper, IChangeableItemsContainer } from '../../core/shared/changeable-helper'; -import { ChangeableItemDirective } from '../../core/shared/changeable-item.directive'; -import { getDataAttributes } from '../../../utils/get-data-attributes'; +import { getDataAttributes } from '@angular-react/fabric/lib/utils'; +import { ItemChangedPayload, ChangeableItemsHelper, IChangeableItemsContainer, ChangeableItemDirective } from '@angular-react/fabric/lib/components/core'; +import { OnChanges } from '@angular-react/fabric/lib/declarations'; export type ContextualMenuItemChangedPayload = ItemChangedPayload< IContextualMenuItemOptions['key'], diff --git a/libs/fabric/lib/components/contextual-menu/index.ts b/libs/fabric/lib/components/contextual-menu/index.ts new file mode 100644 index 00000000..7e1a213e --- /dev/null +++ b/libs/fabric/lib/components/contextual-menu/index.ts @@ -0,0 +1 @@ +export * from './public-api'; diff --git a/libs/fabric/lib/components/contextual-menu/ng-package.json b/libs/fabric/lib/components/contextual-menu/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/contextual-menu/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/contextual-menu/public-api.ts b/libs/fabric/lib/components/contextual-menu/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/contextual-menu/public-api.ts rename to libs/fabric/lib/components/contextual-menu/public-api.ts diff --git a/libs/fabric/src/lib/components/core/declarative/item-changed.helpers.ts b/libs/fabric/lib/components/core/declarative/item-changed.helpers.ts similarity index 100% rename from libs/fabric/src/lib/components/core/declarative/item-changed.helpers.ts rename to libs/fabric/lib/components/core/declarative/item-changed.helpers.ts diff --git a/libs/fabric/src/lib/components/core/declarative/item-changed.payload.ts b/libs/fabric/lib/components/core/declarative/item-changed.payload.ts similarity index 100% rename from libs/fabric/src/lib/components/core/declarative/item-changed.payload.ts rename to libs/fabric/lib/components/core/declarative/item-changed.payload.ts diff --git a/libs/fabric/src/lib/components/core/declarative/item-changed.ts b/libs/fabric/lib/components/core/declarative/item-changed.ts similarity index 100% rename from libs/fabric/src/lib/components/core/declarative/item-changed.ts rename to libs/fabric/lib/components/core/declarative/item-changed.ts diff --git a/libs/fabric/lib/components/core/index.ts b/libs/fabric/lib/components/core/index.ts new file mode 100644 index 00000000..7e1a213e --- /dev/null +++ b/libs/fabric/lib/components/core/index.ts @@ -0,0 +1 @@ +export * from './public-api'; diff --git a/libs/fabric/lib/components/core/ng-package.json b/libs/fabric/lib/components/core/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/core/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/lib/components/core/public-api.ts b/libs/fabric/lib/components/core/public-api.ts new file mode 100644 index 00000000..99bfcf3a --- /dev/null +++ b/libs/fabric/lib/components/core/public-api.ts @@ -0,0 +1,7 @@ +export * from './declarative/item-changed'; +export * from './declarative/item-changed.helpers'; +export * from './declarative/item-changed.payload'; + +export * from './shared/changeable-helper'; +export * from './shared/changeable-item.directive'; +export * from './shared/changeable-items.directive'; diff --git a/libs/fabric/src/lib/components/core/shared/changeable-helper.ts b/libs/fabric/lib/components/core/shared/changeable-helper.ts similarity index 97% rename from libs/fabric/src/lib/components/core/shared/changeable-helper.ts rename to libs/fabric/lib/components/core/shared/changeable-helper.ts index d7726799..deb4c2b3 100644 --- a/libs/fabric/src/lib/components/core/shared/changeable-helper.ts +++ b/libs/fabric/lib/components/core/shared/changeable-helper.ts @@ -4,7 +4,7 @@ import { EventEmitter, QueryList } from '@angular/core'; import { Subscription } from 'rxjs'; -import { ItemChangedPayload, ItemChanges } from '../../core/declarative/item-changed.payload'; +import { ItemChangedPayload, ItemChanges } from '../declarative/item-changed.payload'; import { ChangeableItemDirective } from './changeable-item.directive'; /** diff --git a/libs/fabric/src/lib/components/core/shared/changeable-item.directive.ts b/libs/fabric/lib/components/core/shared/changeable-item.directive.ts similarity index 84% rename from libs/fabric/src/lib/components/core/shared/changeable-item.directive.ts rename to libs/fabric/lib/components/core/shared/changeable-item.directive.ts index b38bdd88..a3ed5916 100644 --- a/libs/fabric/src/lib/components/core/shared/changeable-item.directive.ts +++ b/libs/fabric/lib/components/core/shared/changeable-item.directive.ts @@ -3,8 +3,8 @@ import { EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { OnChanges } from '../../../declarations/angular/typed-changes'; -import { ItemChangedPayload, ItemChanges } from '../../core/declarative/item-changed.payload'; +import { OnChanges } from '@angular-react/fabric/lib/declarations';; +import { ItemChangedPayload, ItemChanges } from '../declarative/item-changed.payload'; import { ChangeableItemHelper } from './changeable-helper'; /** diff --git a/libs/fabric/src/lib/components/core/shared/changeable-items.directive.ts b/libs/fabric/lib/components/core/shared/changeable-items.directive.ts similarity index 94% rename from libs/fabric/src/lib/components/core/shared/changeable-items.directive.ts rename to libs/fabric/lib/components/core/shared/changeable-items.directive.ts index 95ae7f7d..066d0128 100644 --- a/libs/fabric/src/lib/components/core/shared/changeable-items.directive.ts +++ b/libs/fabric/lib/components/core/shared/changeable-items.directive.ts @@ -3,7 +3,7 @@ import { AfterContentInit, ContentChildren, EventEmitter, OnDestroy, Output, QueryList } from '@angular/core'; -import { ItemChangedPayload } from '../../core/declarative/item-changed.payload'; +import { ItemChangedPayload } from '../declarative/item-changed.payload'; import { ChangeableItemsHelper, IChangeableItemsContainer } from './changeable-helper'; import { ChangeableItemDirective } from './changeable-item.directive'; diff --git a/libs/fabric/src/lib/components/date-picker/date-picker.component.ts b/libs/fabric/lib/components/date-picker/date-picker.component.ts similarity index 96% rename from libs/fabric/src/lib/components/date-picker/date-picker.component.ts rename to libs/fabric/lib/components/date-picker/date-picker.component.ts index 5f73019b..6f000231 100644 --- a/libs/fabric/src/lib/components/date-picker/date-picker.component.ts +++ b/libs/fabric/lib/components/date-picker/date-picker.component.ts @@ -13,8 +13,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IDatePickerProps } from 'office-ui-fabric-react'; +import { IDatePickerProps } from '@fluentui/react/lib/DatePicker'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabDatePickerComponent') @Component({ selector: 'fab-date-picker', exportAs: 'fabDatePicker', diff --git a/libs/fabric/src/lib/components/date-picker/date-picker.module.ts b/libs/fabric/lib/components/date-picker/date-picker.module.ts similarity index 75% rename from libs/fabric/src/lib/components/date-picker/date-picker.module.ts rename to libs/fabric/lib/components/date-picker/date-picker.module.ts index 2f3875f1..9b004cc7 100644 --- a/libs/fabric/src/lib/components/date-picker/date-picker.module.ts +++ b/libs/fabric/lib/components/date-picker/date-picker.module.ts @@ -4,13 +4,13 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { DatePicker } from 'office-ui-fabric-react'; -import * as CalendarCss from 'office-ui-fabric-react/lib-amd/components/Calendar/Calendar.scss'; -import { noop } from '../../utils/noop'; +import { DatePicker } from '@fluentui/react/lib/DatePicker'; +// import * as CalendarCss from 'office-ui-fabric-react/lib-amd/components/Calendar/Calendar.scss'; +// import { noop } from '@angular-react/fabric/lib/utils'; import { FabDatePickerComponent } from './date-picker.component'; // Dummy action to force CalendarCss to load and not be tree-shaken away. -noop(CalendarCss); +// noop(CalendarCss); const components = [FabDatePickerComponent]; diff --git a/libs/fabric/lib/components/date-picker/ng-package.json b/libs/fabric/lib/components/date-picker/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/date-picker/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/date-picker/public-api.ts b/libs/fabric/lib/components/date-picker/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/date-picker/public-api.ts rename to libs/fabric/lib/components/date-picker/public-api.ts diff --git a/libs/fabric/src/lib/components/details-list/details-list.component.ts b/libs/fabric/lib/components/details-list/details-list.component.ts similarity index 97% rename from libs/fabric/src/lib/components/details-list/details-list.component.ts rename to libs/fabric/lib/components/details-list/details-list.component.ts index 17398da1..ce710138 100644 --- a/libs/fabric/src/lib/components/details-list/details-list.component.ts +++ b/libs/fabric/lib/components/details-list/details-list.component.ts @@ -28,18 +28,19 @@ import { IDetailsListProps, IDetailsRowProps, IGroup, -} from 'office-ui-fabric-react/lib/DetailsList'; -import { IListProps } from 'office-ui-fabric-react/lib/List'; +} from '@fluentui/react/lib/DetailsList'; +import { IListProps } from '@fluentui/react/lib/List'; import { Subscription } from 'rxjs'; +import { omit } from '@angular-react/fabric/lib/utils'; +import { mergeItemChanges, ChangeableItemsDirective } from '@angular-react/fabric/lib/components/core'; +import { TypedChanges, OnChanges } from '@angular-react/fabric/lib/declarations'; -import { OnChanges, TypedChanges } from '../../declarations/angular/typed-changes'; -import { omit } from '../../utils/omit'; -import { mergeItemChanges } from '../core/declarative/item-changed'; -import { ChangeableItemsDirective } from '../core/shared/changeable-items.directive'; import { IDetailsListColumnOptions } from './directives/details-list-column.directive'; import { DetailsListColumnsDirective } from './directives/details-list-columns.directive'; import { DetailsListGroupsDirective } from './directives/details-list-groups.directive'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabDetailsListComponent') @Component({ selector: 'fab-details-list', exportAs: 'fabDetailsList', diff --git a/libs/fabric/src/lib/components/details-list/details-list.module.ts b/libs/fabric/lib/components/details-list/details-list.module.ts similarity index 89% rename from libs/fabric/src/lib/components/details-list/details-list.module.ts rename to libs/fabric/lib/components/details-list/details-list.module.ts index 1f7216cb..8de3f512 100644 --- a/libs/fabric/src/lib/components/details-list/details-list.module.ts +++ b/libs/fabric/lib/components/details-list/details-list.module.ts @@ -4,9 +4,9 @@ import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; import { registerElement } from '@angular-react/core'; -import { DetailsList } from 'office-ui-fabric-react'; +import { DetailsList } from '@fluentui/react/lib/DetailsList'; -import { FabGroupModule } from '../group/group.module'; +import { FabGroupModule } from '@angular-react/fabric/lib/components/group'; import { FabDetailsListComponent } from './details-list.component'; import { DetailsListColumnDirective, diff --git a/libs/fabric/src/lib/components/details-list/directives/details-list-column.directive.ts b/libs/fabric/lib/components/details-list/directives/details-list-column.directive.ts similarity index 95% rename from libs/fabric/src/lib/components/details-list/directives/details-list-column.directive.ts rename to libs/fabric/lib/components/details-list/directives/details-list-column.directive.ts index 5c7f11aa..54417fb0 100644 --- a/libs/fabric/src/lib/components/details-list/directives/details-list-column.directive.ts +++ b/libs/fabric/lib/components/details-list/directives/details-list-column.directive.ts @@ -3,9 +3,8 @@ import { AfterContentInit, ContentChild, Directive, EventEmitter, Input, Output, TemplateRef } from '@angular/core'; import { InputRendererOptions, KnownKeys } from '@angular-react/core'; -import { IColumn } from 'office-ui-fabric-react'; - -import { ChangeableItemDirective } from '../../core/shared/changeable-item.directive'; +import { IColumn } from '@fluentui/react/lib/DetailsList'; +import { ChangeableItemDirective } from '@angular-react/fabric/lib/components/core'; /** * Wrapper directive for rendering a custom column to a DetailsListColumn diff --git a/libs/fabric/src/lib/components/details-list/directives/details-list-columns.directive.ts b/libs/fabric/lib/components/details-list/directives/details-list-columns.directive.ts similarity index 89% rename from libs/fabric/src/lib/components/details-list/directives/details-list-columns.directive.ts rename to libs/fabric/lib/components/details-list/directives/details-list-columns.directive.ts index b5acc699..54051eef 100644 --- a/libs/fabric/src/lib/components/details-list/directives/details-list-columns.directive.ts +++ b/libs/fabric/lib/components/details-list/directives/details-list-columns.directive.ts @@ -2,9 +2,9 @@ // Licensed under the MIT License. import { ContentChildren, Directive, QueryList } from '@angular/core'; -import { IColumn } from 'office-ui-fabric-react'; +import { IColumn } from '@fluentui/react/lib/DetailsList'; +import { ChangeableItemsDirective } from '@angular-react/fabric/lib/components/core'; -import { ChangeableItemsDirective } from '../../core/shared/changeable-items.directive'; import { DetailsListColumnDirective, IDetailsListColumnOptions } from './details-list-column.directive'; /** diff --git a/libs/fabric/src/lib/components/details-list/directives/details-list-groups.directive.ts b/libs/fabric/lib/components/details-list/directives/details-list-groups.directive.ts similarity index 70% rename from libs/fabric/src/lib/components/details-list/directives/details-list-groups.directive.ts rename to libs/fabric/lib/components/details-list/directives/details-list-groups.directive.ts index efc4b605..c98a1542 100644 --- a/libs/fabric/src/lib/components/details-list/directives/details-list-groups.directive.ts +++ b/libs/fabric/lib/components/details-list/directives/details-list-groups.directive.ts @@ -2,10 +2,10 @@ // Licensed under the MIT License. import { ContentChildren, Directive, QueryList } from '@angular/core'; -import { IGroup } from 'office-ui-fabric-react'; +import { IGroup } from '@fluentui/react/lib/DetailsList'; +import { ChangeableItemsDirective } from '@angular-react/fabric/lib/components/core'; -import { ChangeableItemsDirective } from '../../core/shared/changeable-items.directive'; -import { GroupItemDirective } from '../../group/directives/group-item.directive'; +import { GroupItemDirective } from '@angular-react/fabric/lib/components/group'; /** * Wrapper directive for creating multiple DetailsList Groups diff --git a/libs/fabric/lib/components/details-list/ng-package.json b/libs/fabric/lib/components/details-list/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/details-list/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/lib/components/details-list/public-api.ts b/libs/fabric/lib/components/details-list/public-api.ts new file mode 100644 index 00000000..465266ea --- /dev/null +++ b/libs/fabric/lib/components/details-list/public-api.ts @@ -0,0 +1,8 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +export * from './details-list.component'; +export * from './details-list.module'; +export * from './directives/details-list-column.directive'; +export * from './directives/details-list-columns.directive'; +export * from './directives/details-list-groups.directive'; diff --git a/libs/fabric/src/lib/components/dialog/dialog.component.ts b/libs/fabric/lib/components/dialog/dialog.component.ts similarity index 96% rename from libs/fabric/src/lib/components/dialog/dialog.component.ts rename to libs/fabric/lib/components/dialog/dialog.component.ts index 81c69465..0a001568 100644 --- a/libs/fabric/src/lib/components/dialog/dialog.component.ts +++ b/libs/fabric/lib/components/dialog/dialog.component.ts @@ -13,8 +13,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IDialogContentProps, IDialogFooterProps, IDialogProps } from 'office-ui-fabric-react/lib/Dialog'; +import { IDialogContentProps, IDialogFooterProps, IDialogProps } from '@fluentui/react/lib/Dialog'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabDialogComponent') @Component({ selector: 'fab-dialog', exportAs: 'fabDialog', @@ -77,6 +79,7 @@ export class FabDialogComponent extends ReactWrapperComponent { } } +@Styled('FabDialogFooterComponent') @Component({ selector: 'fab-dialog-footer', exportAs: 'fabDialogFooter', @@ -101,6 +104,7 @@ export class FabDialogFooterComponent extends ReactWrapperComponent @Input() selectedKeys?: IDropdownProps['selectedKeys']; @Input() multiSelectDelimiter?: IDropdownProps['multiSelectDelimiter']; @Input() notifyOnReselect?: IDropdownProps['notifyOnReselect']; - @Input() keytipProps?: IDropdownProps['keytipProps']; @Input() theme?: IDropdownProps['theme']; @Input() styles?: IDropdownProps['styles']; diff --git a/libs/fabric/src/lib/components/dropdown/dropdown.module.ts b/libs/fabric/lib/components/dropdown/dropdown.module.ts similarity index 94% rename from libs/fabric/src/lib/components/dropdown/dropdown.module.ts rename to libs/fabric/lib/components/dropdown/dropdown.module.ts index 27e3c180..0e2cd459 100644 --- a/libs/fabric/src/lib/components/dropdown/dropdown.module.ts +++ b/libs/fabric/lib/components/dropdown/dropdown.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Dropdown } from 'office-ui-fabric-react'; +import { Dropdown } from '@fluentui/react/lib/Dropdown'; import { FabDropdownComponent } from './dropdown.component'; import { DropdownOptionDirective } from './directives/dropdown-option.directive'; import { DropdownOptionsDirective } from './directives/dropdown-options.directive'; diff --git a/libs/fabric/lib/components/dropdown/ng-package.json b/libs/fabric/lib/components/dropdown/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/dropdown/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/dropdown/public-api.ts b/libs/fabric/lib/components/dropdown/public-api.ts similarity index 60% rename from libs/fabric/src/lib/components/dropdown/public-api.ts rename to libs/fabric/lib/components/dropdown/public-api.ts index c45bf365..88125fed 100644 --- a/libs/fabric/src/lib/components/dropdown/public-api.ts +++ b/libs/fabric/lib/components/dropdown/public-api.ts @@ -3,3 +3,5 @@ export * from './dropdown.component'; export * from './dropdown.module'; +export * from './directives/dropdown-option.directive'; +export * from './directives/dropdown-options.directive'; diff --git a/libs/fabric/src/lib/components/fabric/fabric.component.ts b/libs/fabric/lib/components/fabric/fabric.component.ts similarity index 87% rename from libs/fabric/src/lib/components/fabric/fabric.component.ts rename to libs/fabric/lib/components/fabric/fabric.component.ts index 7708ad43..06f3ead6 100644 --- a/libs/fabric/src/lib/components/fabric/fabric.component.ts +++ b/libs/fabric/lib/components/fabric/fabric.component.ts @@ -11,8 +11,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IFabricProps } from 'office-ui-fabric-react/lib/Fabric'; +import { IFabricProps } from '@fluentui/react/lib/Fabric'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabFabricComponent') @Component({ selector: 'fab-fabric', exportAs: 'fabFabric', diff --git a/libs/fabric/src/lib/components/fabric/fabric.module.ts b/libs/fabric/lib/components/fabric/fabric.module.ts similarity index 92% rename from libs/fabric/src/lib/components/fabric/fabric.module.ts rename to libs/fabric/lib/components/fabric/fabric.module.ts index 5c17d2e8..0b545e36 100644 --- a/libs/fabric/src/lib/components/fabric/fabric.module.ts +++ b/libs/fabric/lib/components/fabric/fabric.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Fabric } from 'office-ui-fabric-react'; +import { Fabric } from '@fluentui/react/lib/Fabric'; import { FabFabricComponent } from './fabric.component'; const components = [FabFabricComponent]; diff --git a/libs/fabric/lib/components/fabric/ng-package.json b/libs/fabric/lib/components/fabric/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/fabric/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/fabric/public-api.ts b/libs/fabric/lib/components/fabric/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/fabric/public-api.ts rename to libs/fabric/lib/components/fabric/public-api.ts diff --git a/libs/fabric/src/lib/components/group/directives/group-item.directive.ts b/libs/fabric/lib/components/group/directives/group-item.directive.ts similarity index 84% rename from libs/fabric/src/lib/components/group/directives/group-item.directive.ts rename to libs/fabric/lib/components/group/directives/group-item.directive.ts index 88e7c9e5..a8ea3068 100644 --- a/libs/fabric/src/lib/components/group/directives/group-item.directive.ts +++ b/libs/fabric/lib/components/group/directives/group-item.directive.ts @@ -11,11 +11,8 @@ import { Output, QueryList, } from '@angular/core'; -import { IGroup } from 'office-ui-fabric-react'; - -import { ItemChangedPayload } from '../../core/declarative/item-changed'; -import { ChangeableItemsHelper, IChangeableItemsContainer } from '../../core/shared/changeable-helper'; -import { ChangeableItemDirective } from '../../core/shared/changeable-item.directive'; +import { IGroup } from '@fluentui/react/lib/GroupedList'; +import { ItemChangedPayload, ChangeableItemsHelper, IChangeableItemsContainer, ChangeableItemDirective } from '@angular-react/fabric/lib/components/core'; @Directive({ selector: 'fab-group-item' }) export class GroupItemDirective extends ChangeableItemDirective diff --git a/libs/fabric/src/lib/components/group/group.module.ts b/libs/fabric/lib/components/group/group.module.ts similarity index 100% rename from libs/fabric/src/lib/components/group/group.module.ts rename to libs/fabric/lib/components/group/group.module.ts diff --git a/libs/fabric/lib/components/group/ng-package.json b/libs/fabric/lib/components/group/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/group/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/group/public-api.ts b/libs/fabric/lib/components/group/public-api.ts similarity index 77% rename from libs/fabric/src/lib/components/group/public-api.ts rename to libs/fabric/lib/components/group/public-api.ts index b798cd8a..c45f05d9 100644 --- a/libs/fabric/src/lib/components/group/public-api.ts +++ b/libs/fabric/lib/components/group/public-api.ts @@ -3,3 +3,4 @@ export * from './directives/group-item.directive'; export * from './group.module'; +export * from './directives/group-item.directive'; diff --git a/libs/fabric/src/lib/components/grouped-list/grouped-list.component.ts b/libs/fabric/lib/components/grouped-list/grouped-list.component.ts similarity index 93% rename from libs/fabric/src/lib/components/grouped-list/grouped-list.component.ts rename to libs/fabric/lib/components/grouped-list/grouped-list.component.ts index 7c5ee2cb..2d48be52 100644 --- a/libs/fabric/src/lib/components/grouped-list/grouped-list.component.ts +++ b/libs/fabric/lib/components/grouped-list/grouped-list.component.ts @@ -15,9 +15,11 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IGroup, IGroupedListProps, IGroupRenderProps } from 'office-ui-fabric-react/lib/GroupedList'; -import { IListProps } from 'office-ui-fabric-react/lib/List'; +import { IGroup, IGroupedListProps, IGroupRenderProps } from '@fluentui/react/lib/GroupedList'; +import { IListProps } from '@fluentui/react/lib/List'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabGroupedListComponent') @Component({ selector: 'fab-grouped-list', exportAs: 'fabGroupedList', diff --git a/libs/fabric/src/lib/components/grouped-list/grouped-list.module.ts b/libs/fabric/lib/components/grouped-list/grouped-list.module.ts similarity index 91% rename from libs/fabric/src/lib/components/grouped-list/grouped-list.module.ts rename to libs/fabric/lib/components/grouped-list/grouped-list.module.ts index 6d445f95..452b0de1 100644 --- a/libs/fabric/src/lib/components/grouped-list/grouped-list.module.ts +++ b/libs/fabric/lib/components/grouped-list/grouped-list.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { GroupedList } from 'office-ui-fabric-react'; +import { GroupedList } from '@fluentui/react/lib/GroupedList'; import { FabGroupedListComponent } from './grouped-list.component'; const components = [FabGroupedListComponent]; diff --git a/libs/fabric/lib/components/grouped-list/ng-package.json b/libs/fabric/lib/components/grouped-list/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/grouped-list/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/grouped-list/public-api.ts b/libs/fabric/lib/components/grouped-list/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/grouped-list/public-api.ts rename to libs/fabric/lib/components/grouped-list/public-api.ts diff --git a/libs/fabric/src/lib/components/hover-card/expanding-card.component.ts b/libs/fabric/lib/components/hover-card/expanding-card.component.ts similarity index 95% rename from libs/fabric/src/lib/components/hover-card/expanding-card.component.ts rename to libs/fabric/lib/components/hover-card/expanding-card.component.ts index 6f873ea9..629149c0 100644 --- a/libs/fabric/src/lib/components/hover-card/expanding-card.component.ts +++ b/libs/fabric/lib/components/hover-card/expanding-card.component.ts @@ -15,8 +15,10 @@ import { Renderer2, NgZone, } from '@angular/core'; -import { IExpandingCardProps } from 'office-ui-fabric-react/lib/HoverCard'; +import { IExpandingCardProps } from '@fluentui/react/lib/HoverCard'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabExpandingCardComponent') @Component({ selector: 'fab-expanding-card', exportAs: 'fabExpandingCard', diff --git a/libs/fabric/src/lib/components/hover-card/hover-card.component.ts b/libs/fabric/lib/components/hover-card/hover-card.component.ts similarity index 97% rename from libs/fabric/src/lib/components/hover-card/hover-card.component.ts rename to libs/fabric/lib/components/hover-card/hover-card.component.ts index 93794df3..7d3bfa42 100644 --- a/libs/fabric/src/lib/components/hover-card/hover-card.component.ts +++ b/libs/fabric/lib/components/hover-card/hover-card.component.ts @@ -14,9 +14,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IExpandingCardProps, IHoverCardProps, IPlainCardProps } from 'office-ui-fabric-react/lib/HoverCard'; -import { omit } from '../../utils/omit'; +import { IExpandingCardProps, IHoverCardProps, IPlainCardProps } from '@fluentui/react/lib/HoverCard'; +import { omit, Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabHoverCardComponent') @Component({ selector: 'fab-hover-card', exportAs: 'fabHoverCard', diff --git a/libs/fabric/src/lib/components/hover-card/hover-card.module.ts b/libs/fabric/lib/components/hover-card/hover-card.module.ts similarity index 91% rename from libs/fabric/src/lib/components/hover-card/hover-card.module.ts rename to libs/fabric/lib/components/hover-card/hover-card.module.ts index a02fbd7a..3ff7fb95 100644 --- a/libs/fabric/src/lib/components/hover-card/hover-card.module.ts +++ b/libs/fabric/lib/components/hover-card/hover-card.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { ExpandingCard, HoverCard, PlainCard } from 'office-ui-fabric-react'; +import { ExpandingCard, HoverCard, PlainCard } from '@fluentui/react/lib/HoverCard'; import { FabHoverCardComponent } from './hover-card.component'; import { FabExpandingCardComponent } from './expanding-card.component'; import { FabPlainCardComponent } from './plain-card.component'; diff --git a/libs/fabric/lib/components/hover-card/ng-package.json b/libs/fabric/lib/components/hover-card/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/hover-card/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/hover-card/plain-card.component.ts b/libs/fabric/lib/components/hover-card/plain-card.component.ts similarity index 94% rename from libs/fabric/src/lib/components/hover-card/plain-card.component.ts rename to libs/fabric/lib/components/hover-card/plain-card.component.ts index 59f98f20..49906e2f 100644 --- a/libs/fabric/src/lib/components/hover-card/plain-card.component.ts +++ b/libs/fabric/lib/components/hover-card/plain-card.component.ts @@ -15,8 +15,10 @@ import { Renderer2, NgZone, } from '@angular/core'; -import { IPlainCardProps } from 'office-ui-fabric-react/lib/HoverCard'; +import { IPlainCardProps } from '@fluentui/react/lib/HoverCard'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabPlainCardComponent') @Component({ selector: 'fab-plain-card', exportAs: 'fabPlainCard', diff --git a/libs/fabric/src/lib/components/hover-card/public-api.ts b/libs/fabric/lib/components/hover-card/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/hover-card/public-api.ts rename to libs/fabric/lib/components/hover-card/public-api.ts diff --git a/libs/fabric/src/lib/components/icon/icon.component.ts b/libs/fabric/lib/components/icon/icon.component.ts similarity index 91% rename from libs/fabric/src/lib/components/icon/icon.component.ts rename to libs/fabric/lib/components/icon/icon.component.ts index f80a5b2f..b0588a56 100644 --- a/libs/fabric/src/lib/components/icon/icon.component.ts +++ b/libs/fabric/lib/components/icon/icon.component.ts @@ -11,8 +11,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IIconProps } from 'office-ui-fabric-react/lib/Icon'; +import { IIconProps } from '@fluentui/react/lib/Icon'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabIconComponent') @Component({ selector: 'fab-icon', exportAs: 'fabIcon', diff --git a/libs/fabric/src/lib/components/icon/icon.module.ts b/libs/fabric/lib/components/icon/icon.module.ts similarity index 92% rename from libs/fabric/src/lib/components/icon/icon.module.ts rename to libs/fabric/lib/components/icon/icon.module.ts index 59bfdca1..a78caf91 100644 --- a/libs/fabric/src/lib/components/icon/icon.module.ts +++ b/libs/fabric/lib/components/icon/icon.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Icon } from 'office-ui-fabric-react'; +import { Icon } from '@fluentui/react/lib/Icon'; import { FabIconComponent } from './icon.component'; const components = [FabIconComponent]; diff --git a/libs/fabric/lib/components/icon/ng-package.json b/libs/fabric/lib/components/icon/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/icon/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/icon/public-api.ts b/libs/fabric/lib/components/icon/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/icon/public-api.ts rename to libs/fabric/lib/components/icon/public-api.ts diff --git a/libs/fabric/src/lib/components/image/image.component.ts b/libs/fabric/lib/components/image/image.component.ts similarity index 93% rename from libs/fabric/src/lib/components/image/image.component.ts rename to libs/fabric/lib/components/image/image.component.ts index 422dad0b..6aa280a9 100644 --- a/libs/fabric/src/lib/components/image/image.component.ts +++ b/libs/fabric/lib/components/image/image.component.ts @@ -13,8 +13,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IImageProps, ImageLoadState } from 'office-ui-fabric-react/lib/Image'; +import { IImageProps, ImageLoadState } from '@fluentui/react/lib/Image'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabImageComponent') @Component({ selector: 'fab-image', exportAs: 'fabImage', diff --git a/libs/fabric/src/lib/components/image/image.module.ts b/libs/fabric/lib/components/image/image.module.ts similarity index 92% rename from libs/fabric/src/lib/components/image/image.module.ts rename to libs/fabric/lib/components/image/image.module.ts index 04e41a2d..5ce6ea5d 100644 --- a/libs/fabric/src/lib/components/image/image.module.ts +++ b/libs/fabric/lib/components/image/image.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Image } from 'office-ui-fabric-react'; +import { Image } from '@fluentui/react/lib/Image'; import { FabImageComponent } from './image.component'; const components = [FabImageComponent]; diff --git a/libs/fabric/lib/components/image/ng-package.json b/libs/fabric/lib/components/image/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/image/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/image/public-api.ts b/libs/fabric/lib/components/image/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/image/public-api.ts rename to libs/fabric/lib/components/image/public-api.ts diff --git a/libs/fabric/src/lib/components/link/link.component.ts b/libs/fabric/lib/components/link/link.component.ts similarity index 94% rename from libs/fabric/src/lib/components/link/link.component.ts rename to libs/fabric/lib/components/link/link.component.ts index dbff3e7c..44664efd 100644 --- a/libs/fabric/src/lib/components/link/link.component.ts +++ b/libs/fabric/lib/components/link/link.component.ts @@ -11,8 +11,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { ILinkProps, Link } from 'office-ui-fabric-react'; +import { ILinkProps, Link } from '@fluentui/react/lib/Link'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabLinkComponent') @Component({ selector: 'fab-link', exportAs: 'fabLink', diff --git a/libs/fabric/src/lib/components/link/link.module.ts b/libs/fabric/lib/components/link/link.module.ts similarity index 92% rename from libs/fabric/src/lib/components/link/link.module.ts rename to libs/fabric/lib/components/link/link.module.ts index 34592350..04ed54fa 100644 --- a/libs/fabric/src/lib/components/link/link.module.ts +++ b/libs/fabric/lib/components/link/link.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Link } from 'office-ui-fabric-react'; +import { Link } from '@fluentui/react/lib/Link'; import { FabLinkComponent } from './link.component'; const components = [FabLinkComponent]; diff --git a/libs/fabric/lib/components/link/ng-package.json b/libs/fabric/lib/components/link/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/link/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/link/public-api.ts b/libs/fabric/lib/components/link/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/link/public-api.ts rename to libs/fabric/lib/components/link/public-api.ts diff --git a/libs/fabric/src/lib/components/marquee-selection/marquee-selection.component.ts b/libs/fabric/lib/components/marquee-selection/marquee-selection.component.ts similarity index 91% rename from libs/fabric/src/lib/components/marquee-selection/marquee-selection.component.ts rename to libs/fabric/lib/components/marquee-selection/marquee-selection.component.ts index edbff6a4..f0907105 100644 --- a/libs/fabric/src/lib/components/marquee-selection/marquee-selection.component.ts +++ b/libs/fabric/lib/components/marquee-selection/marquee-selection.component.ts @@ -12,8 +12,10 @@ import { ViewChild, } from '@angular/core'; import { ReactWrapperComponent } from '@angular-react/core'; -import { IMarqueeSelectionProps } from 'office-ui-fabric-react/lib/MarqueeSelection'; +import { IMarqueeSelectionProps } from '@fluentui/react/lib/MarqueeSelection'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabMarqueeSelectionComponent') @Component({ selector: 'fab-marquee-selection', exportAs: 'fabMarqueeSelection', diff --git a/libs/fabric/src/lib/components/marquee-selection/marquee-selection.module.ts b/libs/fabric/lib/components/marquee-selection/marquee-selection.module.ts similarity index 90% rename from libs/fabric/src/lib/components/marquee-selection/marquee-selection.module.ts rename to libs/fabric/lib/components/marquee-selection/marquee-selection.module.ts index f2686b2c..a177081b 100644 --- a/libs/fabric/src/lib/components/marquee-selection/marquee-selection.module.ts +++ b/libs/fabric/lib/components/marquee-selection/marquee-selection.module.ts @@ -4,7 +4,7 @@ import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; import { registerElement } from '@angular-react/core'; -import { MarqueeSelection } from 'office-ui-fabric-react'; +import { MarqueeSelection } from '@fluentui/react/lib/MarqueeSelection'; import { FabMarqueeSelectionComponent } from './marquee-selection.component'; diff --git a/libs/fabric/lib/components/marquee-selection/ng-package.json b/libs/fabric/lib/components/marquee-selection/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/marquee-selection/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/marquee-selection/public-api.ts b/libs/fabric/lib/components/marquee-selection/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/marquee-selection/public-api.ts rename to libs/fabric/lib/components/marquee-selection/public-api.ts diff --git a/libs/fabric/src/lib/components/message-bar/message-bar.component.ts b/libs/fabric/lib/components/message-bar/message-bar.component.ts similarity index 94% rename from libs/fabric/src/lib/components/message-bar/message-bar.component.ts rename to libs/fabric/lib/components/message-bar/message-bar.component.ts index d40757f8..bb97ec72 100644 --- a/libs/fabric/src/lib/components/message-bar/message-bar.component.ts +++ b/libs/fabric/lib/components/message-bar/message-bar.component.ts @@ -15,8 +15,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IMessageBarProps } from 'office-ui-fabric-react/lib/MessageBar'; +import { IMessageBarProps } from '@fluentui/react/lib/MessageBar'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabMessageBarComponent') @Component({ selector: 'fab-message-bar', exportAs: 'fabMessageBar', diff --git a/libs/fabric/src/lib/components/message-bar/message-bar.module.ts b/libs/fabric/lib/components/message-bar/message-bar.module.ts similarity index 91% rename from libs/fabric/src/lib/components/message-bar/message-bar.module.ts rename to libs/fabric/lib/components/message-bar/message-bar.module.ts index c1e36cfb..04a03a45 100644 --- a/libs/fabric/src/lib/components/message-bar/message-bar.module.ts +++ b/libs/fabric/lib/components/message-bar/message-bar.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { MessageBar } from 'office-ui-fabric-react'; +import { MessageBar } from '@fluentui/react/lib/MessageBar'; import { FabMessageBarComponent } from './message-bar.component'; const components = [FabMessageBarComponent]; diff --git a/libs/fabric/lib/components/message-bar/ng-package.json b/libs/fabric/lib/components/message-bar/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/message-bar/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/message-bar/public-api.ts b/libs/fabric/lib/components/message-bar/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/message-bar/public-api.ts rename to libs/fabric/lib/components/message-bar/public-api.ts diff --git a/libs/fabric/src/lib/components/modal/modal.component.ts b/libs/fabric/lib/components/modal/modal.component.ts similarity index 91% rename from libs/fabric/src/lib/components/modal/modal.component.ts rename to libs/fabric/lib/components/modal/modal.component.ts index 005855d4..5c582871 100644 --- a/libs/fabric/src/lib/components/modal/modal.component.ts +++ b/libs/fabric/lib/components/modal/modal.component.ts @@ -13,10 +13,12 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IAccessiblePopupProps } from 'office-ui-fabric-react/lib/common/IAccessiblePopupProps'; -import { IModalProps } from 'office-ui-fabric-react/lib/Modal'; -import { IWithResponsiveModeState } from 'office-ui-fabric-react/lib/utilities/decorators/withResponsiveMode'; +import { IAccessiblePopupProps } from '@fluentui/react/lib/common/IAccessiblePopupProps'; +import { IModalProps } from '@fluentui/react/lib/Modal'; +import { IWithResponsiveModeState } from '@fluentui/react/lib/utilities/decorators/withResponsiveMode'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabModalComponent') @Component({ selector: 'fab-modal', exportAs: 'fabModal', diff --git a/libs/fabric/src/lib/components/modal/modal.module.ts b/libs/fabric/lib/components/modal/modal.module.ts similarity index 92% rename from libs/fabric/src/lib/components/modal/modal.module.ts rename to libs/fabric/lib/components/modal/modal.module.ts index 8546440c..cf3cf441 100644 --- a/libs/fabric/src/lib/components/modal/modal.module.ts +++ b/libs/fabric/lib/components/modal/modal.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Modal } from 'office-ui-fabric-react'; +import { Modal } from '@fluentui/react/lib/Modal'; import { FabModalComponent } from './modal.component'; const components = [FabModalComponent]; diff --git a/libs/fabric/lib/components/modal/ng-package.json b/libs/fabric/lib/components/modal/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/modal/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/modal/public-api.ts b/libs/fabric/lib/components/modal/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/modal/public-api.ts rename to libs/fabric/lib/components/modal/public-api.ts diff --git a/libs/fabric/src/lib/components/nav/nav.component.ts b/libs/fabric/lib/components/nav/nav.component.ts similarity index 93% rename from libs/fabric/src/lib/components/nav/nav.component.ts rename to libs/fabric/lib/components/nav/nav.component.ts index 5396d048..803ed537 100644 --- a/libs/fabric/src/lib/components/nav/nav.component.ts +++ b/libs/fabric/lib/components/nav/nav.component.ts @@ -2,7 +2,7 @@ // Licensed under the MIT License. import { ReactWrapperComponent } from '@angular-react/core'; -import { INavProps, INavLink, INav } from 'office-ui-fabric-react'; +import { INavProps, INavLink, INav } from '@fluentui/react/lib/Nav'; import { Component, ChangeDetectionStrategy, @@ -14,7 +14,9 @@ import { Output, EventEmitter, } from '@angular/core'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabNavComponent') @Component({ selector: 'fab-nav', exportAs: 'fabNav', diff --git a/libs/fabric/src/lib/components/nav/nav.module.ts b/libs/fabric/lib/components/nav/nav.module.ts similarity index 89% rename from libs/fabric/src/lib/components/nav/nav.module.ts rename to libs/fabric/lib/components/nav/nav.module.ts index 18814c13..c3f2f5e1 100644 --- a/libs/fabric/src/lib/components/nav/nav.module.ts +++ b/libs/fabric/lib/components/nav/nav.module.ts @@ -1,20 +1,20 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import { registerElement } from "@angular-react/core"; -import { Nav } from "office-ui-fabric-react"; -import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { FabNavComponent } from "./nav.component"; - -@NgModule({ - imports: [CommonModule], - declarations: [FabNavComponent], - exports: [FabNavComponent], - schemas: [NO_ERRORS_SCHEMA] -}) -export class FabNavModule { - constructor() { - registerElement('Nav', () => Nav) - } +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import { registerElement } from "@angular-react/core"; +import { Nav } from "@fluentui/react/lib/Nav"; +import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { FabNavComponent } from "./nav.component"; + +@NgModule({ + imports: [CommonModule], + declarations: [FabNavComponent], + exports: [FabNavComponent], + schemas: [NO_ERRORS_SCHEMA] +}) +export class FabNavModule { + constructor() { + registerElement('Nav', () => Nav) + } } \ No newline at end of file diff --git a/libs/fabric/lib/components/nav/ng-package.json b/libs/fabric/lib/components/nav/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/nav/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/nav/public-api.ts b/libs/fabric/lib/components/nav/public-api.ts similarity index 97% rename from libs/fabric/src/lib/components/nav/public-api.ts rename to libs/fabric/lib/components/nav/public-api.ts index 5d73ba6c..2f552891 100644 --- a/libs/fabric/src/lib/components/nav/public-api.ts +++ b/libs/fabric/lib/components/nav/public-api.ts @@ -1,5 +1,5 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -export * from './nav.module'; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +export * from './nav.module'; export * from './nav.component'; \ No newline at end of file diff --git a/libs/fabric/lib/components/panel/ng-package.json b/libs/fabric/lib/components/panel/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/panel/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/panel/panel.component.ts b/libs/fabric/lib/components/panel/panel.component.ts similarity index 97% rename from libs/fabric/src/lib/components/panel/panel.component.ts rename to libs/fabric/lib/components/panel/panel.component.ts index 86375cd2..5adc9c41 100644 --- a/libs/fabric/src/lib/components/panel/panel.component.ts +++ b/libs/fabric/lib/components/panel/panel.component.ts @@ -15,8 +15,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IPanelHeaderRenderer, IPanelProps } from 'office-ui-fabric-react/lib/Panel'; +import { IPanelHeaderRenderer, IPanelProps } from '@fluentui/react/lib/Panel'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabPanelComponent') @Component({ selector: 'fab-panel', exportAs: 'fabPanel', diff --git a/libs/fabric/src/lib/components/panel/panel.module.ts b/libs/fabric/lib/components/panel/panel.module.ts similarity index 92% rename from libs/fabric/src/lib/components/panel/panel.module.ts rename to libs/fabric/lib/components/panel/panel.module.ts index a1957a74..f89a1e66 100644 --- a/libs/fabric/src/lib/components/panel/panel.module.ts +++ b/libs/fabric/lib/components/panel/panel.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Panel } from 'office-ui-fabric-react'; +import { Panel } from '@fluentui/react/lib/Panel'; import { FabPanelComponent } from './panel.component'; const components = [FabPanelComponent]; diff --git a/libs/fabric/src/lib/components/panel/public-api.ts b/libs/fabric/lib/components/panel/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/panel/public-api.ts rename to libs/fabric/lib/components/panel/public-api.ts diff --git a/libs/fabric/lib/components/persona/ng-package.json b/libs/fabric/lib/components/persona/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/persona/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/persona/persona.component.ts b/libs/fabric/lib/components/persona/persona.component.ts similarity index 96% rename from libs/fabric/src/lib/components/persona/persona.component.ts rename to libs/fabric/lib/components/persona/persona.component.ts index f960935d..35c001f4 100644 --- a/libs/fabric/src/lib/components/persona/persona.component.ts +++ b/libs/fabric/lib/components/persona/persona.component.ts @@ -15,8 +15,9 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { ImageLoadState } from 'office-ui-fabric-react/lib/components/Image/Image.types'; -import { IPersonaCoinProps, IPersonaProps, IPersonaSharedProps } from 'office-ui-fabric-react/lib/Persona'; +import { ImageLoadState } from '@fluentui/react/lib/components/Image/Image.types'; +import { IPersonaCoinProps, IPersonaProps, IPersonaSharedProps } from '@fluentui/react/lib/Persona'; +import { Styled } from '@angular-react/fabric/lib/utils'; export abstract class FabPersonaBaseComponent extends ReactWrapperComponent implements OnInit { @@ -59,6 +60,7 @@ export abstract class FabPersonaBaseComponent } } +@Styled('FabPersonaCoinComponent') @Component({ selector: 'fab-persona-coin', exportAs: 'fabPersonaCoin', diff --git a/libs/fabric/src/lib/components/persona/persona.module.ts b/libs/fabric/lib/components/persona/persona.module.ts similarity index 91% rename from libs/fabric/src/lib/components/persona/persona.module.ts rename to libs/fabric/lib/components/persona/persona.module.ts index 3626afa5..16ef88b8 100644 --- a/libs/fabric/src/lib/components/persona/persona.module.ts +++ b/libs/fabric/lib/components/persona/persona.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Persona, PersonaCoin } from 'office-ui-fabric-react'; +import { Persona, PersonaCoin } from '@fluentui/react/lib/Persona'; import { FabPersonaCoinComponent, FabPersonaComponent } from './persona.component'; const components = [FabPersonaComponent, FabPersonaCoinComponent]; diff --git a/libs/fabric/src/lib/components/persona/public-api.ts b/libs/fabric/lib/components/persona/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/persona/public-api.ts rename to libs/fabric/lib/components/persona/public-api.ts diff --git a/libs/fabric/src/lib/components/pickers/base-picker/base-picker.component.ts b/libs/fabric/lib/components/pickers/base-picker/base-picker.component.ts similarity index 94% rename from libs/fabric/src/lib/components/pickers/base-picker/base-picker.component.ts rename to libs/fabric/lib/components/pickers/base-picker/base-picker.component.ts index e923e469..6c3e1854 100644 --- a/libs/fabric/src/lib/components/pickers/base-picker/base-picker.component.ts +++ b/libs/fabric/lib/components/pickers/base-picker/base-picker.component.ts @@ -3,14 +3,13 @@ import { InputRendererOptions, JsxRenderFunc, Omit, ReactWrapperComponent } from '@angular-react/core'; import { ChangeDetectorRef, ElementRef, EventEmitter, Input, NgZone, OnInit, Output, Renderer2 } from '@angular/core'; -import { IPersonaProps } from 'office-ui-fabric-react/lib/Persona'; +import { IPersonaProps } from '@fluentui/react/lib/Persona'; import { - BaseAutoFill, IBasePickerProps, IBasePickerSuggestionsProps, IPickerItemProps, -} from 'office-ui-fabric-react/lib/Pickers'; -import omit from '../../../utils/omit'; +} from '@fluentui/react/lib/Pickers'; +import { omit } from '@angular-react/fabric/lib/utils'; export abstract class FabBasePickerComponent> extends ReactWrapperComponent @@ -19,7 +18,7 @@ export abstract class FabBasePickerComponent['resolveDelay']; @Input() defaultSelectedItems?: IBasePickerProps['defaultSelectedItems']; @Input() getTextFromItem?: IBasePickerProps['getTextFromItem']; - @Input() className?: IBasePickerProps['className']; + @Input() className?: IBasePickerProps['className']; @Input() pickerCalloutProps?: IBasePickerProps['pickerCalloutProps']; @Input() searchingText?: IBasePickerProps['searchingText']; @Input() disabled?: IBasePickerProps['disabled']; @@ -88,11 +87,11 @@ export abstract class FabBasePickerComponent) { + onFocusHandler(event: React.FocusEvent) { this.onFocus.emit(event.nativeEvent); } - onBlurHandler(event: React.FocusEvent) { + onBlurHandler(event: React.FocusEvent) { this.onBlur.emit(event.nativeEvent); } diff --git a/libs/fabric/src/lib/components/pickers/base-picker/base-picker.module.ts b/libs/fabric/lib/components/pickers/base-picker/base-picker.module.ts similarity index 74% rename from libs/fabric/src/lib/components/pickers/base-picker/base-picker.module.ts rename to libs/fabric/lib/components/pickers/base-picker/base-picker.module.ts index 95ca6fa5..ed8a354d 100644 --- a/libs/fabric/src/lib/components/pickers/base-picker/base-picker.module.ts +++ b/libs/fabric/lib/components/pickers/base-picker/base-picker.module.ts @@ -4,9 +4,9 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import * as BasePickerCss from 'office-ui-fabric-react/lib-amd/components/pickers/BasePicker.scss'; -import { BasePicker } from 'office-ui-fabric-react'; -import { noop } from '../../../utils/noop'; +import * as BasePickerCss from '@fluentui/react/lib-amd/components/pickers/BasePicker.scss'; +import { BasePicker } from '@fluentui/react/lib/Pickers'; +import { noop } from '@angular-react/fabric/lib/utils'; // Dummy action to force BasePickerCss to load and not be tree-shaken away. noop(BasePickerCss); diff --git a/libs/fabric/src/lib/components/pickers/base-picker/public-api.ts b/libs/fabric/lib/components/pickers/base-picker/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/pickers/base-picker/public-api.ts rename to libs/fabric/lib/components/pickers/base-picker/public-api.ts diff --git a/libs/fabric/lib/components/pickers/ng-package.json b/libs/fabric/lib/components/pickers/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/pickers/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/pickers/people-picker/people-picker.component.ts b/libs/fabric/lib/components/pickers/people-picker/people-picker.component.ts similarity index 90% rename from libs/fabric/src/lib/components/pickers/people-picker/people-picker.component.ts rename to libs/fabric/lib/components/pickers/people-picker/people-picker.component.ts index af100ba0..f0194264 100644 --- a/libs/fabric/src/lib/components/pickers/people-picker/people-picker.component.ts +++ b/libs/fabric/lib/components/pickers/people-picker/people-picker.component.ts @@ -13,8 +13,11 @@ import { EventEmitter, } from '@angular/core'; import { FabBasePickerComponent } from '../base-picker/base-picker.component'; - import { IPersonaProps, IPeoplePickerProps, BaseAutoFill } from 'office-ui-fabric-react'; - + import { IPeoplePickerProps } from '@fluentui/react/lib/Pickers'; + import { IPersonaProps } from '@fluentui/react/lib/Persona'; + import { Styled } from '@angular-react/fabric/lib/utils'; + + @Styled('FabPeoplePickerComponent') @Component({ selector: 'fab-people-picker', exportAs: 'fabPeoplePicker', @@ -57,9 +60,8 @@ import { }) export class FabPeoplePickerComponent extends FabBasePickerComponent { @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef; - + constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2, ngZone: NgZone) { super(elementRef, changeDetectorRef, renderer, ngZone); } } - \ No newline at end of file diff --git a/libs/fabric/src/lib/components/pickers/people-picker/people-picker.module.ts b/libs/fabric/lib/components/pickers/people-picker/people-picker.module.ts similarity index 77% rename from libs/fabric/src/lib/components/pickers/people-picker/people-picker.module.ts rename to libs/fabric/lib/components/pickers/people-picker/people-picker.module.ts index 23a3ff2c..e88bf938 100644 --- a/libs/fabric/src/lib/components/pickers/people-picker/people-picker.module.ts +++ b/libs/fabric/lib/components/pickers/people-picker/people-picker.module.ts @@ -4,9 +4,9 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import * as PeoplePickerItemCss from 'office-ui-fabric-react/lib-amd/components/pickers/PeoplePicker/PeoplePickerItems/PickerItemsDefault.scss'; -import { NormalPeoplePickerBase } from 'office-ui-fabric-react'; -import { noop } from '../../../utils/noop'; +import * as PeoplePickerItemCss from '@fluentui/react/lib-amd/components/pickers/PeoplePicker/PeoplePickerItems/PickerItemsDefault.scss'; +import { NormalPeoplePickerBase } from '@fluentui/react/lib/Pickers'; +import { noop } from '@angular-react/fabric/lib/utils'; import { FabBasePickerModule } from '../base-picker/base-picker.module'; import { FabPeoplePickerComponent } from './people-picker.component'; diff --git a/libs/fabric/src/lib/components/pickers/people-picker/public-api.ts b/libs/fabric/lib/components/pickers/people-picker/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/pickers/people-picker/public-api.ts rename to libs/fabric/lib/components/pickers/people-picker/public-api.ts diff --git a/libs/fabric/src/lib/components/pickers/public-api.ts b/libs/fabric/lib/components/pickers/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/pickers/public-api.ts rename to libs/fabric/lib/components/pickers/public-api.ts diff --git a/libs/fabric/src/lib/components/pickers/tag-picker/public-api.ts b/libs/fabric/lib/components/pickers/tag-picker/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/pickers/tag-picker/public-api.ts rename to libs/fabric/lib/components/pickers/tag-picker/public-api.ts diff --git a/libs/fabric/src/lib/components/pickers/tag-picker/tag-picker.component.ts b/libs/fabric/lib/components/pickers/tag-picker/tag-picker.component.ts similarity index 92% rename from libs/fabric/src/lib/components/pickers/tag-picker/tag-picker.component.ts rename to libs/fabric/lib/components/pickers/tag-picker/tag-picker.component.ts index 2d54c9cd..53343f85 100644 --- a/libs/fabric/src/lib/components/pickers/tag-picker/tag-picker.component.ts +++ b/libs/fabric/lib/components/pickers/tag-picker/tag-picker.component.ts @@ -10,9 +10,11 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { ITag, ITagPickerProps } from 'office-ui-fabric-react/lib/Pickers'; +import { ITag, ITagPickerProps } from '@fluentui/react/lib/Pickers'; import { FabBasePickerComponent } from '../base-picker/base-picker.component'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabTagPickerComponent') @Component({ selector: 'fab-tag-picker', exportAs: 'fabTagPicker', diff --git a/libs/fabric/src/lib/components/pickers/tag-picker/tag-picker.module.ts b/libs/fabric/lib/components/pickers/tag-picker/tag-picker.module.ts similarity index 93% rename from libs/fabric/src/lib/components/pickers/tag-picker/tag-picker.module.ts rename to libs/fabric/lib/components/pickers/tag-picker/tag-picker.module.ts index 2f795823..dba41ce8 100644 --- a/libs/fabric/src/lib/components/pickers/tag-picker/tag-picker.module.ts +++ b/libs/fabric/lib/components/pickers/tag-picker/tag-picker.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { TagPicker } from 'office-ui-fabric-react'; +import { TagPicker } from '@fluentui/react'; import { FabBasePickerModule } from '../base-picker/base-picker.module'; import { FabTagPickerComponent } from './tag-picker.component'; diff --git a/libs/fabric/lib/components/pivot/ng-package.json b/libs/fabric/lib/components/pivot/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/pivot/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/pivot/pivot.component.ts b/libs/fabric/lib/components/pivot/pivot.component.ts similarity index 89% rename from libs/fabric/src/lib/components/pivot/pivot.component.ts rename to libs/fabric/lib/components/pivot/pivot.component.ts index 94e94588..7949a652 100644 --- a/libs/fabric/src/lib/components/pivot/pivot.component.ts +++ b/libs/fabric/lib/components/pivot/pivot.component.ts @@ -17,9 +17,11 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IPivotItemProps, IPivotProps, Pivot, PivotItem } from 'office-ui-fabric-react'; +import { IPivotItemProps, IPivotProps, Pivot, PivotItem } from '@fluentui/react/lib/Pivot'; import * as React from 'react'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabPivotItemComponent') @Component({ selector: 'fab-pivot-item', exportAs: 'fabPivotItem', @@ -34,6 +36,7 @@ import * as React from 'react'; [itemCount]="itemCount" [itemIcon]="itemIcon" [keytipProps]="keytipProps" + [alwaysRender]="alwaysRender" [RenderItemLink]="renderItemLink && onRenderItemLink" > @@ -45,22 +48,17 @@ import * as React from 'react'; export class FabPivotItemComponent extends ReactWrapperComponent implements OnInit { @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef; + @Input() disabled? = false; + @Input() visible? = true; @Input() @passProp() componentRef?: IPivotItemProps['componentRef']; - @Input() @passProp() headerText?: IPivotItemProps['headerText']; - @Input() @passProp() headerButtonProps?: IPivotItemProps['headerButtonProps']; - @Input() @passProp() itemKey?: IPivotItemProps['itemKey']; - @Input() @passProp() ariaLabel?: IPivotItemProps['ariaLabel']; - @Input() @passProp() itemCount?: IPivotItemProps['itemCount']; - @Input() @passProp() itemIcon?: IPivotItemProps['itemIcon']; - @Input() @passProp() keytipProps?: IPivotItemProps['keytipProps']; - + @Input() @passProp() alwaysRender?: IPivotItemProps['alwaysRender']; @Input() @passProp() renderItemLink?: InputRendererOptions; @passProp() onRenderItemLink: (props?: IPivotItemProps, defaultRender?: JsxRenderFunc) => JSX.Element; @@ -74,6 +72,7 @@ export class FabPivotItemComponent extends ReactWrapperComponent { @Input() theme?: IPivotProps['theme']; @Input() className?: IPivotProps['className']; @Input() defaultSelectedKey?: IPivotProps['defaultSelectedKey']; - @Input() defaultSelectedIndex?: IPivotProps['defaultSelectedIndex']; @Input() selectedKey?: IPivotProps['selectedKey']; @Input() linkSize?: IPivotProps['linkSize']; @Input() linkFormat?: IPivotProps['linkFormat']; + @Input() overflowBehavior?: IPivotProps['overflowBehavior']; @Input() headersOnly?: IPivotProps['headersOnly']; @Input() getTabId?: IPivotProps['getTabId']; + @Input() children?: QueryList; @Output() readonly onLinkClick = new EventEmitter<{ item?: PivotItem; ev?: MouseEvent }>(); diff --git a/libs/fabric/src/lib/components/pivot/pivot.module.ts b/libs/fabric/lib/components/pivot/pivot.module.ts similarity index 92% rename from libs/fabric/src/lib/components/pivot/pivot.module.ts rename to libs/fabric/lib/components/pivot/pivot.module.ts index b6b97d00..1f9ddfd8 100644 --- a/libs/fabric/src/lib/components/pivot/pivot.module.ts +++ b/libs/fabric/lib/components/pivot/pivot.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Pivot, PivotItem } from 'office-ui-fabric-react'; +import { Pivot, PivotItem } from '@fluentui/react/lib/Pivot'; import { FabPivotComponent, FabPivotItemComponent } from './pivot.component'; const components = [FabPivotComponent, FabPivotItemComponent]; diff --git a/libs/fabric/src/lib/components/pivot/public-api.ts b/libs/fabric/lib/components/pivot/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/pivot/public-api.ts rename to libs/fabric/lib/components/pivot/public-api.ts diff --git a/libs/fabric/lib/components/progress-indicator/ng-package.json b/libs/fabric/lib/components/progress-indicator/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/progress-indicator/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/progress-indicator/progress-indicator.component.ts b/libs/fabric/lib/components/progress-indicator/progress-indicator.component.ts similarity index 93% rename from libs/fabric/src/lib/components/progress-indicator/progress-indicator.component.ts rename to libs/fabric/lib/components/progress-indicator/progress-indicator.component.ts index 630851bb..79932b46 100644 --- a/libs/fabric/src/lib/components/progress-indicator/progress-indicator.component.ts +++ b/libs/fabric/lib/components/progress-indicator/progress-indicator.component.ts @@ -12,8 +12,10 @@ import { ViewChild, OnInit, } from '@angular/core'; -import { IProgressIndicatorProps } from 'office-ui-fabric-react/lib/ProgressIndicator'; +import { IProgressIndicatorProps } from '@fluentui/react/lib/ProgressIndicator'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabProgressIndicatorComponent') @Component({ selector: 'fab-progress-indicator', exportAs: 'fabProgressIndicator', diff --git a/libs/fabric/src/lib/components/progress-indicator/progress-indicator.module.ts b/libs/fabric/lib/components/progress-indicator/progress-indicator.module.ts similarity index 89% rename from libs/fabric/src/lib/components/progress-indicator/progress-indicator.module.ts rename to libs/fabric/lib/components/progress-indicator/progress-indicator.module.ts index 0371ea36..f7360ca4 100644 --- a/libs/fabric/src/lib/components/progress-indicator/progress-indicator.module.ts +++ b/libs/fabric/lib/components/progress-indicator/progress-indicator.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { ProgressIndicator } from 'office-ui-fabric-react'; +import { ProgressIndicator } from '@fluentui/react/lib/ProgressIndicator'; import { FabProgressIndicatorComponent } from './progress-indicator.component'; const components = [FabProgressIndicatorComponent]; diff --git a/libs/fabric/src/lib/components/progress-indicator/public-api.ts b/libs/fabric/lib/components/progress-indicator/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/progress-indicator/public-api.ts rename to libs/fabric/lib/components/progress-indicator/public-api.ts diff --git a/libs/fabric/lib/components/rating/ng-package.json b/libs/fabric/lib/components/rating/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/rating/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/lib/components/rating/public-api.ts b/libs/fabric/lib/components/rating/public-api.ts new file mode 100644 index 00000000..13fdf182 --- /dev/null +++ b/libs/fabric/lib/components/rating/public-api.ts @@ -0,0 +1,4 @@ +import { expressionType } from '@angular/compiler/src/output/output_ast'; + +export * from './rating.component'; +export * from './rating.module'; diff --git a/libs/fabric/lib/components/rating/rating.component.ts b/libs/fabric/lib/components/rating/rating.component.ts new file mode 100644 index 00000000..931acd4b --- /dev/null +++ b/libs/fabric/lib/components/rating/rating.component.ts @@ -0,0 +1,86 @@ +import { InputRendererOptions, passProp, ReactWrapperComponent } from '@angular-react/core'; +import { ChangeDetectorRef, Component, ElementRef, Input, NgZone, Output, Renderer2, ViewChild, EventEmitter, OnInit } from '@angular/core'; +import { IRatingProps, IRatingStarProps } from '@fluentui/react/lib/Rating'; +import { Styled } from '@angular-react/fabric/lib/utils'; + +@Styled('FabRatingComponent') +@Component({ + selector: 'fab-rating', + exportAs: 'fabRating', + template: ` + + `, + styles: ['react-renderer'], +}) +export class FabRatingComponent extends ReactWrapperComponent implements OnInit { + @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef; + + @Input() componentRef?: IRatingProps['componentRef']; + @Input() rating?: IRatingProps['rating']; + @Input() defaultRating?: IRatingProps['defaultRating']; + @Input() min?: IRatingProps['min']; + @Input() max?: IRatingProps['max']; + @Input() allowZeroStars?: IRatingProps['allowZeroStars']; + @Input() disabled?: IRatingProps['disabled']; + @Input() icon?: IRatingProps['icon']; + @Input() unselectedIcon?: IRatingProps['unselectedIcon']; + @Input() size?: IRatingProps['size']; + // @Input() onChanged?: IRatingProps['onChanged']; + @Input() ariaLabelFormat?: IRatingProps['ariaLabelFormat']; + @Input() readOnly?: IRatingProps['readOnly']; + @Input() getAriaLabel?: IRatingProps['getAriaLabel']; + @Input() styles?: IRatingProps['styles']; + @Input() theme?: IRatingProps['theme']; + @Input() renderStar?: InputRendererOptions; + + @passProp() onRenderStar: (props?: IRatingStarProps) => JSX.Element; + + // tslint:disable-next-line: no-output-on-prefix + @Output() readonly onRatingChange = new EventEmitter<{ ev?: FocusEvent, rating?: number }>(); + // tslint:disable-next-line: no-output-on-prefix + @Output() readonly onRatingChanged = new EventEmitter<{ rating?: number }>(); + + constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2, ngZone: NgZone) { + super(elementRef, changeDetectorRef, renderer, { ngZone }); + + this.onChange = this.onChange.bind(this); + this.onChanged = this.onChanged.bind(this); + } + + ngOnInit() { + this.onRenderStar = this.createRenderPropHandler(this.renderStar); + } + + onChange(ev?: React.FocusEvent, rating?: number) { + this.onRatingChange.emit({ + ev: ev && ev.nativeEvent, + rating + }); + } + + onChanged(rating?: number) { + this.onRatingChanged.emit({ + rating + }) + } +} \ No newline at end of file diff --git a/libs/fabric/lib/components/rating/rating.module.ts b/libs/fabric/lib/components/rating/rating.module.ts new file mode 100644 index 00000000..016942c2 --- /dev/null +++ b/libs/fabric/lib/components/rating/rating.module.ts @@ -0,0 +1,20 @@ + +import { registerElement } from '@angular-react/core'; +import { CommonModule } from '@angular/common'; +import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; +import { Rating } from '@fluentui/react/lib/Rating'; +import { FabRatingComponent } from './rating.component'; + +const components = [FabRatingComponent]; + +@NgModule({ + imports: [CommonModule], + declarations: components, + exports: components, + schemas: [NO_ERRORS_SCHEMA], +}) +export class FabRatingModule { + constructor() { + registerElement('Rating', () => Rating); + } +} \ No newline at end of file diff --git a/libs/fabric/lib/components/search-box/ng-package.json b/libs/fabric/lib/components/search-box/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/search-box/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/search-box/public-api.ts b/libs/fabric/lib/components/search-box/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/search-box/public-api.ts rename to libs/fabric/lib/components/search-box/public-api.ts diff --git a/libs/fabric/src/lib/components/search-box/search-box.component.ts b/libs/fabric/lib/components/search-box/search-box.component.ts similarity index 96% rename from libs/fabric/src/lib/components/search-box/search-box.component.ts rename to libs/fabric/lib/components/search-box/search-box.component.ts index 158ce5ac..8f27f268 100644 --- a/libs/fabric/src/lib/components/search-box/search-box.component.ts +++ b/libs/fabric/lib/components/search-box/search-box.component.ts @@ -14,10 +14,11 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IButtonProps } from 'office-ui-fabric-react/lib/Button'; -import { ISearchBoxProps } from 'office-ui-fabric-react/lib/SearchBox'; -import omit from '../../utils/omit'; +import { IButtonProps } from '@fluentui/react/lib/Button'; +import { ISearchBoxProps } from '@fluentui/react/lib/SearchBox'; +import { omit, Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabSearchBoxComponent') @Component({ selector: 'fab-search-box', exportAs: 'fabSearchBox', diff --git a/libs/fabric/src/lib/components/search-box/search-box.module.ts b/libs/fabric/lib/components/search-box/search-box.module.ts similarity index 91% rename from libs/fabric/src/lib/components/search-box/search-box.module.ts rename to libs/fabric/lib/components/search-box/search-box.module.ts index 1b4bd02c..4e8328bd 100644 --- a/libs/fabric/src/lib/components/search-box/search-box.module.ts +++ b/libs/fabric/lib/components/search-box/search-box.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { SearchBox } from 'office-ui-fabric-react'; +import { SearchBox } from '@fluentui/react/lib/SearchBox'; import { FabSearchBoxComponent } from './search-box.component'; const components = [FabSearchBoxComponent]; diff --git a/libs/fabric/lib/components/shimmer/ng-package.json b/libs/fabric/lib/components/shimmer/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/shimmer/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/shimmer/public-api.ts b/libs/fabric/lib/components/shimmer/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/shimmer/public-api.ts rename to libs/fabric/lib/components/shimmer/public-api.ts diff --git a/libs/fabric/src/lib/components/shimmer/shimmer.component.ts b/libs/fabric/lib/components/shimmer/shimmer.component.ts similarity index 91% rename from libs/fabric/src/lib/components/shimmer/shimmer.component.ts rename to libs/fabric/lib/components/shimmer/shimmer.component.ts index dae1e1c2..ed7bc7a7 100644 --- a/libs/fabric/src/lib/components/shimmer/shimmer.component.ts +++ b/libs/fabric/lib/components/shimmer/shimmer.component.ts @@ -12,16 +12,17 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IShimmerElementsGroupProps } from 'office-ui-fabric-react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.types'; -import { IShimmerProps } from 'office-ui-fabric-react/lib/Shimmer'; +import { IShimmerElementsGroupProps } from '@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.types'; +import { IShimmerProps } from '@fluentui/react/lib/Shimmer'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabShimmerComponent') @Component({ selector: 'fab-shimmer', exportAs: 'fabShimmer', template: ` { @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef; - @Input() componentRef?: IShimmerProps['componentRef']; @Input() width?: IShimmerProps['width']; @Input() isDataLoaded?: IShimmerProps['isDataLoaded']; @Input() shimmerElements?: IShimmerProps['shimmerElements']; @@ -73,6 +73,7 @@ export class FabShimmerComponent extends ReactWrapperComponent { } } +@Styled('FabShimmerElementsGroupComponent') @Component({ selector: 'fab-shimmer-elements-group', exportAs: 'fabShimmerElementsGroup', diff --git a/libs/fabric/src/lib/components/shimmer/shimmer.module.ts b/libs/fabric/lib/components/shimmer/shimmer.module.ts similarity index 91% rename from libs/fabric/src/lib/components/shimmer/shimmer.module.ts rename to libs/fabric/lib/components/shimmer/shimmer.module.ts index ff6bd29f..dc29fbc3 100644 --- a/libs/fabric/src/lib/components/shimmer/shimmer.module.ts +++ b/libs/fabric/lib/components/shimmer/shimmer.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Shimmer, ShimmerElementsGroup } from 'office-ui-fabric-react'; +import { Shimmer, ShimmerElementsGroup } from '@fluentui/react/lib/Shimmer'; import { FabShimmerComponent, FabShimmerElementsGroupComponent } from './shimmer.component'; const components = [FabShimmerComponent, FabShimmerElementsGroupComponent]; diff --git a/libs/fabric/lib/components/slider/ng-package.json b/libs/fabric/lib/components/slider/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/slider/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/slider/public-api.ts b/libs/fabric/lib/components/slider/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/slider/public-api.ts rename to libs/fabric/lib/components/slider/public-api.ts diff --git a/libs/fabric/src/lib/components/slider/slider.component.ts b/libs/fabric/lib/components/slider/slider.component.ts similarity index 94% rename from libs/fabric/src/lib/components/slider/slider.component.ts rename to libs/fabric/lib/components/slider/slider.component.ts index cb2cce51..e5a7aaff 100644 --- a/libs/fabric/src/lib/components/slider/slider.component.ts +++ b/libs/fabric/lib/components/slider/slider.component.ts @@ -13,8 +13,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { ISliderProps } from 'office-ui-fabric-react/lib/Slider'; +import { ISliderProps } from '@fluentui/react/lib/Slider'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabSliderComponent') @Component({ selector: 'fab-slider', exportAs: 'fabSlider', diff --git a/libs/fabric/src/lib/components/slider/slider.module.ts b/libs/fabric/lib/components/slider/slider.module.ts similarity index 92% rename from libs/fabric/src/lib/components/slider/slider.module.ts rename to libs/fabric/lib/components/slider/slider.module.ts index 8de92774..99583420 100644 --- a/libs/fabric/src/lib/components/slider/slider.module.ts +++ b/libs/fabric/lib/components/slider/slider.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Slider } from 'office-ui-fabric-react'; +import { Slider } from '@fluentui/react/lib/Slider'; import { FabSliderComponent } from './slider.component'; const components = [FabSliderComponent]; diff --git a/libs/fabric/lib/components/spin-button/ng-package.json b/libs/fabric/lib/components/spin-button/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/spin-button/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/spin-button/public-api.ts b/libs/fabric/lib/components/spin-button/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/spin-button/public-api.ts rename to libs/fabric/lib/components/spin-button/public-api.ts diff --git a/libs/fabric/src/lib/components/spin-button/spin-button.component.ts b/libs/fabric/lib/components/spin-button/spin-button.component.ts similarity index 95% rename from libs/fabric/src/lib/components/spin-button/spin-button.component.ts rename to libs/fabric/lib/components/spin-button/spin-button.component.ts index 7a57062a..fd1ba996 100644 --- a/libs/fabric/src/lib/components/spin-button/spin-button.component.ts +++ b/libs/fabric/lib/components/spin-button/spin-button.component.ts @@ -13,8 +13,10 @@ import { EventEmitter, Output, } from '@angular/core'; -import { ISpinButtonProps } from 'office-ui-fabric-react/lib/SpinButton'; +import { ISpinButtonProps } from '@fluentui/react/lib/SpinButton'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabSpinButtonComponent') @Component({ selector: 'fab-spin-button', exportAs: 'fabSpinButton', @@ -38,7 +40,6 @@ import { ISpinButtonProps } from 'office-ui-fabric-react/lib/SpinButton'; [incrementButtonIcon]="incrementButtonIcon" [decrementButtonIcon]="decrementButtonIcon" [styles]="styles" - [getClassNames]="getClassNames" [upArrowButtonStyles]="upArrowButtonStyles" [downArrowButtonStyles]="downArrowButtonStyles" [theme]="theme" @@ -81,7 +82,6 @@ export class FabSpinButtonComponent extends ReactWrapperComponent implements OnInit { @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef; @@ -55,9 +55,6 @@ export class FabBaseTextFieldComponent extends ReactWrapperComponent; diff --git a/libs/fabric/src/lib/components/text-field/masked-text-field.component.ts b/libs/fabric/lib/components/text-field/masked-text-field.component.ts similarity index 86% rename from libs/fabric/src/lib/components/text-field/masked-text-field.component.ts rename to libs/fabric/lib/components/text-field/masked-text-field.component.ts index 2156b4c8..5c889456 100644 --- a/libs/fabric/src/lib/components/text-field/masked-text-field.component.ts +++ b/libs/fabric/lib/components/text-field/masked-text-field.component.ts @@ -1,9 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Renderer2, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Renderer2, ViewChild } from '@angular/core'; import { FabBaseTextFieldComponent } from './base-text-field.component'; +import { IMaskedTextFieldProps } from '@fluentui/react/lib/TextField'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabMaskedTextFieldComponent') @Component({ selector: 'fab-masked-text-field', exportAs: 'fabMaskedTextField', @@ -70,6 +73,10 @@ import { FabBaseTextFieldComponent } from './base-text-field.component'; export class FabMaskedTextFieldComponent extends FabBaseTextFieldComponent { @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef; + @Input() mask?: IMaskedTextFieldProps['mask']; + @Input() maskChar?: IMaskedTextFieldProps['maskChar']; + @Input() maskFormat?: IMaskedTextFieldProps['maskFormat']; + constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) { super(elementRef, changeDetectorRef, renderer); } diff --git a/libs/fabric/lib/components/text-field/ng-package.json b/libs/fabric/lib/components/text-field/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/text-field/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/text-field/public-api.ts b/libs/fabric/lib/components/text-field/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/text-field/public-api.ts rename to libs/fabric/lib/components/text-field/public-api.ts diff --git a/libs/fabric/src/lib/components/text-field/text-field.component.ts b/libs/fabric/lib/components/text-field/text-field.component.ts similarity index 96% rename from libs/fabric/src/lib/components/text-field/text-field.component.ts rename to libs/fabric/lib/components/text-field/text-field.component.ts index 51d698cd..4de9d53d 100644 --- a/libs/fabric/src/lib/components/text-field/text-field.component.ts +++ b/libs/fabric/lib/components/text-field/text-field.component.ts @@ -3,7 +3,9 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Renderer2, ViewChild } from '@angular/core'; import { FabBaseTextFieldComponent } from './base-text-field.component'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabTextFieldComponent') @Component({ selector: 'fab-text-field', exportAs: 'fabTextField', diff --git a/libs/fabric/src/lib/components/text-field/text-field.module.ts b/libs/fabric/lib/components/text-field/text-field.module.ts similarity index 91% rename from libs/fabric/src/lib/components/text-field/text-field.module.ts rename to libs/fabric/lib/components/text-field/text-field.module.ts index a8873e85..859f657a 100644 --- a/libs/fabric/src/lib/components/text-field/text-field.module.ts +++ b/libs/fabric/lib/components/text-field/text-field.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { TextField, MaskedTextField } from 'office-ui-fabric-react'; +import { TextField, MaskedTextField } from '@fluentui/react/lib/TextField'; import { FabTextFieldComponent } from './text-field.component'; import { FabMaskedTextFieldComponent } from './masked-text-field.component'; diff --git a/libs/fabric/lib/components/toggle/ng-package.json b/libs/fabric/lib/components/toggle/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/toggle/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/toggle/public-api.ts b/libs/fabric/lib/components/toggle/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/toggle/public-api.ts rename to libs/fabric/lib/components/toggle/public-api.ts diff --git a/libs/fabric/src/lib/components/toggle/toggle.component.ts b/libs/fabric/lib/components/toggle/toggle.component.ts similarity index 93% rename from libs/fabric/src/lib/components/toggle/toggle.component.ts rename to libs/fabric/lib/components/toggle/toggle.component.ts index ee28bda3..136b72bc 100644 --- a/libs/fabric/src/lib/components/toggle/toggle.component.ts +++ b/libs/fabric/lib/components/toggle/toggle.component.ts @@ -13,8 +13,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { IToggleProps } from 'office-ui-fabric-react/lib/Toggle'; +import { IToggleProps } from '@fluentui/react/lib/Toggle'; +import { Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabToggleComponent') @Component({ selector: 'fab-toggle', exportAs: 'fabToggle', @@ -32,7 +34,6 @@ import { IToggleProps } from 'office-ui-fabric-react/lib/Toggle'; [inlineLabel]="inlineLabel" [theme]="theme" [styles]="styles" - [keytipProps]="keytipProps" [Change]="onChangeHandler" > @@ -61,7 +62,6 @@ export class FabToggleComponent extends ReactWrapperComponent { @Input() inlineLabel?: IToggleProps['inlineLabel']; @Input() theme?: IToggleProps['theme']; @Input() styles?: IToggleProps['styles']; - @Input() keytipProps?: IToggleProps['keytipProps']; @Output() readonly onChange = new EventEmitter<{ event: MouseEvent; checked?: boolean }>(); diff --git a/libs/fabric/src/lib/components/toggle/toggle.module.ts b/libs/fabric/lib/components/toggle/toggle.module.ts similarity index 92% rename from libs/fabric/src/lib/components/toggle/toggle.module.ts rename to libs/fabric/lib/components/toggle/toggle.module.ts index bad4b1a6..ec22291c 100644 --- a/libs/fabric/src/lib/components/toggle/toggle.module.ts +++ b/libs/fabric/lib/components/toggle/toggle.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { Toggle } from 'office-ui-fabric-react'; +import { Toggle } from '@fluentui/react/lib/Toggle'; import { FabToggleComponent } from './toggle.component'; const components = [FabToggleComponent]; diff --git a/libs/fabric/lib/components/tooltip/ng-package.json b/libs/fabric/lib/components/tooltip/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/components/tooltip/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/components/tooltip/public-api.ts b/libs/fabric/lib/components/tooltip/public-api.ts similarity index 100% rename from libs/fabric/src/lib/components/tooltip/public-api.ts rename to libs/fabric/lib/components/tooltip/public-api.ts diff --git a/libs/fabric/src/lib/components/tooltip/tooltip-host.component.ts b/libs/fabric/lib/components/tooltip/tooltip-host.component.ts similarity index 95% rename from libs/fabric/src/lib/components/tooltip/tooltip-host.component.ts rename to libs/fabric/lib/components/tooltip/tooltip-host.component.ts index 59f418c3..e9873d39 100644 --- a/libs/fabric/src/lib/components/tooltip/tooltip-host.component.ts +++ b/libs/fabric/lib/components/tooltip/tooltip-host.component.ts @@ -14,9 +14,10 @@ import { Renderer2, ViewChild, } from '@angular/core'; -import { ITooltipHostProps, ITooltipProps } from 'office-ui-fabric-react/lib/Tooltip'; -import { omit } from '../../utils/omit'; +import { ITooltipHostProps, ITooltipProps } from '@fluentui/react/lib/Tooltip'; +import { omit, Styled } from '@angular-react/fabric/lib/utils'; +@Styled('FabTooltipHostComponent') @Component({ selector: 'fab-tooltip-host', exportAs: 'fabTooltipHost', diff --git a/libs/fabric/src/lib/components/tooltip/tooltip.module.ts b/libs/fabric/lib/components/tooltip/tooltip.module.ts similarity index 92% rename from libs/fabric/src/lib/components/tooltip/tooltip.module.ts rename to libs/fabric/lib/components/tooltip/tooltip.module.ts index 219314e3..15486ee3 100644 --- a/libs/fabric/src/lib/components/tooltip/tooltip.module.ts +++ b/libs/fabric/lib/components/tooltip/tooltip.module.ts @@ -4,7 +4,7 @@ import { registerElement } from '@angular-react/core'; import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { TooltipHost } from 'office-ui-fabric-react'; +import { TooltipHost } from '@fluentui/react/lib/Tooltip'; import { FabTooltipHostComponent } from './tooltip-host.component'; const components = [FabTooltipHostComponent]; diff --git a/libs/fabric/src/lib/declarations/angular/typed-changes.d.ts b/libs/fabric/lib/declarations/angular/typed-changes.ts similarity index 100% rename from libs/fabric/src/lib/declarations/angular/typed-changes.d.ts rename to libs/fabric/lib/declarations/angular/typed-changes.ts diff --git a/libs/fabric/lib/declarations/index.ts b/libs/fabric/lib/declarations/index.ts new file mode 100644 index 00000000..7e1a213e --- /dev/null +++ b/libs/fabric/lib/declarations/index.ts @@ -0,0 +1 @@ +export * from './public-api'; diff --git a/libs/fabric/lib/declarations/ng-package.json b/libs/fabric/lib/declarations/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/declarations/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/lib/declarations/public-api.ts b/libs/fabric/lib/declarations/public-api.ts new file mode 100644 index 00000000..c4de4a42 --- /dev/null +++ b/libs/fabric/lib/declarations/public-api.ts @@ -0,0 +1 @@ +export * from './angular/typed-changes'; \ No newline at end of file diff --git a/libs/fabric/src/lib/utils/get-data-attributes.ts b/libs/fabric/lib/utils/get-data-attributes.ts similarity index 100% rename from libs/fabric/src/lib/utils/get-data-attributes.ts rename to libs/fabric/lib/utils/get-data-attributes.ts diff --git a/libs/fabric/lib/utils/index.ts b/libs/fabric/lib/utils/index.ts new file mode 100644 index 00000000..7e1a213e --- /dev/null +++ b/libs/fabric/lib/utils/index.ts @@ -0,0 +1 @@ +export * from './public-api'; diff --git a/libs/fabric/src/lib/utils/kebab-case.ts b/libs/fabric/lib/utils/kebab-case.ts similarity index 100% rename from libs/fabric/src/lib/utils/kebab-case.ts rename to libs/fabric/lib/utils/kebab-case.ts diff --git a/libs/fabric/lib/utils/ng-package.json b/libs/fabric/lib/utils/ng-package.json new file mode 100644 index 00000000..789c95e4 --- /dev/null +++ b/libs/fabric/lib/utils/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "public-api.ts" + } +} diff --git a/libs/fabric/src/lib/utils/noop.ts b/libs/fabric/lib/utils/noop.ts similarity index 100% rename from libs/fabric/src/lib/utils/noop.ts rename to libs/fabric/lib/utils/noop.ts diff --git a/libs/fabric/src/lib/utils/omit.ts b/libs/fabric/lib/utils/omit.ts similarity index 100% rename from libs/fabric/src/lib/utils/omit.ts rename to libs/fabric/lib/utils/omit.ts diff --git a/libs/fabric/src/lib/utils/pick.ts b/libs/fabric/lib/utils/pick.ts similarity index 100% rename from libs/fabric/src/lib/utils/pick.ts rename to libs/fabric/lib/utils/pick.ts diff --git a/libs/fabric/lib/utils/public-api.ts b/libs/fabric/lib/utils/public-api.ts new file mode 100644 index 00000000..f4d634a2 --- /dev/null +++ b/libs/fabric/lib/utils/public-api.ts @@ -0,0 +1,6 @@ +export * from './get-data-attributes'; +export * from './kebab-case'; +export * from './noop'; +export * from './omit'; +export * from './pick' +export * from './styles-plugin'; \ No newline at end of file diff --git a/libs/fabric/lib/utils/styles-plugin.ts b/libs/fabric/lib/utils/styles-plugin.ts new file mode 100644 index 00000000..ee15c314 --- /dev/null +++ b/libs/fabric/lib/utils/styles-plugin.ts @@ -0,0 +1,123 @@ +import { OnInit, OnChanges, OnDestroy, AfterContentInit, AfterContentChecked, AfterViewInit, AfterViewChecked, DoCheck } from "@angular/core"; +import { IStyleFunctionOrObject } from "@fluentui/react"; +import { TypedChanges } from '@angular-react/fabric/lib/declarations'; + +const proxyHandlerMap = new Map void + beforeNgChanges?: (changes: TypedChanges) => void + beforeNgDestroy?: () => void + beforeNgDoCheck?: () => void + beforeNgAfterContentInit?: () => void + beforeNgAfterContentChecked?: () => void + beforeNgAfterViewInit?: () => void + beforeNgAfterViewChecked?: () => void +}>() + +interface IConstructor { + new (...args: any[]): { + ngOnInit?(): void + ngOnChanges?(changes: TypedChanges): void + ngOnDestroy?(): void + ngDoCheck?(): void + ngAfterContentInit?(): void + ngAfterContentChecked?(): void + ngAfterViewInit?(): void + ngAfterViewChecked?(): void + } +} +export function Styled(componentName: string) { + return function (constructor: T) { + class Wrapper extends constructor implements OnInit, OnChanges, OnDestroy, AfterContentInit, AfterContentChecked, AfterViewInit, AfterViewChecked, DoCheck { + styles: IStyleFunctionOrObject; + ngOnInit() { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgInit) { + handler.beforeNgInit.apply(this); + } + if (super.ngOnInit) { + super.ngOnInit(); + } + } + ngOnChanges(changes: TypedChanges) { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgChanges) { + handler.beforeNgChanges.apply(this, [changes]); + } + if (super.ngOnChanges) { + super.ngOnChanges(changes); + } + } + ngOnDestroy() { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgDestroy) { + handler.beforeNgDestroy.apply(this); + } + if (super.ngOnDestroy) { + super.ngOnDestroy(); + } + } + ngDoCheck() { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgDoCheck) { + handler.beforeNgDoCheck.apply(this); + } + if (super.ngDoCheck) { + super.ngDoCheck(); + } + } + ngAfterContentInit() { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgAfterContentInit) { + handler.beforeNgAfterContentInit.apply(this); + } + if (super.ngAfterContentInit) { + super.ngAfterContentInit(); + } + } + ngAfterContentChecked() { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgAfterContentChecked) { + handler.beforeNgAfterContentChecked.apply(this); + } + if (super.ngAfterContentChecked) { + super.ngAfterContentChecked(); + } + } + ngAfterViewInit() { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgAfterViewInit) { + handler.beforeNgAfterViewInit.apply(this); + } + if (super.ngAfterViewInit) { + super.ngAfterViewInit(); + } + } + ngAfterViewChecked() { + const handler = proxyHandlerMap.get(componentName); + if (handler && handler.beforeNgAfterViewChecked) { + handler.beforeNgAfterViewChecked.apply(this); + } + if (super.ngAfterViewChecked) { + super.ngAfterViewChecked(); + } + } + } + return Wrapper as any; + } +} + +export function proxy( + fabComponentName: string, + handlers: { + beforeNgInit?: (this: T) => void + beforeNgChanges?: (this: T, changes: TypedChanges) => void + beforeNgDestroy?: (this: T) => void + beforeNgDoCheck?: (this: T) => void + beforeNgAfterContentInit?: (this: T) => void + beforeNgAfterContentChecked?: (this: T) => void + beforeNgAfterViewInit?: (this: T) => void + beforeNgAfterViewChecked?: (this: T) => void + } +) { + proxyHandlerMap.set(fabComponentName, handlers); +} diff --git a/libs/fabric/package-lock.json b/libs/fabric/package-lock.json new file mode 100644 index 00000000..845facbd --- /dev/null +++ b/libs/fabric/package-lock.json @@ -0,0 +1,21 @@ +{ + "name": "@angular-react/fabric", + "version": "3.2.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "angular-react-toolkit": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/angular-react-toolkit/-/angular-react-toolkit-1.1.1.tgz", + "integrity": "sha512-doJCw2B1SmzKPQNNqLOPbTjaLZmYUrMzAwj0arwcTtbe4xObRI8cmw4JOcNbs8JVmkk/gPStERSmifJ/Q4bleA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } +} diff --git a/libs/fabric/package.json b/libs/fabric/package.json index d9bf3b3e..9c740b22 100644 --- a/libs/fabric/package.json +++ b/libs/fabric/package.json @@ -1,7 +1,7 @@ { "$schema": "../../node_modules/ng-packagr/package.schema.json", "name": "@angular-react/fabric", - "version": "3.0.0", + "version": "3.2.6", "ngPackage": { "lib": { "entryFile": "public-api.ts", @@ -9,9 +9,8 @@ "react": "React", "react-dom": "ReactDOM", "@angular-react/core": "ɵa", - "office-ui-fabric-react": "Fabric" - }, - "comments": "none" + "@fluentui/react": "Fabric" + } }, "dest": "../../@angular-react/fabric" }, @@ -43,13 +42,14 @@ "fabric" ], "private": false, + "sideEffects": false, "peerDependencies": { "@angular-react/core": "^1.0.0", "@angular/common": "^8.0.2", "@angular/core": "^8.0.2", "@angular/platform-browser-dynamic": "^8.0.2", "@angular/platform-browser": "^8.0.2", - "office-ui-fabric-react": "7.82.2", + "@fluentui/react": "^8.17.3", "react-dom": "~16.8.6", "react": "^16.8.6" } diff --git a/libs/fabric/public-api.ts b/libs/fabric/public-api.ts index 434dc296..cf30c108 100644 --- a/libs/fabric/public-api.ts +++ b/libs/fabric/public-api.ts @@ -1,4 +1,43 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -export * from './src/public-api'; +export * from './lib/components/breadcrumb/public-api'; +export * from './lib/components/button/public-api'; +export * from './lib/components/calendar/public-api'; +export * from './lib/components/callout/public-api'; +export * from './lib/components/checkbox/public-api'; +export * from './lib/components/choice-group/public-api'; +export * from './lib/components/combo-box/public-api'; +export * from './lib/components/command-bar/public-api'; +export * from './lib/components/contextual-menu/public-api'; +export * from './lib/components/core/public-api'; +export * from './lib/components/date-picker/public-api'; +export * from './lib/components/details-list/public-api'; +export * from './lib/components/dialog/public-api'; +export * from './lib/components/divider/public-api'; +export * from './lib/components/dropdown/public-api'; +export * from './lib/components/fabric/public-api'; +export * from './lib/components/group/public-api'; +export * from './lib/components/grouped-list/public-api'; +export * from './lib/components/hover-card/public-api'; +export * from './lib/components/icon/public-api'; +export * from './lib/components/image/public-api'; +export * from './lib/components/link/public-api'; +export * from './lib/components/marquee-selection/public-api'; +export * from './lib/components/message-bar/public-api'; +export * from './lib/components/modal/public-api'; +export * from './lib/components/nav/public-api'; +export * from './lib/components/panel/public-api'; +export * from './lib/components/persona/public-api'; +export * from './lib/components/pickers/public-api'; +export * from './lib/components/pivot/public-api'; +export * from './lib/components/progress-indicator/public-api'; +export * from './lib/components/rating/public-api'; +export * from './lib/components/search-box/public-api'; +export * from './lib/components/shimmer/public-api'; +export * from './lib/components/slider/public-api'; +export * from './lib/components/spin-button/public-api'; +export * from './lib/components/spinner/public-api'; +export * from './lib/components/text-field/public-api'; +export * from './lib/components/toggle/public-api'; +export * from './lib/components/tooltip/public-api'; diff --git a/libs/fabric/src/lib/components/details-list/public-api.ts b/libs/fabric/src/lib/components/details-list/public-api.ts deleted file mode 100644 index 1bb766ca..00000000 --- a/libs/fabric/src/lib/components/details-list/public-api.ts +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -export * from './details-list.component'; -export * from './details-list.module'; diff --git a/libs/fabric/src/public-api.ts b/libs/fabric/src/public-api.ts deleted file mode 100644 index b2650654..00000000 --- a/libs/fabric/src/public-api.ts +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -export * from './lib/components/breadcrumb/public-api'; -export * from './lib/components/button/public-api'; -export * from './lib/components/calendar/public-api'; -export * from './lib/components/callout/public-api'; -export * from './lib/components/checkbox/public-api'; -export * from './lib/components/choice-group/public-api'; -export * from './lib/components/combo-box/public-api'; -export * from './lib/components/command-bar/public-api'; -export * from './lib/components/contextual-menu/public-api'; -export * from './lib/components/date-picker/public-api'; -export * from './lib/components/details-list/public-api'; -export * from './lib/components/dialog/public-api'; -export * from './lib/components/divider/public-api'; -export * from './lib/components/dropdown/public-api'; -export * from './lib/components/fabric/public-api'; -export * from './lib/components/group/public-api'; -export * from './lib/components/grouped-list/public-api'; -export * from './lib/components/hover-card/public-api'; -export * from './lib/components/icon/public-api'; -export * from './lib/components/image/public-api'; -export * from './lib/components/link/public-api'; -export * from './lib/components/marquee-selection/public-api'; -export * from './lib/components/message-bar/public-api'; -export * from './lib/components/modal/public-api'; -export * from './lib/components/panel/public-api'; -export * from './lib/components/persona/public-api'; -export * from './lib/components/pivot/public-api'; -export * from './lib/components/search-box/public-api'; -export * from './lib/components/shimmer/public-api'; -export * from './lib/components/slider/public-api'; -export * from './lib/components/spin-button/public-api'; -export * from './lib/components/spinner/public-api'; -export * from './lib/components/text-field/public-api'; -export * from './lib/components/toggle/public-api'; -export * from './lib/components/tooltip/public-api'; -export * from './lib/components/nav/public-api'; -export * from './lib/components/pickers/public-api'; -export * from './lib/components/progress-indicator/public-api'; diff --git a/libs/fabric/src/test.ts b/libs/fabric/src/test.ts deleted file mode 100644 index f9593470..00000000 --- a/libs/fabric/src/test.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'core-js/es7/reflect'; -import 'zone.js/dist/zone'; -import 'zone.js/dist/zone-testing'; -import { getTestBed } from '@angular/core/testing'; -import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; - -declare const require: any; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); -// Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/); -// And load the modules. -context.keys().map(context); diff --git a/libs/semantic-ui/package.json b/libs/semantic-ui/package.json index b8e502f9..a14f68b4 100644 --- a/libs/semantic-ui/package.json +++ b/libs/semantic-ui/package.json @@ -10,8 +10,7 @@ "react-dom": "ReactDOM", "@angular-react/core": "ɵa", "semantic-ui-react": "semanticUIReact" - }, - "comments": "none" + } }, "dest": "../../@angular-react/semantic-ui" }, diff --git a/libs/toolkit/build.ts b/libs/toolkit/build.ts new file mode 100644 index 00000000..388a5f6a --- /dev/null +++ b/libs/toolkit/build.ts @@ -0,0 +1,10 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import * as path from 'path'; +import { ngPackagr } from 'ng-packagr'; + +ngPackagr() + .forProject(path.resolve(__dirname, 'package.json')) + .withTsConfig(path.resolve(__dirname, 'tsconfig-custom.json')) + .build(); diff --git a/libs/toolkit/core/declarative/item-changed.helpers.ts b/libs/toolkit/core/declarative/item-changed.helpers.ts new file mode 100644 index 00000000..2ba45779 --- /dev/null +++ b/libs/toolkit/core/declarative/item-changed.helpers.ts @@ -0,0 +1,12 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import { ItemChanges, PropertyChange } from './item-changed.payload'; + +export function mergeItemChanges(target: T, changes: ItemChanges): T { + const itemChangesOverrides: Partial = (Object.entries(changes) as Array< + [keyof T, PropertyChange] + >).reduce((acc, [propertyKey, change]) => Object.assign(acc, { [propertyKey]: change.currentValue }), {}); + + return Object.assign({}, target, itemChangesOverrides); +} diff --git a/libs/toolkit/core/declarative/item-changed.payload.ts b/libs/toolkit/core/declarative/item-changed.payload.ts new file mode 100644 index 00000000..fb3177c5 --- /dev/null +++ b/libs/toolkit/core/declarative/item-changed.payload.ts @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +export interface PropertyChange { + readonly currentValue: TValue; +} + +export type ItemChanges = { readonly [P in keyof TItem]?: PropertyChange }; + +export interface ItemChangedPayload { + readonly key: TKey; + readonly changes: ItemChanges; +} diff --git a/libs/fabric/src/index.ts b/libs/toolkit/core/declarative/item-changed.ts similarity index 54% rename from libs/fabric/src/index.ts rename to libs/toolkit/core/declarative/item-changed.ts index 3bab80d3..8397b4ff 100644 --- a/libs/fabric/src/index.ts +++ b/libs/toolkit/core/declarative/item-changed.ts @@ -1,4 +1,5 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -export * from './public-api'; +export * from './item-changed.payload'; +export * from './item-changed.helpers'; diff --git a/libs/toolkit/core/shared/changeable-helper.ts b/libs/toolkit/core/shared/changeable-helper.ts new file mode 100644 index 00000000..deb4c2b3 --- /dev/null +++ b/libs/toolkit/core/shared/changeable-helper.ts @@ -0,0 +1,99 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import { EventEmitter, QueryList } from '@angular/core'; +import { Subscription } from 'rxjs'; + +import { ItemChangedPayload, ItemChanges } from '../declarative/item-changed.payload'; +import { ChangeableItemDirective } from './changeable-item.directive'; + +/** + * Helper class for single changeable item + */ +export class ChangeableItemHelper { + readonly onItemChanged = new EventEmitter>(); + + constructor(private readonly key: string) {} + + /** + * Action to be called by user of class when change is detected + * (Typically called in ngOnChanges) + * @param changes TypedChanges that are to be emitted + */ + emitChanges(changes: ItemChanges) { + this.onItemChanged.emit({ key: this.key, changes }); + } +} + +/** + * Parent class for wrapper directive for multiple ChangeableItemDirectives + */ +export class ChangeableItemsHelper { + readonly onChildItemChanged = new EventEmitter>(); + readonly onItemsChanged = new EventEmitter>>(); + + private readonly _subscriptionsMap: { [key: string]: Subscription } = {}; + private _changeSubscription: Subscription; + + /** + * Initialize subscriptions to watch for changes to children ChangeableItemDirectives + * (Typically called in ngAfterContentInit after @ContentChildren are initialized) + * @param directiveItems List of children to watch for + * @param self Reference to component using this helper. This component gets filtered out in case + * it appears in the list of children (i.e. when a component has children of its own type) + * @param nonSelfHandler Callback to handle filtered list of children when updated + */ + constructor( + private directiveItems: QueryList>, + private self?: IChangeableItemsContainer, + private nonSelfHandler?: (nonSelfDirectives: ChangeableItemDirective[]) => void + ) { + this._subscribeNewDirectives(); + this._changeSubscription = this.directiveItems.changes.subscribe(newValues => { + this.onItemsChanged.emit(newValues); + this._subscribeNewDirectives(); + }); + } + + /** + * Action to be called by user of class when directive/component is destroyed + * (Typically called in ngOnDestroy) + */ + destroy() { + Object.values(this._subscriptionsMap).forEach(value => value.unsubscribe()); + this._changeSubscription.unsubscribe(); + } + + private _subscribeNewDirectives() { + const nonSelfDirectives = this._handleNonSelfDirectives(); + nonSelfDirectives.forEach(directiveItem => { + if (this._subscriptionsMap[directiveItem.key]) { + this._subscriptionsMap[directiveItem.key].unsubscribe(); + } + this._subscriptionsMap[directiveItem.key] = directiveItem.onItemChanged.subscribe(changes => { + this._handleNonSelfDirectives(); + this.onChildItemChanged.emit(changes); + if (this.self && this.self.onItemChanged) { + this.self.onItemChanged.emit(changes); + } + }); + }); + } + + private _handleNonSelfDirectives() { + const nonSelfDirectives = this.directiveItems.filter(directiveItem => directiveItem !== (this.self as any)); + if (this.nonSelfHandler && nonSelfDirectives.length) { + this.nonSelfHandler(nonSelfDirectives); + } + return nonSelfDirectives; + } +} + +/** + * Interface for directives that contain changeable items + */ +export interface IChangeableItemsContainer { + onChildItemChanged: EventEmitter>; + onItemChanged?: EventEmitter>; + onItemsChanged: EventEmitter>>; +} diff --git a/libs/toolkit/core/shared/changeable-item.directive.ts b/libs/toolkit/core/shared/changeable-item.directive.ts new file mode 100644 index 00000000..75218ac2 --- /dev/null +++ b/libs/toolkit/core/shared/changeable-item.directive.ts @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import { EventEmitter, Input, OnInit, Output } from '@angular/core'; + +import { OnChanges } from '../../declarations/angular/typed-changes'; +import { ItemChangedPayload, ItemChanges } from '../declarative/item-changed.payload'; +import { ChangeableItemHelper } from './changeable-helper'; + +/** + * Parent class for wrapper directive for single item with OnChanges + */ +export abstract class ChangeableItemDirective implements OnChanges>, OnInit { + @Input() key: string; + + @Output() + get onItemChanged(): EventEmitter> { + return this.changeableItemHelper && this.changeableItemHelper.onItemChanged; + } + + private changeableItemHelper: ChangeableItemHelper; + + ngOnInit() { + this.changeableItemHelper = new ChangeableItemHelper(this.key); + } + + ngOnChanges(changes: ItemChanges) { + if (this.changeableItemHelper) { + this.changeableItemHelper.emitChanges(changes); + } + } +} diff --git a/libs/toolkit/core/shared/changeable-items.directive.ts b/libs/toolkit/core/shared/changeable-items.directive.ts new file mode 100644 index 00000000..066d0128 --- /dev/null +++ b/libs/toolkit/core/shared/changeable-items.directive.ts @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import { AfterContentInit, ContentChildren, EventEmitter, OnDestroy, Output, QueryList } from '@angular/core'; + +import { ItemChangedPayload } from '../declarative/item-changed.payload'; +import { ChangeableItemsHelper, IChangeableItemsContainer } from './changeable-helper'; +import { ChangeableItemDirective } from './changeable-item.directive'; + +/** + * Parent class for wrapper directive for multiple ChangeableItemDirectives + */ +export abstract class ChangeableItemsDirective + implements AfterContentInit, IChangeableItemsContainer, OnDestroy { + @ContentChildren(ChangeableItemDirective) readonly directiveItems: QueryList>; + + @Output() + get onChildItemChanged(): EventEmitter> { + return this.changeableItemsHelper && this.changeableItemsHelper.onChildItemChanged; + } + @Output() + get onItemsChanged(): EventEmitter>> { + return this.changeableItemsHelper && this.changeableItemsHelper.onItemsChanged; + } + + private changeableItemsHelper: ChangeableItemsHelper; + + abstract get items(): TItem[]; + + ngAfterContentInit() { + this.changeableItemsHelper = new ChangeableItemsHelper(this.directiveItems); + } + + ngOnDestroy() { + this.changeableItemsHelper.destroy(); + } +} diff --git a/libs/toolkit/declarations/angular/typed-changes.ts b/libs/toolkit/declarations/angular/typed-changes.ts new file mode 100644 index 00000000..13fab071 --- /dev/null +++ b/libs/toolkit/declarations/angular/typed-changes.ts @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import * as AngularCore from '@angular/core'; + +export interface TypedChange extends AngularCore.SimpleChange { + readonly previousValue: T; + readonly currentValue: T; +} + +/** + * Known Angular keys that components often have + */ +export type AngularLifeCycleKeys = + | keyof AngularCore.AfterContentChecked + | keyof AngularCore.AfterContentInit + | keyof AngularCore.AfterViewChecked + | keyof AngularCore.AfterViewInit + | keyof AngularCore.DoCheck + | keyof AngularCore.OnChanges + | keyof AngularCore.OnDestroy + | keyof AngularCore.OnInit; + +// Only take string keys from TComponent, since those are the only valid input property types. +// Exclude any known stuff that can be eliminated as non-Inputs. +export type InputKeys = Exclude; + +export type TypedChanges = Partial<{ [P in InputKeys]: TypedChange }>; + +export interface OnChanges extends AngularCore.OnChanges { + ngOnChanges(changes: TypedChanges): void; +} diff --git a/libs/toolkit/package.json b/libs/toolkit/package.json new file mode 100644 index 00000000..f51e5fa8 --- /dev/null +++ b/libs/toolkit/package.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../node_modules/ng-packagr/package.schema.json", + "name": "angular-react-toolkit", + "version": "1.1.1", + "ngPackage": { + "lib": { + "entryFile": "public-api.ts", + "umdModuleIds": { + "react": "React", + "react-dom": "ReactDOM", + "@angular-react/core": "ɵa", + "@fluentui/react": "Fabric" + } + }, + "dest": "../../angular-react-toolkit" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/microsoft/angular-react/issues" + }, + "homepage": "https://github.com/microsoft/angular-react#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/microsoft/angular-react.git" + }, + "keywords": [ + "angular", + "react", + "components", + "microsoft", + "office", + "fabric" + ], + "private": false, + "sideEffects": false, + "peerDependencies": { + "@angular-react/core": "^1.0.0", + "@angular/common": "^8.0.2", + "@angular/core": "^8.0.2", + "@angular/platform-browser-dynamic": "^8.0.2", + "@angular/platform-browser": "^8.0.2", + "@fluentui/react": "^8.17.3", + "react-dom": "~16.8.6", + "react": "^16.8.6" + } +} diff --git a/libs/toolkit/plugins/styles-plugin.ts b/libs/toolkit/plugins/styles-plugin.ts new file mode 100644 index 00000000..cfb2351e --- /dev/null +++ b/libs/toolkit/plugins/styles-plugin.ts @@ -0,0 +1,38 @@ +import { OnInit } from "@angular/core"; +import { IStyleFunctionOrObject } from "@fluentui/react"; + +const proxyHandlerMap = new Map void +}>() + +interface IConstructor { + new (...args: any[]): { + ngOnInit(): void + } +} +export function Styled() { + return function (constructor: any) { + class Wrapper extends constructor implements OnInit { + styles: IStyleFunctionOrObject; + ngOnInit() { + const handler = proxyHandlerMap.get(constructor.name); + if (handler && handler.beforeNgInit) { + handler.beforeNgInit.apply(this); + } + if (super.ngOnInit) { + super.ngOnInit(); + } + } + } + return Wrapper as any; + } +} + +export function proxyStyles( + fabComponentName: string, + handlers: { + beforeNgInit: (this: T) => void + } +) { + proxyHandlerMap.set(fabComponentName, handlers); +} diff --git a/libs/toolkit/public-api.ts b/libs/toolkit/public-api.ts new file mode 100644 index 00000000..5e4e7603 --- /dev/null +++ b/libs/toolkit/public-api.ts @@ -0,0 +1,14 @@ +export * from './utils/get-data-attributes'; +export * from './utils/kebab-case'; +export * from './utils/noop'; +export * from './utils/omit'; +export * from './utils/pick'; + +export * from './declarations/angular/typed-changes'; + +export * from './core/declarative/item-changed'; +export * from './core/shared/changeable-helper'; +export * from './core/shared/changeable-item.directive'; +export * from './core/shared/changeable-items.directive'; + +export * from './plugins/styles-plugin'; \ No newline at end of file diff --git a/libs/toolkit/tsconfig-custom.json b/libs/toolkit/tsconfig-custom.json new file mode 100644 index 00000000..b32d7051 --- /dev/null +++ b/libs/toolkit/tsconfig-custom.json @@ -0,0 +1,31 @@ +{ + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "flatModuleId": "AUTOGENERATED", + "flatModuleOutFile": "AUTOGENERATED", + "skipTemplateCodegen": true, + "strictMetadataEmit": true + }, + "buildOnSave": false, + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "", + "target": "es2015", + "module": "es2015", + "moduleResolution": "node", + "outDir": "", + "declaration": true, + "sourceMap": true, + "inlineSources": true, + "skipLibCheck": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "importHelpers": true, + "lib": ["dom", "es2017"], + "paths": { + "@angular-react/*": ["../../@angular-react/*"] + } + }, + "exclude": ["node_modules", "dist", "**/*.ngfactory.ts", "**/*.shim.ts", "**/*.spec.ts"], + "files": ["AUTOGENERATED"] +} diff --git a/libs/toolkit/tsconfig.lib.json b/libs/toolkit/tsconfig.lib.json new file mode 100644 index 00000000..e00e7dcb --- /dev/null +++ b/libs/toolkit/tsconfig.lib.json @@ -0,0 +1,27 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/libs/toolkit", + "target": "es2015", + "module": "es2015", + "moduleResolution": "node", + "declaration": true, + "sourceMap": true, + "inlineSources": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "importHelpers": true, + "types": [], + "lib": ["dom", "es2015"] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "flatModuleId": "AUTOGENERATED", + "flatModuleOutFile": "AUTOGENERATED" + }, + "exclude": ["src/test.ts", "**/*.spec.ts"] +} diff --git a/libs/toolkit/tsconfig.spec.json b/libs/toolkit/tsconfig.spec.json new file mode 100644 index 00000000..d1809169 --- /dev/null +++ b/libs/toolkit/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc/libs/toolkit", + "types": ["jasmine", "node"] + }, + "files": ["src/test.ts"], + "include": ["**/*.spec.ts", "**/*.d.ts"] +} diff --git a/libs/toolkit/tslint.json b/libs/toolkit/tslint.json new file mode 100644 index 00000000..3f4c6889 --- /dev/null +++ b/libs/toolkit/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [true, "attribute", "fab", "camelCase"], + "component-selector": [true, "element", "fab", "kebab-case"] + } +} diff --git a/libs/toolkit/utils/get-data-attributes.ts b/libs/toolkit/utils/get-data-attributes.ts new file mode 100644 index 00000000..48678a39 --- /dev/null +++ b/libs/toolkit/utils/get-data-attributes.ts @@ -0,0 +1,32 @@ +import { kebabCase } from './kebab-case'; + +/** + * Gets the data attributes on an `HTMLElement`. + * + * @example +```keepDataPrefix === false```: +```html +
-> { 'service': 'Foo', 'service-type': 'Bar' } +``` + +```keepDataPrefix === true```: +```html +
-> { 'data-service': 'Foo', 'data-service-type': 'Bar' } +``` + */ +export function getDataAttributes( + element: T, + keepDataPrefix: boolean = false +): Record { + return Object.entries(element.dataset).reduce( + (acc, [key, value]) => ({ + ...acc, + [calculateKey(key, keepDataPrefix)]: value, + }), + {} + ); +} + +function calculateKey(key: string, keepDataPrefix: boolean): string { + return `${keepDataPrefix && 'data-'}${kebabCase(key)}`; +} diff --git a/libs/toolkit/utils/kebab-case.ts b/libs/toolkit/utils/kebab-case.ts new file mode 100644 index 00000000..55294c74 --- /dev/null +++ b/libs/toolkit/utils/kebab-case.ts @@ -0,0 +1,7 @@ +/** Implementation borrowed from https://github.com/joakimbeng/kebab-case */ + +const KEBAB_REGEX = /[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g; + +export function kebabCase(str: string) { + return str.replace(KEBAB_REGEX, match => '-' + match.toLowerCase()); +} diff --git a/libs/toolkit/utils/noop.ts b/libs/toolkit/utils/noop.ts new file mode 100644 index 00000000..425f2ed1 --- /dev/null +++ b/libs/toolkit/utils/noop.ts @@ -0,0 +1,6 @@ +/** + * Noop function - doesn't do anything + */ +export const noop = (...args: any[]) => { + args.forEach(Object.keys); +}; diff --git a/libs/toolkit/utils/omit.ts b/libs/toolkit/utils/omit.ts new file mode 100644 index 00000000..02c8b004 --- /dev/null +++ b/libs/toolkit/utils/omit.ts @@ -0,0 +1,20 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import { Omit } from '@angular-react/core'; + +/** + * Omit a a set of properties from an object. + * + * Does **not** modify the original object. + * @param obj the object + * @param keys the keys + * @returns A new object with all properties apart from the `keys` from `obj` + */ +export function omit(obj: T, ...keys: K[]): Omit { + return Object.keys(obj) + .filter(key => !keys.includes(key as K)) + .reduce>((acc, key) => Object.assign(acc, { [key]: obj[key] }), {} as any); +} + +export default omit; diff --git a/libs/toolkit/utils/pick.ts b/libs/toolkit/utils/pick.ts new file mode 100644 index 00000000..83b4b233 --- /dev/null +++ b/libs/toolkit/utils/pick.ts @@ -0,0 +1,16 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +/** + * Pick a a set of properties from an object. + * + * Does **not** modify the original object. + * @param obj the object + * @param keys the keys + * @returns A new object with all properties from the `keys` from `obj` + */ +export function pick(obj: T, ...keys: K[]): Pick { + return keys.reduce>((acc, key) => Object.assign(acc, { [key]: obj[key] }), {} as any); +} + +export default pick; diff --git a/package-lock.json b/package-lock.json index 76be9cbb..7478a199 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1574,6 +1574,257 @@ } } }, + "@fluentui/date-time-utilities": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.2.3.tgz", + "integrity": "sha512-lbXaKXpeWymzGk3YNwT3hUPfUSnYO3x6wS2Rj3ySzDY6OkMLOBBV6UVa2uRVRXCio5GcJyMo9Wtgv77gmHl2fQ==", + "requires": { + "@fluentui/set-version": "^8.1.5", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/dom-utilities": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.1.5.tgz", + "integrity": "sha512-OLDYV5ZGIiK/JXx/DFFib4vSa7PELvznbdAujDcX2wjt3V3Lt2N5ucv59JsVxk5LlwXjasUHJI2NZadagmnM6A==", + "requires": { + "@fluentui/set-version": "^8.1.5", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/font-icons-mdl2": { + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.1.4.tgz", + "integrity": "sha512-v0NRk+W2qJQtBsH9hqYNG5Xnic8C1kfB0I+OTGasFYPvxdd0APcWw2vajrlE49ijgVjXS0AByCgF6mu8LiYlHg==", + "requires": { + "@fluentui/set-version": "^8.1.2", + "@fluentui/style-utilities": "^8.1.4", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/foundation-legacy": { + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.1.4.tgz", + "integrity": "sha512-Kd+XpHsv3UEnDTwEnUm93Au+QGpYZ5x/VuQsv8K1sDM+gjb3BDohuwR6MWgzgCMJiVW0NMlbS4I2OpUZa6k5eg==", + "requires": { + "@fluentui/merge-styles": "^8.1.2", + "@fluentui/set-version": "^8.1.2", + "@fluentui/style-utilities": "^8.1.4", + "@fluentui/utilities": "^8.2.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/keyboard-key": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.3.5.tgz", + "integrity": "sha512-qPNPnRtkC92b8Zjx3mJ6+vRX+pdmbDYcXP8zXb2NJ/briAQXYmyqdjJLUl2riVBcAC4H3cL6dTKLR9VAyqhdYQ==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/merge-styles": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.2.2.tgz", + "integrity": "sha512-sZNwhGyceLBnV/lZyXVJEyEITU97pmNdVvziEcWl6uiWQ6AfNT3NoEw/JQCOIjofP5EL6FFv6lCOo8mktvR1hg==", + "requires": { + "@fluentui/set-version": "^8.1.5", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/react": { + "version": "8.22.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.22.2.tgz", + "integrity": "sha512-0XnRdA5QtNvNe6/ioFDd2yMnDre5WrY8YYdLwqFjmz+vvhNUysnXV9GOLQANmUcezzQptM8C0DYG18C3nKjbbA==", + "requires": { + "@fluentui/date-time-utilities": "^8.2.0", + "@fluentui/font-icons-mdl2": "^8.1.4", + "@fluentui/foundation-legacy": "^8.1.4", + "@fluentui/merge-styles": "^8.1.2", + "@fluentui/react-focus": "^8.1.5", + "@fluentui/react-hooks": "^8.2.3", + "@fluentui/react-window-provider": "^2.1.2", + "@fluentui/set-version": "^8.1.2", + "@fluentui/style-utilities": "^8.1.4", + "@fluentui/theme": "^2.1.3", + "@fluentui/utilities": "^8.2.0", + "@microsoft/load-themed-styles": "^1.10.26", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/react-focus": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.1.5.tgz", + "integrity": "sha512-zvHwta+lRmw2kYRif0Zz6+skmfxUzagd15iMlUPRIVAcsj+rxOkoE7g8NlhXym7HsgMiKRAYJM0CdfMauCnkvQ==", + "requires": { + "@fluentui/keyboard-key": "^0.3.2", + "@fluentui/merge-styles": "^8.1.2", + "@fluentui/set-version": "^8.1.2", + "@fluentui/style-utilities": "^8.1.4", + "@fluentui/utilities": "^8.2.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/react-hooks": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.2.3.tgz", + "integrity": "sha512-JqQNLIc0WOwwMZ3rAnBkcy0oHZD83Bi1hs7qpvwGUW1OrL3QoJqEnmiKPowxWb8NUeKEP51cBfGi+/7aqbDZAg==", + "requires": { + "@fluentui/react-window-provider": "^2.1.2", + "@fluentui/set-version": "^8.1.2", + "@fluentui/utilities": "^8.2.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/react-window-provider": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.1.5.tgz", + "integrity": "sha512-jJduYVHpHNpHuPO/s8wYGmBDLRepgzEiK/206M4JIeY/b+l6YADyUqSBVxT5PENGiyziaz8/bRo8gqVZCyexJg==", + "requires": { + "@fluentui/set-version": "^8.1.5", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/set-version": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.1.5.tgz", + "integrity": "sha512-AfaycaduWd/aErqEmrAUWpr2gpZrkaSe6D9noXhtVH3JlreRuFM78Ji1oE4f8cpWxSA/K5qb7BT6x4z4I2Bs+A==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/style-utilities": { + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.1.4.tgz", + "integrity": "sha512-tR/ntfobJvuCtLyi7jpEbsq67iTaBNq/lpq+tYuvIqI8Gl90L9a8g8344ADP4+9/i3TKsrAZgnV9vze66ybHOw==", + "requires": { + "@fluentui/merge-styles": "^8.1.2", + "@fluentui/set-version": "^8.1.2", + "@fluentui/theme": "^2.1.3", + "@fluentui/utilities": "^8.2.0", + "@microsoft/load-themed-styles": "^1.10.26", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/theme": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.1.3.tgz", + "integrity": "sha512-o/So4091GtwtEkxujd6QT9M8kuLOde0Z7by/zLNQBU00wX3PeBxM4mpSLmnz2vt5CN5IT7OWhRRsiyve/7hLAg==", + "requires": { + "@fluentui/merge-styles": "^8.1.2", + "@fluentui/set-version": "^8.1.2", + "@fluentui/utilities": "^8.2.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@fluentui/utilities": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.2.0.tgz", + "integrity": "sha512-kq8xyFHkWUbzzbkGLuDACEhH+K5oqM/wEU9+zRuM/qI2bIS1B6Cr0ruq7FHxVrtAnMhvXKzM8DPn0W8uf775qQ==", + "requires": { + "@fluentui/dom-utilities": "^2.1.2", + "@fluentui/merge-styles": "^8.1.2", + "@fluentui/set-version": "^8.1.2", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, "@microsoft/load-themed-styles": { "version": "1.10.37", "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.37.tgz", @@ -1605,12 +1856,6 @@ "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-8.0.1.tgz", "integrity": "sha512-TxOksSARaQ1hCZM0/qMCun6axbSFuhSEmuW9YLRhuU5m3gvJN4cr5tk960DDVGl8/06YX6Q2CQ7uIgx5qCwbsg==" }, - "@ngtools/json-schema": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", - "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", - "dev": true - }, "@ngtools/webpack": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.0.3.tgz", @@ -2257,9 +2502,9 @@ "dev": true }, "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "version": "0.0.45", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", + "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", "dev": true }, "@types/events": { @@ -2389,125 +2634,12 @@ } } }, - "@uifabric/foundation": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.5.4.tgz", - "integrity": "sha512-aMFlFepvd6Sh9Q+l+ZjyC6LZJYTPGCTzlqezHdZM97b9s/cx1KkOT7EYjq/TIc4UHZDlsiYmd1ogIHc0/obasw==", - "requires": { - "@uifabric/merge-styles": "^7.8.4", - "@uifabric/set-version": "^7.0.3", - "@uifabric/styling": "^7.10.3", - "@uifabric/utilities": "^7.11.4", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - } - } - }, - "@uifabric/icons": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@uifabric/icons/-/icons-7.3.3.tgz", - "integrity": "sha512-4SUg2VyNPNP8/Xs+x7ZY4xiEJytrmATWtISmS1EVRTFYrTjeFmbIxzSGZsm1ISgcM5xSdu9a2Ih2ps7SreX0Ug==", - "requires": { - "@uifabric/set-version": "^7.0.3", - "@uifabric/styling": "^7.10.3", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - } - } - }, - "@uifabric/merge-styles": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.8.4.tgz", - "integrity": "sha512-tW4vjrsjWmg1GN1ulssFvdy1I98PA2iJgdHHI4YMKdRZh5aYyFwUt9n3uNq3hJCG8hHmTYOSajakN/0Tr2UeIg==", - "requires": { - "@uifabric/set-version": "^7.0.3", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - } - } - }, - "@uifabric/react-hooks": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.0.4.tgz", - "integrity": "sha512-nvxCdCpWJToJyFQTuv5cP8ZBKGUOeLhuOOwVrzMz6KZaTjpLlnzvRZA53V1xc8GHJT6FjvnPFC32HIInlnzh0Q==", - "requires": { - "@uifabric/set-version": "^7.0.3", - "@uifabric/utilities": "^7.11.4", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - } - } - }, - "@uifabric/set-version": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.3.tgz", - "integrity": "sha512-03A68Fyfx3y75dUW9rjQ2fZv/9zmGgMeovVLAQa0wc/oVjQ++eVDlAEK0AjfgnOaujYmhk79lXbYAuW3n+YUXw==", - "requires": { - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - } - } - }, - "@uifabric/styling": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@uifabric/styling/-/styling-7.10.3.tgz", - "integrity": "sha512-fdWRLig4haMGkKGl3r3CCicAbdGAR1tl/6k4xTBN65pz1e8OaxKA5QoVdOOoxBorvaSGGJFbV+N8LKzU5y3GoQ==", - "requires": { - "@microsoft/load-themed-styles": "^1.10.26", - "@uifabric/merge-styles": "^7.8.4", - "@uifabric/set-version": "^7.0.3", - "@uifabric/utilities": "^7.11.4", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - } - } - }, - "@uifabric/utilities": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.11.4.tgz", - "integrity": "sha512-B3Tiwma0yD/fQFIkyc+jNXwCgOtSvXlm1OGPC/mRoGczuXQH6o9mydaS7C8PjoetELgYQCZYm7Q7oup+thfSVg==", + "@uifabric/example-data": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@uifabric/example-data/-/example-data-7.1.5.tgz", + "integrity": "sha512-lbwhvK8DTdktsnzSS/5A1dnv0xSBAVHUOEjuowll0NR2rmUGOqCMvMprs8tRwGDqFuZjxM0PKoX5Oa4DnnDN+g==", "requires": { - "@uifabric/merge-styles": "^7.8.4", - "@uifabric/set-version": "^7.0.3", - "prop-types": "^15.5.10", "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - } } }, "@webassemblyjs/ast": { @@ -3108,24 +3240,24 @@ "dev": true }, "autoprefixer": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.0.tgz", - "integrity": "sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ==", + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", "dev": true, "requires": { - "browserslist": "^4.6.1", - "caniuse-lite": "^1.0.30000971", - "chalk": "^2.4.2", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.16", - "postcss-value-parser": "^3.3.1" + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" }, "dependencies": { "postcss": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", - "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -3133,6 +3265,12 @@ "supports-color": "^6.1.0" } }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3672,14 +3810,15 @@ } }, "browserslist": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.3.tgz", - "integrity": "sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz", + "integrity": "sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000975", - "electron-to-chromium": "^1.3.164", - "node-releases": "^1.1.23" + "caniuse-lite": "^1.0.30001111", + "electron-to-chromium": "^1.3.523", + "escalade": "^3.0.2", + "node-releases": "^1.1.60" } }, "browserstack": { @@ -3858,18 +3997,18 @@ }, "dependencies": { "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" } }, "http-cache-semantics": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", - "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, "lowercase-keys": { @@ -3879,9 +4018,9 @@ "dev": true }, "normalize-url": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", - "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true } } @@ -3923,9 +4062,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30000976", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000976.tgz", - "integrity": "sha512-tleNB1IwPRqZiod6nUNum63xQCMN96BUO2JTeiwuRM7p9d616EHsMBjBWJMudX39qCaPuWY8KEWzMZq7A9XQMQ==", + "version": "1.0.30001122", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001122.tgz", + "integrity": "sha512-pxjw28CThdrqfz06nJkpAc5SXM404TXB/h5f4UJX+rrXJKE/1bu/KAILc2AY+O6cQIFtRjV9qOR2vaEp9LDGUA==", "dev": true }, "canonical-path": { @@ -4078,9 +4217,9 @@ } }, "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, "cli-cursor": { @@ -4237,6 +4376,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -4943,9 +5088,9 @@ } }, "defer-to-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz", - "integrity": "sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, "define-properties": { @@ -5201,9 +5346,9 @@ "dev": true }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, "requires": { "is-obj": "^1.0.0" @@ -5244,9 +5389,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.170", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.170.tgz", - "integrity": "sha512-vDEhHcwMogbM+WXDTh6ZktwQOqLcK7MJdCOM99UZXRI1ct3Y9OeYYJTrIHnswzv+IYwoXNj0Furh+K6UotcHVg==", + "version": "1.3.556", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.556.tgz", + "integrity": "sha512-g5cGpg6rOCXxyfaLCQIWz9Fx+raFfbZ6sc4QLfvvaiCERBzY6YD6rh5d12QN++bEF1Tm9osYnxP37lbN/92j4A==", "dev": true }, "elliptic": { @@ -5481,6 +5626,12 @@ "es5-ext": "~0.10.14" } }, + "escalade": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", + "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -7441,10 +7592,13 @@ "dev": true }, "injection-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.2.1.tgz", - "integrity": "sha512-zHI+E+dM0PXix5FFTO1Y4/UOyAzE7zG1l/QwAn4jchTThOoBq+UYRFK4AVG7lQgFL+go62SbrzSsjXy9DFEZUg==", - "dev": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.3.1.tgz", + "integrity": "sha512-t+kpDAOL/DUZ68JncAhsb8C91qhJ6dXRMcOuvJfNA7sp63etdiQe6KQoxE/nZ5b2eTi0TQX6OothOCm89cLAJQ==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + } }, "inquirer": { "version": "6.3.1", @@ -7817,12 +7971,12 @@ "dev": true }, "is-reference": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.2.tgz", - "integrity": "sha512-Kn5g8c7XHKejFOpTf2QN9YjiHHKl5xRj+2uAZf9iM2//nkBNi/NNeB5JMoun28nEaUVHyPUzqzhfRlfAirEjXg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, "requires": { - "@types/estree": "0.0.39" + "@types/estree": "*" } }, "is-regex": { @@ -8210,6 +8364,12 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz", + "integrity": "sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q==", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -8552,6 +8712,12 @@ "immediate": "~3.0.5" } }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -9094,18 +9260,18 @@ "dev": true }, "ng-packagr": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-5.3.0.tgz", - "integrity": "sha512-i+964lzZC7VVzatDCLDZndiXTog1XGozY7K1Bs78+uBF8O1YHNQP9wB9C5fR4uEaSKVhCWEBYekoS69flCugMA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-5.7.1.tgz", + "integrity": "sha512-NDAUcMtLyZnF3bP6JtC3ANpIQRclRDPilF7C0DsjQuIz1q0V3mT7f1PwV0jnRWy8iRpSZmJZr6AGl736gloHtQ==", "dev": true, "requires": { - "@ngtools/json-schema": "^1.1.0", + "ajv": "^6.10.2", "autoprefixer": "^9.6.0", "browserslist": "^4.0.0", "chalk": "^2.3.1", "chokidar": "^3.0.0", "clean-css": "^4.1.11", - "commander": "^2.12.0", + "commander": "^3.0.0", "fs-extra": "^8.0.0", "glob": "^7.1.2", "injection-js": "^2.2.1", @@ -9115,8 +9281,8 @@ "postcss": "^7.0.0", "postcss-url": "^8.0.0", "read-pkg-up": "^5.0.0", - "rimraf": "^2.6.1", - "rollup": "^1.12.1", + "rimraf": "^3.0.0", + "rollup": "1.25.2", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-json": "^4.0.0", "rollup-plugin-node-resolve": "^5.0.0", @@ -9124,30 +9290,36 @@ "rxjs": "^6.0.0", "sass": "^1.17.3", "stylus": "^0.54.5", - "terser": "^4.0.0", + "terser": "^4.1.2", "update-notifier": "^3.0.0" }, "dependencies": { + "ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "anymatch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.2.tgz", - "integrity": "sha512-rUe9SxpRQlVg4EM8It7JMNWWYHAirTPpbTuvaSKybb5IejNgWB3PGBBX9rrPKDx2pM/p3Wh+7+ASaWRyyAbxmQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "braces": { @@ -9160,22 +9332,33 @@ } }, "chokidar": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.1.tgz", - "integrity": "sha512-2ww34sJWehnbpV0Q4k4V5Hh7juo7po6z7LUWkcIQnSGN1lHOL8GGtLtfwabKvLFQw/hbSUQ0u6V7OgGYgBzlkQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", + "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", "dev": true, "requires": { - "anymatch": "^3.0.1", - "async-each": "^1.0.3", - "braces": "^3.0.2", - "fsevents": "^2.0.6", - "glob-parent": "^5.0.0", - "is-binary-path": "^2.1.0", - "is-glob": "^4.0.1", - "normalize-path": "^3.0.0", - "readdirp": "^3.0.2" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" } }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -9186,32 +9369,38 @@ } }, "fs-extra": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.0.1.tgz", - "integrity": "sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "fsevents": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz", - "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "glob-parent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", - "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -9243,12 +9432,21 @@ "dev": true }, "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.0.2.tgz", - "integrity": "sha512-LbyJYv48eywrhOlScq16H/VkCiGKGPC2TpOdZCJ7QXnYEjn3NN/Oblh8QEU3vqfSRBB7OGvh5x45NKiVeNujIQ==", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "glob": "^7.1.3" } }, "source-map": { @@ -9258,9 +9456,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -9268,20 +9466,20 @@ } }, "terser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.0.tgz", - "integrity": "sha512-dOapGTU0hETFl1tCo4t56FN+2jffoKyER9qBGoUFyZ6y7WLoKT0bF+lAYi6B6YsILcGF3q1C2FBh8QcKSCgkgA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", "dev": true, "requires": { - "commander": "^2.19.0", + "commander": "^2.20.0", "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "source-map-support": "~0.5.12" }, "dependencies": { "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } } @@ -9368,13 +9566,10 @@ } }, "node-releases": { - "version": "1.1.23", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.23.tgz", - "integrity": "sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w==", - "dev": true, - "requires": { - "semver": "^5.3.0" - } + "version": "1.1.60", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", + "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", + "dev": true }, "node-sass-tilde-importer": { "version": "1.0.2", @@ -9642,23 +9837,6 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "office-ui-fabric-react": { - "version": "7.82.2", - "resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.82.2.tgz", - "integrity": "sha512-c0AFNidocQHWjm/xwAzJk5DbmVKEUbgj38G+/51SpOrzzhaVkkSQqMhrDvrqpzqAvfbZEgTYXz/7YtOWounm9Q==", - "requires": { - "@microsoft/load-themed-styles": "^1.10.26", - "@uifabric/foundation": "^7.5.1", - "@uifabric/icons": "^7.3.0", - "@uifabric/merge-styles": "^7.8.1", - "@uifabric/react-hooks": "^7.0.1", - "@uifabric/set-version": "^7.0.2", - "@uifabric/styling": "^7.10.0", - "@uifabric/utilities": "^7.11.1", - "prop-types": "^15.5.10", - "tslib": "^1.7.1" - } - }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -9868,21 +10046,21 @@ "dev": true }, "package-json": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.4.0.tgz", - "integrity": "sha512-bd1T8OBG7hcvMd9c/udgv6u5v9wISP3Oyl9Cm7Weop8EFwrtcQDnS2sb6zhwqus2WslSr5wSTIPiTTpxxmPm7Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { "got": "^9.6.0", - "registry-auth-token": "^3.4.0", + "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", - "semver": "^6.1.1" + "semver": "^6.2.0" }, "dependencies": { "semver": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", - "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -10108,9 +10286,9 @@ "dev": true }, "picomatch": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", - "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pidtree": { @@ -10319,9 +10497,9 @@ }, "dependencies": { "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true } } @@ -10713,9 +10891,9 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -10838,9 +11016,9 @@ } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -10861,22 +11039,34 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "read-pkg": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz", - "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", - "parse-json": "^4.0.0", - "type-fest": "^0.4.1" + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -10970,13 +11160,12 @@ } }, "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", + "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "^1.2.8" } }, "registry-url": { @@ -11174,50 +11363,50 @@ } }, "rollup": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.16.2.tgz", - "integrity": "sha512-UAZxaQvH0klYZdF+90xv9nGb+m4p8jdoaow1VL5/RzDK/gN/4CjvaMmJNcOIv1/+gtzswKhAg/467mzF0sLpAg==", + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.25.2.tgz", + "integrity": "sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg==", "dev": true, "requires": { - "@types/estree": "0.0.39", - "@types/node": "^12.0.8", - "acorn": "^6.1.1" + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" }, "dependencies": { - "@types/node": { - "version": "12.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz", - "integrity": "sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ==", + "acorn": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", "dev": true } } }, "rollup-plugin-commonjs": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.0.0.tgz", - "integrity": "sha512-B8MoX5GRpj3kW4+YaFO/di2JsZkBxNjVmZ9LWjUoTAjq8N9wc7HObMXPsrvolVV9JXVtYSscflXM14A19dXPNQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz", + "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==", "dev": true, "requires": { - "estree-walker": "^0.6.0", + "estree-walker": "^0.6.1", "is-reference": "^1.1.2", "magic-string": "^0.25.2", - "resolve": "^1.10.1", - "rollup-pluginutils": "^2.7.0" + "resolve": "^1.11.0", + "rollup-pluginutils": "^2.8.1" }, "dependencies": { "magic-string": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.2.tgz", - "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==", + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { "sourcemap-codec": "^1.4.4" } }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -11235,9 +11424,9 @@ } }, "rollup-plugin-node-resolve": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.0.4.tgz", - "integrity": "sha512-L/fGn+uZOCk/e3uNa3MITUCA3tXndcsaH0Bc7rq7v389vEXMXAYnmF0giEUWbhYxE7PyMGglByVrR8AeIP9klw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz", + "integrity": "sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==", "dev": true, "requires": { "@types/resolve": "0.0.8", @@ -11254,9 +11443,9 @@ "dev": true }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -11275,9 +11464,9 @@ } }, "rollup-pluginutils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz", - "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", "dev": true, "requires": { "estree-walker": "^0.6.1" @@ -12843,9 +13032,9 @@ "dev": true }, "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true }, "type-is": { @@ -13045,9 +13234,9 @@ "dev": true }, "update-notifier": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.0.tgz", - "integrity": "sha512-6Xe3oF2bvuoj4YECUc52yxVs94yWrxwqHbzyveDktTS1WhnlTRpNcQMxUshcB7nRVGi1jEXiqL5cW1S5WSyzKg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", "dev": true, "requires": { "boxen": "^3.0.0", diff --git a/package.json b/package.json index 59d1e425..93993555 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "postbuild:libs:core": "copyfiles README.md ./@angular-react/core", "build:libs:fabric": "ts-node libs/fabric/build.ts", "build:libs:semantic-ui": "ts-node libs/semantic-ui/build.ts", + "build:libs:toolkit": "ts-node libs/toolkit/build.ts", "affected:apps": "./node_modules/.bin/nx affected:apps", "affected:build": "./node_modules/.bin/nx affected:build", "affected:e2e": "./node_modules/.bin/nx affected:e2e", @@ -39,6 +40,7 @@ "publish:core:next": "npm publish ./@angular-react/core --access=public --tag next", "publish:fabric:next": "npm publish ./@angular-react/fabric --access=public --tag next", "publish:semantic-ui:next": "npm publish ./@angular-react/semantic-ui --access=public --tag next", + "publish:toolkit:customize": "npm publish ./angular-react-toolkit --access=public", "clean:docs": "rimraf docs", "clean:publish": "rimraf @angular-react", "e2e": "ng e2e", @@ -65,13 +67,21 @@ "@angular/platform-browser": "~8.0.2", "@angular/platform-browser-dynamic": "~8.0.2", "@angular/router": "~8.0.2", + "@fluentui/font-icons-mdl2": "8.1.4", + "@fluentui/foundation-legacy": "8.1.4", + "@fluentui/react": "8.22.2", + "@fluentui/react-focus": "8.1.5", + "@fluentui/react-hooks": "8.2.3", + "@fluentui/style-utilities": "8.1.4", + "@fluentui/theme": "2.1.3", + "@fluentui/utilities": "8.2.0", "@ngrx/effects": "~8.0.1", "@ngrx/router-store": "~8.0.1", "@ngrx/store": "~8.0.1", "@ngrx/store-devtools": "~8.0.1", + "@uifabric/example-data": "^7.1.5", "core-js": "^2.5.4", "ngrx-store-freeze": "^0.2.4", - "office-ui-fabric-react": "7.82.2", "react": "~16.8.6", "react-dom": "~16.8.6", "rxjs": "6.5.2", @@ -109,7 +119,7 @@ "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~2.0.0", "karma-jasmine-html-reporter": "^1.2.0", - "ng-packagr": "^5.3.0", + "ng-packagr": "5.7.1", "prettier": "1.15.3", "protractor": "~5.4.0", "rimraf": "^2.6.2", diff --git a/tsconfig.json b/tsconfig.json index 09feca59..cb4211c2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,9 +13,8 @@ "jsx": "react", "skipLibCheck": true, "paths": { - "@angular-react/*": ["libs/*"], "@angular-react/core": ["libs/core/src/index.ts"], - "@angular-react/fabric": ["libs/fabric/src/index.ts"], + "@angular-react/fabric": ["libs/fabric/public-api.ts"], "@angular-react/semantic-ui": ["libs/semantic-ui/src/index.ts"] } }, diff --git a/yarn.lock b/yarn.lock index 14f987c7..e6aeb9c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -343,6 +343,145 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@fluentui/date-time-utilities@^8.1.2": + version "8.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/date-time-utilities/-/date-time-utilities-8.1.2.tgz#60969597d859afdf6a115594172beebd95c6f17b" + integrity sha1-YJaVl9hZr99qEVWUFyvuvZXG8Xs= + dependencies: + "@fluentui/set-version" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/dom-utilities@^2.1.2": + version "2.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/dom-utilities/-/dom-utilities-2.1.2.tgz#55d94770ef5bc1ac9d21171ff4d59fb26459a380" + integrity sha1-VdlHcO9bwaydIRcf9NWfsmRZo4A= + dependencies: + "@fluentui/set-version" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/font-icons-mdl2@^8.1.2": + version "8.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.1.2.tgz#7f90f724315c7b1691d106137164042e09584ef2" + integrity sha1-f5D3JDFcexaR0QYTcWQELglYTvI= + dependencies: + "@fluentui/set-version" "^8.1.2" + "@fluentui/style-utilities" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/foundation-legacy@^8.1.2": + version "8.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/foundation-legacy/-/foundation-legacy-8.1.2.tgz#8cf96914f7ede10da503e4abf909aa868edde513" + integrity sha1-jPlpFPft4Q2lA+Sr+Qmqho7d5RM= + dependencies: + "@fluentui/merge-styles" "^8.1.2" + "@fluentui/set-version" "^8.1.2" + "@fluentui/style-utilities" "^8.1.2" + "@fluentui/utilities" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/keyboard-key@^0.3.2": + version "0.3.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/keyboard-key/-/keyboard-key-0.3.2.tgz#6b9c267675322d1e3a552354c3ab0767e3ec1dd0" + integrity sha1-a5wmdnUyLR46VSNUw6sHZ+PsHdA= + dependencies: + tslib "^2.1.0" + +"@fluentui/merge-styles@^8.1.2": + version "8.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/merge-styles/-/merge-styles-8.1.2.tgz#4398737d92689f701d9e4974a61d2604991a8409" + integrity sha1-Q5hzfZJon3Adnkl0ph0mBJkahAk= + dependencies: + "@fluentui/set-version" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/react-focus@^8.1.3": + version "8.1.3" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/react-focus/-/react-focus-8.1.3.tgz#dee911142b6cb907c63aac173348c28b4426efeb" + integrity sha1-3ukRFCtsuQfGOqwXM0jCi0Qm7+s= + dependencies: + "@fluentui/keyboard-key" "^0.3.2" + "@fluentui/merge-styles" "^8.1.2" + "@fluentui/set-version" "^8.1.2" + "@fluentui/style-utilities" "^8.1.2" + "@fluentui/utilities" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/react-hooks@^8.2.2": + version "8.2.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/react-hooks/-/react-hooks-8.2.2.tgz#f8065e1af46a6c5307f3a4d6daeec4c2848bde0d" + integrity sha1-+AZeGvRqbFMH86TW2u7EwoSL3g0= + dependencies: + "@fluentui/react-window-provider" "^2.1.2" + "@fluentui/set-version" "^8.1.2" + "@fluentui/utilities" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/react-window-provider@^2.1.2": + version "2.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/react-window-provider/-/react-window-provider-2.1.2.tgz#e6f3c3eb86368c9c0749fea967dffc32d403cb80" + integrity sha1-5vPD64Y2jJwHSf6pZ9/8MtQDy4A= + dependencies: + "@fluentui/set-version" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/react@^8.17.3": + version "8.17.3" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/react/-/react-8.17.3.tgz#446e4892af4c335befa6615ac8fa1e87425f0599" + integrity sha1-RG5Ikq9MM1vvpmFayPoeh0JfBZk= + dependencies: + "@fluentui/date-time-utilities" "^8.1.2" + "@fluentui/font-icons-mdl2" "^8.1.2" + "@fluentui/foundation-legacy" "^8.1.2" + "@fluentui/merge-styles" "^8.1.2" + "@fluentui/react-focus" "^8.1.3" + "@fluentui/react-hooks" "^8.2.2" + "@fluentui/react-window-provider" "^2.1.2" + "@fluentui/set-version" "^8.1.2" + "@fluentui/style-utilities" "^8.1.2" + "@fluentui/theme" "^2.1.2" + "@fluentui/utilities" "^8.1.2" + "@microsoft/load-themed-styles" "^1.10.26" + tslib "^2.1.0" + +"@fluentui/set-version@^8.1.2": + version "8.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/set-version/-/set-version-8.1.2.tgz#4a0e29f3e71dd44edbc85e92d4cee80fc2b23c61" + integrity sha1-Sg4p8+cd1E7byF6S1M7oD8KyPGE= + dependencies: + tslib "^2.1.0" + +"@fluentui/style-utilities@^8.1.2": + version "8.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/style-utilities/-/style-utilities-8.1.2.tgz#ecbad534d90325a93b4ad8b2d279d5eccb252c2e" + integrity sha1-7LrVNNkDJak7Stiy0nnV7MslLC4= + dependencies: + "@fluentui/merge-styles" "^8.1.2" + "@fluentui/set-version" "^8.1.2" + "@fluentui/theme" "^2.1.2" + "@fluentui/utilities" "^8.1.2" + "@microsoft/load-themed-styles" "^1.10.26" + tslib "^2.1.0" + +"@fluentui/theme@^2.1.2": + version "2.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/theme/-/theme-2.1.2.tgz#b25e43579f511622296cab61141fececb6bfe770" + integrity sha1-sl5DV59RFiIpbKthFB/s7La/53A= + dependencies: + "@fluentui/merge-styles" "^8.1.2" + "@fluentui/set-version" "^8.1.2" + "@fluentui/utilities" "^8.1.2" + tslib "^2.1.0" + +"@fluentui/utilities@^8.1.2": + version "8.1.2" + resolved "https://msazure.pkgs.visualstudio.com/_packaging/AzurePortal/npm/registry/@fluentui/utilities/-/utilities-8.1.2.tgz#b90315149b062d8e7fccaadc01c80d8e32afaa0f" + integrity sha1-uQMVFJsGLY5/zKrcAcgNjjKvqg8= + dependencies: + "@fluentui/dom-utilities" "^2.1.2" + "@fluentui/merge-styles" "^8.1.2" + "@fluentui/set-version" "^8.1.2" + tslib "^2.1.0" + "@microsoft/load-themed-styles@^1.10.26": version "1.10.55" resolved "https://registry.yarnpkg.com/@microsoft/load-themed-styles/-/load-themed-styles-1.10.55.tgz#f48b0112db8f409dc7cc37674587be59d3992ec4" @@ -373,11 +512,6 @@ resolved "https://registry.yarnpkg.com/@ngrx/store/-/store-8.0.1.tgz#5391498d50978ff1bfdbf4e5b04cb647677a5168" integrity sha512-B6HY8TCFZ4+bUfJAJatF42+F33Qboo7zKc+gxTi6eEioKvNqWkb22K4De5HV2j/l/blXvMOPMSO1Rf/sGqID0w== -"@ngtools/json-schema@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922" - integrity sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI= - "@ngtools/webpack@8.0.3": version "8.0.3" resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-8.0.3.tgz#a54cfae0c0d3e64582a148368c475cbbc1ef2137" @@ -529,6 +663,11 @@ resolved "https://registry.npmjs.org/@types/css-to-style/-/css-to-style-1.2.0.tgz#42fdb8ec8aff4ed3a006e6870eb98f18106de16e" integrity sha512-dAp6ZjAA76WrPuqMuKuacMARvh8K6HYipvvmiS/5aJKxH54fkX/3xoiq08DZYdHpM9RXYnyj7zanROfWSJHYuA== +"@types/estree@*": + version "0.0.48" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" + integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== + "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" @@ -575,11 +714,6 @@ resolved "https://registry.npmjs.org/@types/node/-/node-10.12.9.tgz#a07bfa74331471e1dc22a47eb72026843f7b95c8" integrity sha512-eajkMXG812/w3w4a1OcBlaTwsFPO5F7fJ/amy+tieQxEMWBlbV1JGSjkFM+zkHNf81Cad+dfIRA+IBkvmvdAeA== -"@types/node@^12.0.8": - version "12.0.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8" - integrity sha512-b8bbUOTwzIY3V5vDTY1fIJ+ePKDUBqt2hC2woVGotdQQhG/2Sh62HOKHrT7ab+VerXAcPyAiTEipPu/FsreUtg== - "@types/node@^6.0.46": version "6.14.2" resolved "https://registry.npmjs.org/@types/node/-/node-6.14.2.tgz#40b3dbb1221c7d66802cbcc32fe3b85e54569c77" @@ -654,69 +788,11 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@uifabric/foundation@^7.5.1": - version "7.7.22" - resolved "https://registry.yarnpkg.com/@uifabric/foundation/-/foundation-7.7.22.tgz#acf0d8f3766da83c21977f35216eb9aa6872cef1" - integrity sha512-vTWhNT0wz0VB5DagSCPWQ+7d8Yv7AYOGsvOgPzS6FzA3pxSLX6xmN00ica1gCCZBz4xZn4Yw7YjcyF8bDARqSw== - dependencies: - "@uifabric/merge-styles" "^7.14.1" - "@uifabric/set-version" "^7.0.13" - "@uifabric/styling" "^7.12.15" - "@uifabric/utilities" "^7.20.3" - tslib "^1.10.0" - -"@uifabric/icons@^7.3.0": - version "7.3.48" - resolved "https://registry.yarnpkg.com/@uifabric/icons/-/icons-7.3.48.tgz#c1c0ddb700eac7ed20d4d766fa6df880ed8a7eb2" - integrity sha512-DUhRluQrYAvvyElr5F/Gzkscl+gArgeEtLVJsjqXAsop8SAvJCEVCnSxVEZVDOOlsytEVVPpxiHGkaDow+26fg== - dependencies: - "@uifabric/set-version" "^7.0.13" - "@uifabric/styling" "^7.12.15" - tslib "^1.10.0" - -"@uifabric/merge-styles@^7.14.1", "@uifabric/merge-styles@^7.8.1": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@uifabric/merge-styles/-/merge-styles-7.14.1.tgz#6e375b72909294b9e725dd19b8f7e3c76fe9bfe1" - integrity sha512-nKkk0o9XyVh8HL174ZSDqw3IUnN2qb+kO73vg/rwioKPEQyuPGoEfij8jrb+CGpcCGnMYi53IeB1tm8ySlNatg== - dependencies: - "@uifabric/set-version" "^7.0.13" - tslib "^1.10.0" - -"@uifabric/react-hooks@^7.0.1": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@uifabric/react-hooks/-/react-hooks-7.4.5.tgz#7f6424a62d357c370f5b7c294c1755bc9239f3d5" - integrity sha512-OLEBII+7x4rlTWjQ6hvMWS+CuWRJgvEfCsUcFMu5D5teXTr0bZQThyW8oVvkqKsNmF2JdwwqT6dSwhwgarlFzA== - dependencies: - "@uifabric/set-version" "^7.0.13" - "@uifabric/utilities" "^7.20.3" - tslib "^1.10.0" - -"@uifabric/set-version@^7.0.13", "@uifabric/set-version@^7.0.2": - version "7.0.13" - resolved "https://registry.yarnpkg.com/@uifabric/set-version/-/set-version-7.0.13.tgz#7dcf017bb57fa1ebd3a63dc518014611507a42e4" - integrity sha512-SRsYaacvNykS9lRwKNJgrJuhPV4ytblthFNg0+Wi6+zvIf/w50k/nBlmXVetV5U9dAuX4njSkd+/3iOpgevkyw== - dependencies: - tslib "^1.10.0" - -"@uifabric/styling@^7.10.0", "@uifabric/styling@^7.12.15": - version "7.12.15" - resolved "https://registry.yarnpkg.com/@uifabric/styling/-/styling-7.12.15.tgz#599fdc0fde0b3c8af221dc2fd68052a41c42275f" - integrity sha512-mp/nRyE5Ig6a8BPEkXy/F8ckeQptQCm1SOQDPB1VT1PlknHoOXqqTVn2e1e2DGpWcpFIw4dbodqym3rgpUqkjA== - dependencies: - "@microsoft/load-themed-styles" "^1.10.26" - "@uifabric/merge-styles" "^7.14.1" - "@uifabric/set-version" "^7.0.13" - "@uifabric/utilities" "^7.20.3" - tslib "^1.10.0" - -"@uifabric/utilities@^7.11.1", "@uifabric/utilities@^7.20.3": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@uifabric/utilities/-/utilities-7.20.3.tgz#b2a784ad1fd8f054429fda8880a28e5932e75c1e" - integrity sha512-Amg+qdnNKx0yxjoEFHanM2jTCYfCZAlHPDHcS+BCiSwzeQrEPhlOrtZVPJtagNVhXLFiC09uDsmE/BF6dHb+ww== +"@uifabric/example-data@^7.1.5": + version "7.1.6" + resolved "https://registry.npmjs.org/@uifabric/example-data/-/example-data-7.1.6.tgz#f8d01c03dd7307f8c73443575745f47b2fe2b749" + integrity sha512-2YHj41pPahCIND99bbib1oydrHtRzh0BZuukJO4JHrE50YZfU8j4QrXkQhnDbXgI6qQfPFiPo/DyjqEHPdzFCg== dependencies: - "@uifabric/merge-styles" "^7.14.1" - "@uifabric/set-version" "^7.0.13" - prop-types "^15.7.2" tslib "^1.10.0" "@webassemblyjs/ast@1.8.5": @@ -914,11 +990,16 @@ acorn-dynamic-import@^4.0.0: resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== -acorn@^6.0.5, acorn@^6.1.1: +acorn@^6.0.5: version "6.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== +acorn@^7.1.0: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + adm-zip@^0.4.9: version "0.4.13" resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" @@ -990,6 +1071,16 @@ ajv@^6.1.0, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.10.2: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -2140,11 +2231,21 @@ commander@^2.11.0, commander@^2.19.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== -commander@^2.12.0, commander@^2.12.1: +commander@^2.12.1: version "2.19.0" resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -3274,6 +3375,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-json-stable-stringify@2.0.0, fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -5114,7 +5220,7 @@ loglevel@^1.6.1: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -5577,18 +5683,18 @@ next-tick@1: resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -ng-packagr@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-5.3.0.tgz#92434ca05ecbd1e01fe961a66c8a9a66b095f6fa" - integrity sha512-i+964lzZC7VVzatDCLDZndiXTog1XGozY7K1Bs78+uBF8O1YHNQP9wB9C5fR4uEaSKVhCWEBYekoS69flCugMA== +ng-packagr@5.7.1: + version "5.7.1" + resolved "https://registry.npmjs.org/ng-packagr/-/ng-packagr-5.7.1.tgz#8e082e38e7b6089296bf0491f2e5b29122f8e08d" + integrity sha512-NDAUcMtLyZnF3bP6JtC3ANpIQRclRDPilF7C0DsjQuIz1q0V3mT7f1PwV0jnRWy8iRpSZmJZr6AGl736gloHtQ== dependencies: - "@ngtools/json-schema" "^1.1.0" + ajv "^6.10.2" autoprefixer "^9.6.0" browserslist "^4.0.0" chalk "^2.3.1" chokidar "^3.0.0" clean-css "^4.1.11" - commander "^2.12.0" + commander "^3.0.0" fs-extra "^8.0.0" glob "^7.1.2" injection-js "^2.2.1" @@ -5598,8 +5704,8 @@ ng-packagr@^5.3.0: postcss "^7.0.0" postcss-url "^8.0.0" read-pkg-up "^5.0.0" - rimraf "^2.6.1" - rollup "^1.12.1" + rimraf "^3.0.0" + rollup "1.25.2" rollup-plugin-commonjs "^10.0.0" rollup-plugin-json "^4.0.0" rollup-plugin-node-resolve "^5.0.0" @@ -5607,7 +5713,7 @@ ng-packagr@^5.3.0: rxjs "^6.0.0" sass "^1.17.3" stylus "^0.54.5" - terser "^4.0.0" + terser "^4.1.2" update-notifier "^3.0.0" ngrx-store-freeze@^0.2.4: @@ -5933,22 +6039,6 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -office-ui-fabric-react@7.82.2: - version "7.82.2" - resolved "https://registry.yarnpkg.com/office-ui-fabric-react/-/office-ui-fabric-react-7.82.2.tgz#a72349abc4b839caae1a7a8e57020650d9381434" - integrity sha512-c0AFNidocQHWjm/xwAzJk5DbmVKEUbgj38G+/51SpOrzzhaVkkSQqMhrDvrqpzqAvfbZEgTYXz/7YtOWounm9Q== - dependencies: - "@microsoft/load-themed-styles" "^1.10.26" - "@uifabric/foundation" "^7.5.1" - "@uifabric/icons" "^7.3.0" - "@uifabric/merge-styles" "^7.8.1" - "@uifabric/react-hooks" "^7.0.1" - "@uifabric/set-version" "^7.0.2" - "@uifabric/styling" "^7.10.0" - "@uifabric/utilities" "^7.11.1" - prop-types "^15.5.10" - tslib "^1.7.1" - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -6501,15 +6591,6 @@ promise@~7.0.1: dependencies: asap "~2.0.3" -prop-types@^15.5.10, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - prop-types@^15.6.2: version "15.6.2" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" @@ -6753,11 +6834,6 @@ react-dom@~16.8.6: prop-types "^15.6.2" scheduler "^0.13.6" -react-is@^16.8.1: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== - react@~16.8.6: version "16.8.6" resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" @@ -7131,6 +7207,13 @@ rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimra dependencies: glob "^7.1.3" +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -7191,14 +7274,14 @@ rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.7.0, rollup-pluginutils@^2.8.0: dependencies: estree-walker "^0.6.1" -rollup@^1.12.1: - version "1.15.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.15.6.tgz#caf0ed28d2d78e3a59c1398e5a3695fb600a0ef0" - integrity sha512-s3Vn3QJQ5YVFfIG4nXoG9VdL1I37IZsft+4ZyeBhxE0df1kCFz9e+4bEAbR4mKH3pvBO9e9xjdxWPhhIp0r9ow== +rollup@1.25.2: + version "1.25.2" + resolved "https://registry.npmjs.org/rollup/-/rollup-1.25.2.tgz#739f508bd8f7ece52bb6c1fcda83466af82b7f6d" + integrity sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg== dependencies: - "@types/estree" "0.0.39" - "@types/node" "^12.0.8" - acorn "^6.1.1" + "@types/estree" "*" + "@types/node" "*" + acorn "^7.1.0" run-async@^2.2.0: version "2.3.0" @@ -7731,6 +7814,14 @@ source-map-support@~0.4.0: dependencies: source-map "^0.5.6" +source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -8175,6 +8266,15 @@ terser@^4.0.0: source-map "~0.6.1" source-map-support "~0.5.10" +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + through2@^2.0.0, through2@^2.0.1: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -8332,6 +8432,11 @@ tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +tslib@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + tslint@~5.11.0: version "5.11.0" resolved "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed"