├── .DS_Store ├── .eslintrc.json ├── Gantt View Component.pcfproj ├── GanttView ├── .DS_Store ├── ControlManifest.Input.xml ├── GanttViewControl.tsx ├── css │ └── GanttView.css ├── generated │ └── ManifestTypes.d.ts ├── index.ts └── strings │ └── GanttView.1033.resx ├── LICENSE ├── PCF Control Sandbox.html ├── README.md ├── TestData.csv ├── TestData.json ├── obj ├── .DS_Store ├── Debug │ ├── Gantt View Component.pcfproj.CoreCompileInputs.cache │ └── Gantt View Component.pcfproj.FileListAbsolute.txt ├── Gantt View Component.pcfproj.nuget.dgspec.json ├── Gantt View Component.pcfproj.nuget.g.props ├── Gantt View Component.pcfproj.nuget.g.targets ├── PowerAppsTools_tppd │ ├── .gitignore │ ├── PowerAppsTools_tppd.cdsproj │ └── src │ │ └── Other │ │ ├── Customizations.xml │ │ ├── Relationships.xml │ │ └── Solution.xml ├── build.log ├── project.assets.json └── project.nuget.cache ├── out └── .DS_Store ├── package.json ├── pcfconfig.json ├── readmeextra ├── Screenshot-collapsed.png ├── Screenshot-expanded.png ├── bmc-button.png └── bmc_qr.png ├── tsconfig.json └── ~ └── Library └── Microsoft └── PowerAppsCli └── usersettings.json /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/.DS_Store -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true 5 | }, 6 | "extends": "plugin:react/recommended", 7 | "parser": "@typescript-eslint/parser", 8 | "parserOptions": { 9 | "ecmaFeatures": { 10 | "jsx": true 11 | }, 12 | "ecmaVersion": "latest", 13 | "sourceType": "module" 14 | }, 15 | "plugins": [ 16 | "react", 17 | "@typescript-eslint" 18 | ], 19 | "rules": { 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Gantt View Component.pcfproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps 5 | 6 | 7 | 8 | 9 | 10 | 11 | Gantt View Component 12 | 58665368-521b-487d-9957-e9cce7c81509 13 | $(MSBuildThisFileDirectory)out\controls 14 | 15 | 16 | 17 | v4.6.2 18 | 19 | net462 20 | PackageReference 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /GanttView/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/GanttView/.DS_Store -------------------------------------------------------------------------------- /GanttView/ControlManifest.Input.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 48 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /GanttView/GanttViewControl.tsx: -------------------------------------------------------------------------------- 1 | //import { Position } from '@fluentui/react'; 2 | import * as React from 'react'; 3 | 4 | export interface IGanttViewControlProps { 5 | name?: string; 6 | ganttStartDate: Date; 7 | ganttEndDate: Date; 8 | currentDate: Date; 9 | expandDetails: boolean; 10 | data: Array; 11 | } 12 | 13 | type GanttRow = { 14 | id: string; 15 | name: string; 16 | assigned: string | null; 17 | startDate: Date | null; 18 | endDate: Date | null; 19 | rowType: string | null; 20 | progress: number | null; 21 | parentId: string; 22 | level: number | null; 23 | milestones: Array; 24 | } 25 | 26 | const COLUMN_DAYS = 7; 27 | const DAY_TIME_RATIO = 1/1000/60/60/24; 28 | const TIME_COLUMN_RATIO = DAY_TIME_RATIO/COLUMN_DAYS; 29 | const COLUMN_WIDTH = 30; 30 | 31 | export class GanttViewControl extends React.Component { 32 | /* 33 | initiateState(): GanttViewControlState {return ({n: 0})}; 34 | state: GanttViewControlState = this.initiateState(); 35 | */ 36 | constructor(props: IGanttViewControlProps) { 37 | super(props); 38 | // Don't call this.setState() here! 39 | //this.state = { counter: 0 }; 40 | } 41 | 42 | /** 43 | * Takes the parameters and orders by parent child it and adds a level 44 | * @returns an ordered list of gantt rows 45 | */ 46 | orderGanttRows = () : Array => { 47 | const stack: Array = []; 48 | const result: Array = []; 49 | this.props.data.filter(row => {return row.name != "val" && row.parentId == ""}).reverse().forEach(row => { 50 | row.level = 0; 51 | stack.push(row); 52 | }); 53 | while (stack.length > 0){ 54 | const currentRow: GanttRow = stack.pop() || {id:'', name:'', startDate: null, endDate: null, assigned:null, rowType: null, progress: null, parentId: "", level: null, milestones: []}; 55 | result.push(currentRow); 56 | this.props.data.filter(row => {return row.name != "val" && row.parentId == currentRow.id}).reverse().forEach(row => { 57 | if(row.rowType == "milestone"){ 58 | currentRow.milestones.push(row); 59 | }else{ 60 | row.level = (currentRow.level || 0)+1; 61 | stack.push(row); 62 | } 63 | }); 64 | } 65 | return result; 66 | } 67 | 68 | calculateNewGanttEndDate = (): Date =>{ 69 | const weeks = Math.ceil((Number(this.props.ganttEndDate) - Number(this.props.ganttStartDate))*TIME_COLUMN_RATIO); 70 | return new Date(Number(this.props.ganttStartDate) + weeks/TIME_COLUMN_RATIO); 71 | } 72 | 73 | calculateStartX = (date: Date | null) =>{ 74 | const newGanttEndDate:Date = this.calculateNewGanttEndDate(); 75 | if(!date || date>newGanttEndDate){ 76 | return -1; 77 | } 78 | if(date<=this.props.ganttStartDate){ 79 | return 0; 80 | } 81 | return Math.ceil((Number(date) - Number(this.props.ganttStartDate))*TIME_COLUMN_RATIO*COLUMN_WIDTH); 82 | } 83 | 84 | calculateEndWidth = (startDate: Date | null, endDate: Date | null ) =>{ 85 | const newGanttEndDate:Date = this.calculateNewGanttEndDate(); 86 | console.log('startDate', startDate, newGanttEndDate, !startDate || startDate > newGanttEndDate) 87 | console.log('endDate', endDate, this.props.ganttStartDate, !endDate || endDate < this.props.ganttStartDate) 88 | if(!startDate || !endDate || startDate > newGanttEndDate || endDate < this.props.ganttStartDate){ 89 | console.log('no start'); 90 | return -1; 91 | } 92 | if(startDate < this.props.ganttStartDate){ 93 | startDate = this.props.ganttStartDate; 94 | } 95 | if(endDate > newGanttEndDate){ 96 | endDate = newGanttEndDate; 97 | } 98 | return Math.ceil((Number(endDate) - Number(startDate))*TIME_COLUMN_RATIO*COLUMN_WIDTH); 99 | //return 10; 100 | } 101 | 102 | /** 103 | * Creates the Gantt Table element. 104 | * @returns teh table elements with the gantt table in it. 105 | */ 106 | GanttTable = ()=>{ 107 | const noColumns = Math.ceil((Number(this.props.ganttEndDate) - Number(this.props.ganttStartDate))*TIME_COLUMN_RATIO); 108 | const dateArray = Array.from(Array(noColumns).keys()); 109 | const currentDateX = this.props.currentDate<=this.props.ganttStartDate || this.props.currentDate > this.props.ganttEndDate ? -1 : this.calculateStartX(this.props.currentDate);//Math.ceil((Number(this.props.currentDate) - Number(this.props.ganttStartDate))*TIME_COLUMN_RATIO*COLUMN_WIDTH); 110 | return ( 111 | 112 | 113 | 114 | {this.props.expandDetails && ()} 115 | 116 | {this.props.expandDetails && ()} 117 | {this.props.expandDetails && ()} 118 | {this.props.expandDetails && ()} 119 | {dateArray.map((count, i)=>{ 120 | return( 121 | 122 | ) 123 | })} 124 | 125 | 126 | 127 | {this.orderGanttRows().map((row, i)=>{ 128 | console.log('id', row.id); 129 | const rowLeftX = this.calculateStartX(row.startDate); //Math.ceil((Number(row.startDate) - Number(this.props.ganttStartDate))*TIME_COLUMN_RATIO*COLUMN_WIDTH); 130 | const rowWidth = this.calculateEndWidth(row.startDate, row.endDate);//Math.ceil((Number(row.endDate) - Number(row.startDate))*TIME_COLUMN_RATIO*COLUMN_WIDTH); 131 | const rowProgressWidth = rowWidth * (row.progress || 0)/100; 132 | console.log('rowLeftX', row.id, row.startDate, rowLeftX, rowWidth,currentDateX != -1 && rowWidth != -1); 133 | return ( 134 | 135 | {this.props.expandDetails && ()} 136 | 137 | {this.props.expandDetails && ()} 138 | {this.props.expandDetails && ()} 139 | {this.props.expandDetails && ()} 140 | 141 | {dateArray.map((count, i)=>{ 142 | if(i==0){ 143 | return( 144 | 170 | ) 171 | }else{ 172 | return( 173 | 174 | ) 175 | } 176 | })} 177 | 178 | ) 179 | })} 180 | 181 |
IDNameAssingedStart DateEnd Date{i+1}
{row.id}{row.name}{row.assigned}{row.startDate ? row.startDate.toLocaleDateString():''}{row.endDate ? row.endDate.toLocaleDateString(): ''} 145 | {rowLeftX != -1 && rowWidth != -1 ? 146 |
147 |
148 |
149 |
150 |
: null } 151 | {row.milestones.map((milestone, mi)=>{ 152 | const milestoneRowLeftX = this.calculateStartX(milestone.startDate);//Math.ceil((Number(milestone.startDate) - Number(this.props.ganttStartDate))*TIME_COLUMN_RATIO*COLUMN_WIDTH); 153 | const milestoneRowWidth = this.calculateEndWidth(milestone.startDate, milestone.endDate);//Math.ceil((Number(milestone.endDate) - Number(milestone.startDate))*TIME_COLUMN_RATIO*COLUMN_WIDTH); 154 | 155 | if(milestoneRowLeftX == -1 || rowWidth == -1){ 156 | return (
); 157 | } 158 | 159 | return( 160 |
161 |
162 |
163 |
164 |
165 | ) 166 | })} 167 | 168 | {currentDateX != -1 ?
: null } 169 |
182 | ) 183 | } 184 | 185 | /** 186 | * Renders the the Gantt View element 187 | * @returns react node with the table element 188 | */ 189 | public render(): React.ReactNode { 190 | console.log('children', this.props); 191 | return ( 192 |
193 | {this.GanttTable()} 194 |
); 195 | } 196 | } 197 | -------------------------------------------------------------------------------- /GanttView/css/GanttView.css: -------------------------------------------------------------------------------- 1 | .gantt-view-table { 2 | border-collapse: collapse; 3 | margin: 25px 0; 4 | font-size: 0.9em; 5 | font-family: sans-serif; 6 | min-width: 100%; 7 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); 8 | } 9 | 10 | .gantt-view-table thead tr { 11 | background-color: #009879; 12 | color: #ffffff; 13 | } 14 | .gantt-view-table thead th { 15 | text-align: center; 16 | } 17 | .gantt-view-table thead th:first-child { 18 | text-align: left; 19 | } 20 | 21 | .gantt-view-table th, 22 | .gantt-view-table td { 23 | padding: 12px 15px; 24 | } 25 | 26 | .gantt-view-table tbody tr { 27 | border-bottom: 1px solid #dddddd; 28 | } 29 | .gantt-view-table tbody td { 30 | border-right: 1px solid #dddddd; 31 | } 32 | .gantt-view-table tbody tr:nth-of-type(even) { 33 | background-color: #f3f3f3; 34 | } 35 | 36 | .gantt-view-table tbody tr:last-of-type { 37 | border-bottom: 2px solid #009879; 38 | } 39 | 40 | .gantt-view-table tbody tr.active-row { 41 | font-weight: bold; 42 | color: #009879; 43 | } 44 | 45 | .gantt-view-table td{ 46 | white-space: nowrap; 47 | text-align: left; 48 | } 49 | 50 | .gantt-view-table .progress-track, .gantt-view-table .progress-bar{ 51 | position:absolute; 52 | top:20%; 53 | height:60%; 54 | } 55 | .gantt-view-table .progress-track{ 56 | background-color: grey; 57 | } 58 | .gantt-view-table .progress-bar{ 59 | background-color: #38c4a8; 60 | } 61 | 62 | .gantt-view-table td:has(.progress-bar), 63 | .gantt-view-table td:has(.milestone_ends), 64 | .gantt-view-table td:has(.currentdate){ 65 | position:relative; 66 | padding:0; 67 | } 68 | 69 | .gantt-view-table .milestone_ends{ 70 | top:50%; 71 | transform:translate(-40%, -50%) rotate(45deg); 72 | width:15px; 73 | height:15px; 74 | position:absolute; 75 | background-color:black; 76 | } 77 | 78 | .gantt-view-table .milestone_bar{ 79 | top: 50%; 80 | transform:translatey(-50%); 81 | height:5px; 82 | position:absolute; 83 | background-color:black; 84 | } 85 | 86 | .gantt-view-table .currentdate{ 87 | position:absolute; 88 | top:0px; 89 | height:100%; 90 | width:2px; 91 | background-color:rgb(162, 7, 7); 92 | } -------------------------------------------------------------------------------- /GanttView/generated/ManifestTypes.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | *This is auto generated from the ControlManifest.Input.xml file 3 | */ 4 | 5 | // Define IInputs and IOutputs Type. They should match with ControlManifest. 6 | export interface IInputs { 7 | ganttStartDate: ComponentFramework.PropertyTypes.DateTimeProperty; 8 | ganttEndDate: ComponentFramework.PropertyTypes.DateTimeProperty; 9 | currentDate: ComponentFramework.PropertyTypes.DateTimeProperty; 10 | expandDetails: ComponentFramework.PropertyTypes.TwoOptionsProperty; 11 | records: ComponentFramework.PropertyTypes.DataSet; 12 | } 13 | export interface IOutputs { 14 | } 15 | -------------------------------------------------------------------------------- /GanttView/index.ts: -------------------------------------------------------------------------------- 1 | import { IInputs, IOutputs } from "./generated/ManifestTypes"; 2 | import { GanttViewControl, IGanttViewControlProps } from "./GanttViewControl"; 3 | import * as React from "react"; 4 | 5 | 6 | 7 | export class GanttView implements ComponentFramework.ReactControl { 8 | private theComponent: ComponentFramework.ReactControl; 9 | private notifyOutputChanged: () => void; 10 | 11 | /** 12 | * Empty constructor. 13 | 14 | constructor() { } 15 | */ 16 | /** 17 | * Used to initialize the control instance. Controls can kick off remote server calls and other initialization actions here. 18 | * Data-set values are not initialized here, use updateView. 19 | * @param context The entire property bag available to control via Context Object; It contains values as set up by the customizer mapped to property names defined in the manifest, as well as utility functions. 20 | * @param notifyOutputChanged A callback method to alert the framework that the control has new outputs ready to be retrieved asynchronously. 21 | * @param state A piece of data that persists in one session for a single user. Can be set at any point in a controls life cycle by calling 'setControlState' in the Mode interface. 22 | */ 23 | public init( 24 | context: ComponentFramework.Context, 25 | notifyOutputChanged: () => void, 26 | state: ComponentFramework.Dictionary 27 | ): void { 28 | this.notifyOutputChanged = notifyOutputChanged; 29 | } 30 | 31 | /** 32 | * Called when any value in the property bag has changed. This includes field values, data-sets, global values such as container height and width, offline status, control metadata values such as label, visible, etc. 33 | * @param context The entire property bag available to control via Context Object; It contains values as set up by the customizer mapped to names defined in the manifest, as well as utility functions 34 | * @returns ReactElement root react element for the control 35 | */ 36 | public updateView(context: ComponentFramework.Context): React.ReactElement { 37 | var records = context.parameters.records; 38 | console.log('columns', records.columns, context.parameters.records.columns.length); 39 | const props: IGanttViewControlProps = { 40 | name: 'Hello, World!', 41 | ganttStartDate: context.parameters.ganttStartDate.raw || new Date(), 42 | ganttEndDate: context.parameters.ganttEndDate.raw || new Date(), 43 | currentDate: context.parameters.currentDate.raw || new Date(), 44 | expandDetails: context.parameters.expandDetails.raw, 45 | data: records.sortedRecordIds.map((sortedRowID, i) => { 46 | var inputRow = records.records[sortedRowID]; 47 | return { 48 | id: inputRow.getFormattedValue('id'), 49 | name: inputRow.getFormattedValue('name'), 50 | assigned: inputRow.getFormattedValue('assigned'), 51 | startDate: new Date(Date.parse(inputRow.getFormattedValue('startDate'))) || new Date(), 52 | endDate: new Date(Date.parse(inputRow.getFormattedValue('endDate'))) || new Date(), 53 | rowType: inputRow.getFormattedValue('rowType'), 54 | progress: parseFloat(inputRow.getFormattedValue('progress')), 55 | parentId: inputRow.getFormattedValue('parentId') ? inputRow.getFormattedValue('parentId') : "", 56 | level: null, 57 | milestones:[], 58 | }; 59 | }) 60 | }; 61 | 62 | 63 | return React.createElement( 64 | GanttViewControl, props 65 | ); 66 | } 67 | 68 | /** 69 | * It is called by the framework prior to a control receiving new data. 70 | * @returns an object based on nomenclature defined in manifest, expecting object[s] for property marked as “bound” or “output” 71 | */ 72 | public getOutputs(): IOutputs { 73 | return { }; 74 | } 75 | 76 | /** 77 | * Called when the control is to be removed from the DOM tree. Controls should use this call for cleanup. 78 | * i.e. cancelling any pending remote calls, removing listeners, etc. 79 | */ 80 | public destroy(): void { 81 | // Add code to cleanup control if necessary 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /GanttView/strings/GanttView.1033.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | text/microsoft-resx 51 | 52 | 53 | 2.0 54 | 55 | 56 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 57 | 58 | 59 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 60 | 61 | 62 | 63 | Start Date 64 | 65 | 66 | The start date of the view 67 | 68 | 69 | Start Date 70 | 71 | 72 | The end date of the view 73 | 74 | 75 | Current Date 76 | 77 | 78 | Shows a red line for the provided date 79 | 80 | 81 | Expand Details 82 | 83 | 84 | Show all columns or just the name column 85 | 86 | 87 | 88 | ID 89 | 90 | 91 | A unique identifier for the row 92 | 93 | 94 | Name 95 | 96 | 97 | The name of the row 98 | 99 | 100 | Assigned 101 | 102 | 103 | The Name of the assigned individual or team 104 | 105 | 106 | 107 | Start Date 108 | 109 | 110 | The start date of the task in UTC text format 111 | 112 | 113 | 114 | End Date 115 | 116 | 117 | The end date of the task in UTC text format 118 | 119 | 120 | 121 | Type 122 | 123 | 124 | Row Type of type 'task' or 'milestone' 125 | 126 | 127 | 128 | Progress 129 | 130 | 131 | the progress of the task with avalue between 0 and 100 132 | 133 | 134 | 135 | ParentID 136 | 137 | 138 | For hierarchical tasks and assigning milestones assign through the parent id 139 | 140 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 PowerPlatformTools 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PCF Control Sandbox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | PCF Control Sandbox 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Canvas App Gantt Chart 2 | When discussiong programme or project management one of the most common visualisations is a gantt chart. This control takes a list of herarchical tasks and milestones. 3 | 4 | ## Features 5 | ### Timeline 6 | The timeline display items by week. The header shows the number of weeks from the start of the gantt chart. 7 | 8 | ### Current Date Line 9 | We will be developing this site with additional tools. If you have any suggestions please get in touch. 10 | 11 | ### Expanding 12 | One of the control perameters allows for the table detail on the right hand side be expanded and collapsed. 13 | 14 | ## Technologies 15 | - NodeJS 16 | - React 17 | - Power Platform CLI 18 | 19 | ## Screenshots 20 | 21 | ## Develop 22 | 1. Clone the repository 23 | 2. Make changes 24 | 3. Run build and open in browser 25 | 26 | npm run start 27 | 28 | ## Build and Deploy 29 | 1. Clone the repository 30 | 2. Run build 31 | 32 | npm run build 33 | 34 | 3. Ensure auth profile has been created and selected 35 | 4. publish the component solution to environment 36 | 37 | pac pcf push --publisher-prefix alex 38 | 39 | ## Run 40 | Include the control following the [Microsoft Documentation](https://learn.microsoft.com/en-us/power-apps/developer/component-framework/component-framework-for-canvas-apps#add-components-to-a-canvas-app) 41 | 42 | Note: include dates as UTC Text format in the items. 43 | Note: include the column mapping in the advanced pannel of the control. 44 | 45 | ## Donate 46 | Please consider donating to help us develop more great content at [Buy Me a Coffee](https://www.buymeacoffee.com/alexbakerwong). 47 | 48 | [Buy Me a Coffee QR Code](https://www.buymeacoffee.com/alexbakerwong) 49 | 50 | [Buy Me a Coffee Logo](https://www.buymeacoffee.com/alexbakerwong) 51 | 52 | -------------------------------------------------------------------------------- /TestData.csv: -------------------------------------------------------------------------------- 1 | ID,Name,Assigned,Start Date,End Date,rowType,Parent ID,Progress,Aditional 2 | 1,Gantt Custom Component,Alex,2023-01-02T00:00:00.000Z,2023-02-11T00:00:00.000Z,task,,80,test 3 | 2,Design,Alex,2023-01-02T00:00:00.000Z,2023-01-14T00:00:00.000Z,task,1,100,test 4 | 3,Develop,Alex,2023-01-16T00:00:00.000Z,2023-01-28T00:00:00.000Z,task,1,90,test 5 | 4,Test,Alex,2023-01-30T00:00:00.000Z,2023-02-11T00:00:00.000Z,task,1,0,test 6 | 5,Release,Alex,2023-02-14T00:00:00.000Z,2023-02-14T00:00:00.000Z,milestone,1,0,test 7 | 6,Power Apps Tools,Alex,2023-01-02T00:00:00.000Z,2023-05-08T00:00:00.000Z,task,,80,test 8 | 7,Base,Alex,2023-01-02T00:00:00.000Z,2023-02-11T00:00:00.000Z,task,6,100,test 9 | 8,Design,Alex,2023-01-02T00:00:00.000Z,2023-01-14T00:00:00.000Z,task,7,100,test 10 | 9,Develop,Alex,2023-01-16T00:00:00.000Z,2023-01-28T00:00:00.000Z,task,7,100,test 11 | 10,Test,Alex,2023-01-30T00:00:00.000Z,2023-02-11T00:00:00.000Z,task,7,100,test 12 | 11,Release,Alex,2023-02-14T00:00:00.000Z,2023-02-14T00:00:00.000Z,milestone,7,100,test 13 | 12,Feature 1,Alex,2023-02-14T00:00:00.000Z,2023-03-26T00:00:00.000Z,task,6,90,test 14 | 13,Design,Alex,2023-02-14T00:00:00.000Z,2023-02-26T00:00:00.000Z,task,12,100,test 15 | 14,Develop,Alex,2023-02-28T00:00:00.000Z,2023-03-12T00:00:00.000Z,task,12,90,test 16 | 15,Test,Alex,2023-03-14T00:00:00.000Z,2023-03-26T00:00:00.000Z,task,12,20,test 17 | 16,Release,Alex,2023-03-29T00:00:00.000Z,2023-03-29T00:00:00.000Z,milestone,12,0,test 18 | 17,Feature 2,Alex,2023-03-29T00:00:00.000Z,2023-05-08T00:00:00.000Z,task,6,0,test 19 | 18,Design,Alex,2023-03-29T00:00:00.000Z,2023-04-10T00:00:00.000Z,task,17,0,test 20 | 19,Develop,Alex,2023-04-12T00:00:00.000Z,2023-04-24T00:00:00.000Z,task,17,0,test 21 | 20,Test,Alex,2023-04-26T00:00:00.000Z,2023-05-08T00:00:00.000Z,task,17,0,test 22 | 21,Release,Alex,2023-05-11T00:00:00.000Z,2023-05-11T00:00:00.000Z,milestone,17,0,test -------------------------------------------------------------------------------- /TestData.json: -------------------------------------------------------------------------------- 1 | {ID:1,Name:"Gantt Custom Component",Assigned:"Alex",StartDate:"2023-01-02T00:00:00.000Z",EndDate:"2023-02-11T00:00:00.000Z",rowType:"task",Progress:80}, 2 | {ID:2,Name:"Design",Assigned:"Alex",StartDate:"2023-01-02T00:00:00.000Z",EndDate:"2023-01-14T00:00:00.000Z",rowType:"task",ParentID:1,Progress:100}, 3 | {ID:3,Name:"Develop",Assigned:"Alex",StartDate:"2023-01-16T00:00:00.000Z",EndDate:"2023-01-28T00:00:00.000Z",rowType:"task",ParentID:1,Progress:90}, 4 | {ID:4,Name:"Test",Assigned:"Alex",StartDate:"2023-01-30T00:00:00.000Z",EndDate:"2023-02-11T00:00:00.000Z",rowType:"task",ParentID:1,Progress:0}, 5 | {ID:5,Name:"Release",Assigned:"Alex",StartDate:"2023-02-14T00:00:00.000Z",EndDate:"2023-02-14T00:00:00.000Z",rowType:"milestone",ParentID:1,Progress:0}, 6 | {ID:6,Name:"Power Apps Tools",Assigned:"Alex",StartDate:"2023-01-02T00:00:00.000Z",EndDate:"2023-05-08T00:00:00.000Z",rowType:"task",Progress:80}, 7 | {ID:7,Name:"Base",Assigned:"Alex",StartDate:"2023-01-02T00:00:00.000Z",EndDate:"2023-02-11T00:00:00.000Z",rowType:"task",ParentID:6,Progress:100}, 8 | {ID:8,Name:"Design",Assigned:"Alex",StartDate:"2023-01-02T00:00:00.000Z",EndDate:"2023-01-14T00:00:00.000Z",rowType:"task",ParentID:7,Progress:100}, 9 | {ID:9,Name:"Develop",Assigned:"Alex",StartDate:"2023-01-16T00:00:00.000Z",EndDate:"2023-01-28T00:00:00.000Z",rowType:"task",ParentID:7,Progress:100}, 10 | {ID:10,Name:"Test",Assigned:"Alex",StartDate:"2023-01-30T00:00:00.000Z",EndDate:"2023-02-11T00:00:00.000Z",rowType:"task",ParentID:7,Progress:100}, 11 | {ID:11,Name:"Release",Assigned:"Alex",StartDate:"2023-02-14T00:00:00.000Z",EndDate:"2023-02-14T00:00:00.000Z",rowType:"milestone",ParentID:7,Progress:100}, 12 | {ID:12,Name:"Feature 1",Assigned:"Alex",StartDate:"2023-02-14T00:00:00.000Z",EndDate:"2023-03-26T00:00:00.000Z",rowType:"task",ParentID:6,Progress:90}, 13 | {ID:13,Name:"Design",Assigned:"Alex",StartDate:"2023-02-14T00:00:00.000Z",EndDate:"2023-02-26T00:00:00.000Z",rowType:"task",ParentID:12,Progress:100}, 14 | {ID:14,Name:"Develop",Assigned:"Alex",StartDate:"2023-02-28T00:00:00.000Z",EndDate:"2023-03-12T00:00:00.000Z",rowType:"task",ParentID:12,Progress:90}, 15 | {ID:15,Name:"Test",Assigned:"Alex",StartDate:"2023-03-14T00:00:00.000Z",EndDate:"2023-03-26T00:00:00.000Z",rowType:"task",ParentID:12,Progress:20}, 16 | {ID:16,Name:"Release",Assigned:"Alex",StartDate:"2023-03-29T00:00:00.000Z",EndDate:"2023-03-29T00:00:00.000Z",rowType:"milestone",ParentID:12,Progress:0}, 17 | {ID:17,Name:"Feature 2",Assigned:"Alex",StartDate:"2023-03-29T00:00:00.000Z",EndDate:"2023-05-08T00:00:00.000Z",rowType:"task",ParentID:6,Progress:0}, 18 | {ID:18,Name:"Design",Assigned:"Alex",StartDate:"2023-03-29T00:00:00.000Z",EndDate:"2023-04-10T00:00:00.000Z",rowType:"task",ParentID:17,Progress:0}, 19 | {ID:19,Name:"Develop",Assigned:"Alex",StartDate:"2023-04-12T00:00:00.000Z",EndDate:"2023-04-24T00:00:00.000Z",rowType:"task",ParentID:17,Progress:0}, 20 | {ID:20,Name:"Test",Assigned:"Alex",StartDate:"2023-04-26T00:00:00.000Z",EndDate:"2023-05-08T00:00:00.000Z",rowType:"task",ParentID:17,Progress:0}, 21 | {ID:21,Name:"Release",Assigned:"Alex",StartDate:"2023-05-11T00:00:00.000Z",EndDate:"2023-05-11T00:00:00.000Z",rowType:"milestone",ParentID:17,Progress:0}, -------------------------------------------------------------------------------- /obj/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/obj/.DS_Store -------------------------------------------------------------------------------- /obj/Debug/Gantt View Component.pcfproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 351b2dbda91bd88641d50ccc624422bb3eed6a35 2 | -------------------------------------------------------------------------------- /obj/Debug/Gantt View Component.pcfproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | /Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/obj/Debug/Gantt View Component.pcfproj.CoreCompileInputs.cache 2 | -------------------------------------------------------------------------------- /obj/Gantt View Component.pcfproj.nuget.dgspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": 1, 3 | "restore": { 4 | "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/Gantt View Component.pcfproj": {} 5 | }, 6 | "projects": { 7 | "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/Gantt View Component.pcfproj": { 8 | "version": "1.0.0", 9 | "restore": { 10 | "projectUniqueName": "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/Gantt View Component.pcfproj", 11 | "projectName": "Gantt View Component", 12 | "projectPath": "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/Gantt View Component.pcfproj", 13 | "packagesPath": "/Users/alexandrebaker/.nuget/packages/", 14 | "outputPath": "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/obj/", 15 | "projectStyle": "PackageReference", 16 | "configFilePaths": [ 17 | "/Users/alexandrebaker/.nuget/NuGet/NuGet.Config" 18 | ], 19 | "originalTargetFrameworks": [ 20 | "net462" 21 | ], 22 | "sources": { 23 | "https://api.nuget.org/v3/index.json": {} 24 | }, 25 | "frameworks": { 26 | "net462": { 27 | "targetAlias": "net462", 28 | "projectReferences": {} 29 | } 30 | } 31 | }, 32 | "frameworks": { 33 | "net462": { 34 | "targetAlias": "net462", 35 | "dependencies": { 36 | "Microsoft.NETFramework.ReferenceAssemblies": { 37 | "suppressParent": "All", 38 | "target": "Package", 39 | "version": "[1.0.0, )" 40 | }, 41 | "Microsoft.PowerApps.MSBuild.Pcf": { 42 | "target": "Package", 43 | "version": "[1.*, )" 44 | } 45 | } 46 | } 47 | } 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /obj/Gantt View Component.pcfproj.nuget.g.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | True 5 | NuGet 6 | $(MSBuildThisFileDirectory)project.assets.json 7 | /Users/alexandrebaker/.nuget/packages/ 8 | /Users/alexandrebaker/.nuget/packages/ 9 | PackageReference 10 | 6.0.0 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /obj/Gantt View Component.pcfproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /obj/PowerAppsTools_tppd/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # msbuild output directories 4 | /bin 5 | /obj 6 | 7 | # MSBuild Binary and Structured Log 8 | *.binlog 9 | -------------------------------------------------------------------------------- /obj/PowerAppsTools_tppd/PowerAppsTools_tppd.cdsproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps 5 | 6 | 7 | 8 | 9 | 10 | 11 | 8fc27d1e-c55d-4879-8a99-70b6cbcf3d73 12 | v4.6.2 13 | 14 | net462 15 | PackageReference 16 | src 17 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | PreserveNewest 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /obj/PowerAppsTools_tppd/src/Other/Customizations.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 1033 17 | 18 | -------------------------------------------------------------------------------- /obj/PowerAppsTools_tppd/src/Other/Relationships.xml: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /obj/PowerAppsTools_tppd/src/Other/Solution.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ProjectManagementTools_tppd 6 | 7 | 8 | 9 | 10 | 11 | 1.0 12 | 13 | 2 14 | 15 | 16 | ProjectManagementToolsPublisher_tppd 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | tppd 29 | 30 | 90926 31 | 32 | 33 |
34 | 1 35 | 1 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 1 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 |
62 | 2 63 | 1 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 1 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 |
89 |
90 |
91 | 92 | 93 |
94 |
-------------------------------------------------------------------------------- /obj/build.log: -------------------------------------------------------------------------------- 1 |  Determining projects to restore... 2 | All projects are up-to-date for restore. 3 | 4 | > pcf-project@1.0.0 clean 5 | > pcf-scripts clean "--noColor" "--buildMode" "development" "--outDir" "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/out/controls/" "--buildSource" "MSBuild" 6 | 7 | [5:23:41 PM] [clean] Initializing... 8 | [5:23:41 PM] [clean] Cleaning build outputs... 9 | [5:23:41 PM] [clean] Succeeded 10 | Cleaning output directory: bin/Debug/, Intermediate directory: obj/Debug/ and Solution Packager working directory: obj/Debug/ 11 | Removing log file: obj/Debug/SolutionPackager.log and generated solution package: bin/Debug/PowerAppsTools_tppd.zip 12 | 13 | > pcf-project@1.0.0 build 14 | > pcf-scripts build "--noColor" "--buildMode" "development" "--outDir" "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/out/controls/" "--buildSource" "MSBuild" 15 | 16 | [5:23:46 PM] [build] Initializing... 17 | [5:23:46 PM] [build] Validating manifest... 18 | [5:23:46 PM] [build] Validating control... 19 | [5:23:48 PM] [build] Running ESLint... 20 | [5:23:49 PM] [build] Generating manifest types... 21 | DeprecationWarning: 'createInterfaceDeclaration' has been deprecated since v4.8.0. Decorators are no longer supported for this function. Callers should switch to an overload that does not accept a 'decorators' parameter. 22 | [5:23:49 PM] [build] Generating design types... 23 | [5:23:49 PM] [build] Compiling and bundling control... 24 | [Webpack stats]: 25 | asset bundle.js 16.5 KiB [emitted] (name: main) 26 | ./GanttView/index.ts 3.61 KiB [built] [code generated] 27 | ./GanttView/GanttViewControl.tsx 9.51 KiB [built] [code generated] 28 | external "React" 42 bytes [built] [code generated] 29 | webpack 5.75.0 compiled successfully in 3731 ms 30 | [5:23:53 PM] [build] Generating build outputs... 31 | [5:23:53 PM] [build] Succeeded 32 | Running Solution Packager to build package type: Unmanaged bin/Debug/PowerAppsTools_tppd.zip 33 | Solution: bin/Debug/PowerAppsTools_tppd.zip generated. 34 | Solution Package Type: Unmanaged generated. 35 | Completed intermiediate files clean up. 36 | -------------------------------------------------------------------------------- /obj/project.assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "targets": { 4 | ".NETFramework,Version=v4.6.2": { 5 | "Microsoft.NETFramework.ReferenceAssemblies/1.0.0": { 6 | "type": "package", 7 | "dependencies": { 8 | "Microsoft.NETFramework.ReferenceAssemblies.net462": "1.0.0" 9 | } 10 | }, 11 | "Microsoft.NETFramework.ReferenceAssemblies.net462/1.0.0": { 12 | "type": "package", 13 | "build": { 14 | "build/Microsoft.NETFramework.ReferenceAssemblies.net462.targets": {} 15 | } 16 | }, 17 | "Microsoft.PowerApps.MSBuild.Pcf/1.21.8": { 18 | "type": "package", 19 | "build": { 20 | "build/Microsoft.PowerApps.MSBuild.Pcf.props": {}, 21 | "build/Microsoft.PowerApps.MSBuild.Pcf.targets": {} 22 | } 23 | } 24 | } 25 | }, 26 | "libraries": { 27 | "Microsoft.NETFramework.ReferenceAssemblies/1.0.0": { 28 | "sha512": "7D2TMufjGiowmt0E941kVoTIS+GTNzaPopuzM1/1LSaJAdJdBrVP0SkZW7AgDd0a2U1DjsIeaKG1wxGVBNLDMw==", 29 | "type": "package", 30 | "path": "microsoft.netframework.referenceassemblies/1.0.0", 31 | "files": [ 32 | ".nupkg.metadata", 33 | ".signature.p7s", 34 | "microsoft.netframework.referenceassemblies.1.0.0.nupkg.sha512", 35 | "microsoft.netframework.referenceassemblies.nuspec" 36 | ] 37 | }, 38 | "Microsoft.NETFramework.ReferenceAssemblies.net462/1.0.0": { 39 | "sha512": "ONGjkFWduK13lfxUtlEl4+nYwrqDe5NF5f8qRtp5fqWiWYlqft/Ko9ht3e6Secg9y3I1yL8Xnfag/JGOOn0yoQ==", 40 | "type": "package", 41 | "path": "microsoft.netframework.referenceassemblies.net462/1.0.0", 42 | "files": [ 43 | ".nupkg.metadata", 44 | ".signature.p7s", 45 | "build/.NETFramework/v4.6.2/Accessibility.dll", 46 | "build/.NETFramework/v4.6.2/Accessibility.xml", 47 | "build/.NETFramework/v4.6.2/CustomMarshalers.dll", 48 | "build/.NETFramework/v4.6.2/CustomMarshalers.xml", 49 | "build/.NETFramework/v4.6.2/Facades/System.Collections.Concurrent.dll", 50 | "build/.NETFramework/v4.6.2/Facades/System.Collections.dll", 51 | "build/.NETFramework/v4.6.2/Facades/System.ComponentModel.Annotations.dll", 52 | "build/.NETFramework/v4.6.2/Facades/System.ComponentModel.EventBasedAsync.dll", 53 | "build/.NETFramework/v4.6.2/Facades/System.ComponentModel.dll", 54 | "build/.NETFramework/v4.6.2/Facades/System.Diagnostics.Contracts.dll", 55 | "build/.NETFramework/v4.6.2/Facades/System.Diagnostics.Debug.dll", 56 | "build/.NETFramework/v4.6.2/Facades/System.Diagnostics.Tools.dll", 57 | "build/.NETFramework/v4.6.2/Facades/System.Diagnostics.Tracing.dll", 58 | "build/.NETFramework/v4.6.2/Facades/System.Dynamic.Runtime.dll", 59 | "build/.NETFramework/v4.6.2/Facades/System.Globalization.dll", 60 | "build/.NETFramework/v4.6.2/Facades/System.IO.dll", 61 | "build/.NETFramework/v4.6.2/Facades/System.Linq.Expressions.dll", 62 | "build/.NETFramework/v4.6.2/Facades/System.Linq.Parallel.dll", 63 | "build/.NETFramework/v4.6.2/Facades/System.Linq.Queryable.dll", 64 | "build/.NETFramework/v4.6.2/Facades/System.Linq.dll", 65 | "build/.NETFramework/v4.6.2/Facades/System.Net.NetworkInformation.dll", 66 | "build/.NETFramework/v4.6.2/Facades/System.Net.Primitives.dll", 67 | "build/.NETFramework/v4.6.2/Facades/System.Net.Requests.dll", 68 | "build/.NETFramework/v4.6.2/Facades/System.Net.WebHeaderCollection.dll", 69 | "build/.NETFramework/v4.6.2/Facades/System.ObjectModel.dll", 70 | "build/.NETFramework/v4.6.2/Facades/System.Reflection.Emit.ILGeneration.dll", 71 | "build/.NETFramework/v4.6.2/Facades/System.Reflection.Emit.Lightweight.dll", 72 | "build/.NETFramework/v4.6.2/Facades/System.Reflection.Emit.dll", 73 | "build/.NETFramework/v4.6.2/Facades/System.Reflection.Extensions.dll", 74 | "build/.NETFramework/v4.6.2/Facades/System.Reflection.Primitives.dll", 75 | "build/.NETFramework/v4.6.2/Facades/System.Reflection.dll", 76 | "build/.NETFramework/v4.6.2/Facades/System.Resources.ResourceManager.dll", 77 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.Extensions.dll", 78 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.Handles.dll", 79 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.InteropServices.WindowsRuntime.dll", 80 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.InteropServices.dll", 81 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.Numerics.dll", 82 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.Serialization.Json.dll", 83 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.Serialization.Primitives.dll", 84 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.Serialization.Xml.dll", 85 | "build/.NETFramework/v4.6.2/Facades/System.Runtime.dll", 86 | "build/.NETFramework/v4.6.2/Facades/System.Security.Principal.dll", 87 | "build/.NETFramework/v4.6.2/Facades/System.ServiceModel.Duplex.dll", 88 | "build/.NETFramework/v4.6.2/Facades/System.ServiceModel.Http.dll", 89 | "build/.NETFramework/v4.6.2/Facades/System.ServiceModel.NetTcp.dll", 90 | "build/.NETFramework/v4.6.2/Facades/System.ServiceModel.Primitives.dll", 91 | "build/.NETFramework/v4.6.2/Facades/System.ServiceModel.Security.dll", 92 | "build/.NETFramework/v4.6.2/Facades/System.Text.Encoding.Extensions.dll", 93 | "build/.NETFramework/v4.6.2/Facades/System.Text.Encoding.dll", 94 | "build/.NETFramework/v4.6.2/Facades/System.Text.RegularExpressions.dll", 95 | "build/.NETFramework/v4.6.2/Facades/System.Threading.Tasks.Parallel.dll", 96 | "build/.NETFramework/v4.6.2/Facades/System.Threading.Tasks.dll", 97 | "build/.NETFramework/v4.6.2/Facades/System.Threading.Timer.dll", 98 | "build/.NETFramework/v4.6.2/Facades/System.Threading.dll", 99 | "build/.NETFramework/v4.6.2/Facades/System.Xml.ReaderWriter.dll", 100 | "build/.NETFramework/v4.6.2/Facades/System.Xml.XDocument.dll", 101 | "build/.NETFramework/v4.6.2/Facades/System.Xml.XmlSerializer.dll", 102 | "build/.NETFramework/v4.6.2/ISymWrapper.dll", 103 | "build/.NETFramework/v4.6.2/ISymWrapper.xml", 104 | "build/.NETFramework/v4.6.2/Microsoft.Activities.Build.dll", 105 | "build/.NETFramework/v4.6.2/Microsoft.Activities.Build.xml", 106 | "build/.NETFramework/v4.6.2/Microsoft.Build.Conversion.v4.0.dll", 107 | "build/.NETFramework/v4.6.2/Microsoft.Build.Conversion.v4.0.xml", 108 | "build/.NETFramework/v4.6.2/Microsoft.Build.Engine.dll", 109 | "build/.NETFramework/v4.6.2/Microsoft.Build.Engine.xml", 110 | "build/.NETFramework/v4.6.2/Microsoft.Build.Framework.dll", 111 | "build/.NETFramework/v4.6.2/Microsoft.Build.Framework.xml", 112 | "build/.NETFramework/v4.6.2/Microsoft.Build.Tasks.v4.0.dll", 113 | "build/.NETFramework/v4.6.2/Microsoft.Build.Tasks.v4.0.xml", 114 | "build/.NETFramework/v4.6.2/Microsoft.Build.Utilities.v4.0.dll", 115 | "build/.NETFramework/v4.6.2/Microsoft.Build.Utilities.v4.0.xml", 116 | "build/.NETFramework/v4.6.2/Microsoft.Build.dll", 117 | "build/.NETFramework/v4.6.2/Microsoft.Build.xml", 118 | "build/.NETFramework/v4.6.2/Microsoft.CSharp.dll", 119 | "build/.NETFramework/v4.6.2/Microsoft.CSharp.xml", 120 | "build/.NETFramework/v4.6.2/Microsoft.JScript.dll", 121 | "build/.NETFramework/v4.6.2/Microsoft.JScript.xml", 122 | "build/.NETFramework/v4.6.2/Microsoft.VisualBasic.Compatibility.Data.dll", 123 | "build/.NETFramework/v4.6.2/Microsoft.VisualBasic.Compatibility.Data.xml", 124 | "build/.NETFramework/v4.6.2/Microsoft.VisualBasic.Compatibility.dll", 125 | "build/.NETFramework/v4.6.2/Microsoft.VisualBasic.Compatibility.xml", 126 | "build/.NETFramework/v4.6.2/Microsoft.VisualBasic.dll", 127 | "build/.NETFramework/v4.6.2/Microsoft.VisualBasic.xml", 128 | "build/.NETFramework/v4.6.2/Microsoft.VisualC.STLCLR.dll", 129 | "build/.NETFramework/v4.6.2/Microsoft.VisualC.STLCLR.xml", 130 | "build/.NETFramework/v4.6.2/Microsoft.VisualC.dll", 131 | "build/.NETFramework/v4.6.2/Microsoft.VisualC.xml", 132 | "build/.NETFramework/v4.6.2/PermissionSets/FullTrust.xml", 133 | "build/.NETFramework/v4.6.2/PermissionSets/Internet.xml", 134 | "build/.NETFramework/v4.6.2/PermissionSets/LocalIntranet.xml", 135 | "build/.NETFramework/v4.6.2/PresentationBuildTasks.dll", 136 | "build/.NETFramework/v4.6.2/PresentationBuildTasks.xml", 137 | "build/.NETFramework/v4.6.2/PresentationCore.dll", 138 | "build/.NETFramework/v4.6.2/PresentationCore.xml", 139 | "build/.NETFramework/v4.6.2/PresentationFramework.Aero.dll", 140 | "build/.NETFramework/v4.6.2/PresentationFramework.Aero.xml", 141 | "build/.NETFramework/v4.6.2/PresentationFramework.Aero2.dll", 142 | "build/.NETFramework/v4.6.2/PresentationFramework.Aero2.xml", 143 | "build/.NETFramework/v4.6.2/PresentationFramework.AeroLite.dll", 144 | "build/.NETFramework/v4.6.2/PresentationFramework.AeroLite.xml", 145 | "build/.NETFramework/v4.6.2/PresentationFramework.Classic.dll", 146 | "build/.NETFramework/v4.6.2/PresentationFramework.Classic.xml", 147 | "build/.NETFramework/v4.6.2/PresentationFramework.Luna.dll", 148 | "build/.NETFramework/v4.6.2/PresentationFramework.Luna.xml", 149 | "build/.NETFramework/v4.6.2/PresentationFramework.Royale.dll", 150 | "build/.NETFramework/v4.6.2/PresentationFramework.Royale.xml", 151 | "build/.NETFramework/v4.6.2/PresentationFramework.dll", 152 | "build/.NETFramework/v4.6.2/PresentationFramework.xml", 153 | "build/.NETFramework/v4.6.2/ReachFramework.dll", 154 | "build/.NETFramework/v4.6.2/ReachFramework.xml", 155 | "build/.NETFramework/v4.6.2/RedistList/FrameworkList.xml", 156 | "build/.NETFramework/v4.6.2/System.Activities.Core.Presentation.dll", 157 | "build/.NETFramework/v4.6.2/System.Activities.Core.Presentation.xml", 158 | "build/.NETFramework/v4.6.2/System.Activities.DurableInstancing.dll", 159 | "build/.NETFramework/v4.6.2/System.Activities.DurableInstancing.xml", 160 | "build/.NETFramework/v4.6.2/System.Activities.Presentation.dll", 161 | "build/.NETFramework/v4.6.2/System.Activities.Presentation.xml", 162 | "build/.NETFramework/v4.6.2/System.Activities.dll", 163 | "build/.NETFramework/v4.6.2/System.Activities.xml", 164 | "build/.NETFramework/v4.6.2/System.AddIn.Contract.dll", 165 | "build/.NETFramework/v4.6.2/System.AddIn.Contract.xml", 166 | "build/.NETFramework/v4.6.2/System.AddIn.dll", 167 | "build/.NETFramework/v4.6.2/System.AddIn.xml", 168 | "build/.NETFramework/v4.6.2/System.ComponentModel.Composition.Registration.dll", 169 | "build/.NETFramework/v4.6.2/System.ComponentModel.Composition.Registration.xml", 170 | "build/.NETFramework/v4.6.2/System.ComponentModel.Composition.dll", 171 | "build/.NETFramework/v4.6.2/System.ComponentModel.Composition.xml", 172 | "build/.NETFramework/v4.6.2/System.ComponentModel.DataAnnotations.dll", 173 | "build/.NETFramework/v4.6.2/System.ComponentModel.DataAnnotations.xml", 174 | "build/.NETFramework/v4.6.2/System.Configuration.Install.dll", 175 | "build/.NETFramework/v4.6.2/System.Configuration.Install.xml", 176 | "build/.NETFramework/v4.6.2/System.Configuration.dll", 177 | "build/.NETFramework/v4.6.2/System.Configuration.xml", 178 | "build/.NETFramework/v4.6.2/System.Core.dll", 179 | "build/.NETFramework/v4.6.2/System.Core.xml", 180 | "build/.NETFramework/v4.6.2/System.Data.DataSetExtensions.dll", 181 | "build/.NETFramework/v4.6.2/System.Data.DataSetExtensions.xml", 182 | "build/.NETFramework/v4.6.2/System.Data.Entity.Design.dll", 183 | "build/.NETFramework/v4.6.2/System.Data.Entity.Design.xml", 184 | "build/.NETFramework/v4.6.2/System.Data.Entity.dll", 185 | "build/.NETFramework/v4.6.2/System.Data.Entity.xml", 186 | "build/.NETFramework/v4.6.2/System.Data.Linq.dll", 187 | "build/.NETFramework/v4.6.2/System.Data.Linq.xml", 188 | "build/.NETFramework/v4.6.2/System.Data.OracleClient.dll", 189 | "build/.NETFramework/v4.6.2/System.Data.OracleClient.xml", 190 | "build/.NETFramework/v4.6.2/System.Data.Services.Client.dll", 191 | "build/.NETFramework/v4.6.2/System.Data.Services.Client.xml", 192 | "build/.NETFramework/v4.6.2/System.Data.Services.Design.dll", 193 | "build/.NETFramework/v4.6.2/System.Data.Services.Design.xml", 194 | "build/.NETFramework/v4.6.2/System.Data.Services.dll", 195 | "build/.NETFramework/v4.6.2/System.Data.Services.xml", 196 | "build/.NETFramework/v4.6.2/System.Data.SqlXml.dll", 197 | "build/.NETFramework/v4.6.2/System.Data.SqlXml.xml", 198 | "build/.NETFramework/v4.6.2/System.Data.dll", 199 | "build/.NETFramework/v4.6.2/System.Data.xml", 200 | "build/.NETFramework/v4.6.2/System.Deployment.dll", 201 | "build/.NETFramework/v4.6.2/System.Deployment.xml", 202 | "build/.NETFramework/v4.6.2/System.Design.dll", 203 | "build/.NETFramework/v4.6.2/System.Design.xml", 204 | "build/.NETFramework/v4.6.2/System.Device.dll", 205 | "build/.NETFramework/v4.6.2/System.Device.xml", 206 | "build/.NETFramework/v4.6.2/System.DirectoryServices.AccountManagement.dll", 207 | "build/.NETFramework/v4.6.2/System.DirectoryServices.AccountManagement.xml", 208 | "build/.NETFramework/v4.6.2/System.DirectoryServices.Protocols.dll", 209 | "build/.NETFramework/v4.6.2/System.DirectoryServices.Protocols.xml", 210 | "build/.NETFramework/v4.6.2/System.DirectoryServices.dll", 211 | "build/.NETFramework/v4.6.2/System.DirectoryServices.xml", 212 | "build/.NETFramework/v4.6.2/System.Drawing.Design.dll", 213 | "build/.NETFramework/v4.6.2/System.Drawing.Design.xml", 214 | "build/.NETFramework/v4.6.2/System.Drawing.dll", 215 | "build/.NETFramework/v4.6.2/System.Drawing.xml", 216 | "build/.NETFramework/v4.6.2/System.Dynamic.dll", 217 | "build/.NETFramework/v4.6.2/System.EnterpriseServices.Thunk.dll", 218 | "build/.NETFramework/v4.6.2/System.EnterpriseServices.Wrapper.dll", 219 | "build/.NETFramework/v4.6.2/System.EnterpriseServices.dll", 220 | "build/.NETFramework/v4.6.2/System.EnterpriseServices.xml", 221 | "build/.NETFramework/v4.6.2/System.IO.Compression.FileSystem.dll", 222 | "build/.NETFramework/v4.6.2/System.IO.Compression.FileSystem.xml", 223 | "build/.NETFramework/v4.6.2/System.IO.Compression.dll", 224 | "build/.NETFramework/v4.6.2/System.IO.Compression.xml", 225 | "build/.NETFramework/v4.6.2/System.IO.Log.dll", 226 | "build/.NETFramework/v4.6.2/System.IO.Log.xml", 227 | "build/.NETFramework/v4.6.2/System.IdentityModel.Selectors.dll", 228 | "build/.NETFramework/v4.6.2/System.IdentityModel.Selectors.xml", 229 | "build/.NETFramework/v4.6.2/System.IdentityModel.Services.dll", 230 | "build/.NETFramework/v4.6.2/System.IdentityModel.Services.xml", 231 | "build/.NETFramework/v4.6.2/System.IdentityModel.dll", 232 | "build/.NETFramework/v4.6.2/System.IdentityModel.xml", 233 | "build/.NETFramework/v4.6.2/System.Linq.xml", 234 | "build/.NETFramework/v4.6.2/System.Management.Instrumentation.dll", 235 | "build/.NETFramework/v4.6.2/System.Management.Instrumentation.xml", 236 | "build/.NETFramework/v4.6.2/System.Management.dll", 237 | "build/.NETFramework/v4.6.2/System.Management.xml", 238 | "build/.NETFramework/v4.6.2/System.Messaging.dll", 239 | "build/.NETFramework/v4.6.2/System.Messaging.xml", 240 | "build/.NETFramework/v4.6.2/System.Net.Http.WebRequest.dll", 241 | "build/.NETFramework/v4.6.2/System.Net.Http.WebRequest.xml", 242 | "build/.NETFramework/v4.6.2/System.Net.Http.dll", 243 | "build/.NETFramework/v4.6.2/System.Net.Http.xml", 244 | "build/.NETFramework/v4.6.2/System.Net.dll", 245 | "build/.NETFramework/v4.6.2/System.Net.xml", 246 | "build/.NETFramework/v4.6.2/System.Numerics.dll", 247 | "build/.NETFramework/v4.6.2/System.Numerics.xml", 248 | "build/.NETFramework/v4.6.2/System.Printing.dll", 249 | "build/.NETFramework/v4.6.2/System.Printing.xml", 250 | "build/.NETFramework/v4.6.2/System.Reflection.Context.dll", 251 | "build/.NETFramework/v4.6.2/System.Reflection.Context.xml", 252 | "build/.NETFramework/v4.6.2/System.Runtime.Caching.dll", 253 | "build/.NETFramework/v4.6.2/System.Runtime.Caching.xml", 254 | "build/.NETFramework/v4.6.2/System.Runtime.DurableInstancing.dll", 255 | "build/.NETFramework/v4.6.2/System.Runtime.DurableInstancing.xml", 256 | "build/.NETFramework/v4.6.2/System.Runtime.Remoting.dll", 257 | "build/.NETFramework/v4.6.2/System.Runtime.Remoting.xml", 258 | "build/.NETFramework/v4.6.2/System.Runtime.Serialization.Formatters.Soap.dll", 259 | "build/.NETFramework/v4.6.2/System.Runtime.Serialization.Formatters.Soap.xml", 260 | "build/.NETFramework/v4.6.2/System.Runtime.Serialization.dll", 261 | "build/.NETFramework/v4.6.2/System.Runtime.Serialization.xml", 262 | "build/.NETFramework/v4.6.2/System.Security.dll", 263 | "build/.NETFramework/v4.6.2/System.Security.xml", 264 | "build/.NETFramework/v4.6.2/System.ServiceModel.Activation.dll", 265 | "build/.NETFramework/v4.6.2/System.ServiceModel.Activation.xml", 266 | "build/.NETFramework/v4.6.2/System.ServiceModel.Activities.dll", 267 | "build/.NETFramework/v4.6.2/System.ServiceModel.Activities.xml", 268 | "build/.NETFramework/v4.6.2/System.ServiceModel.Channels.dll", 269 | "build/.NETFramework/v4.6.2/System.ServiceModel.Channels.xml", 270 | "build/.NETFramework/v4.6.2/System.ServiceModel.Discovery.dll", 271 | "build/.NETFramework/v4.6.2/System.ServiceModel.Discovery.xml", 272 | "build/.NETFramework/v4.6.2/System.ServiceModel.Routing.dll", 273 | "build/.NETFramework/v4.6.2/System.ServiceModel.Routing.xml", 274 | "build/.NETFramework/v4.6.2/System.ServiceModel.Web.dll", 275 | "build/.NETFramework/v4.6.2/System.ServiceModel.Web.xml", 276 | "build/.NETFramework/v4.6.2/System.ServiceModel.dll", 277 | "build/.NETFramework/v4.6.2/System.ServiceModel.xml", 278 | "build/.NETFramework/v4.6.2/System.ServiceProcess.dll", 279 | "build/.NETFramework/v4.6.2/System.ServiceProcess.xml", 280 | "build/.NETFramework/v4.6.2/System.Speech.dll", 281 | "build/.NETFramework/v4.6.2/System.Speech.xml", 282 | "build/.NETFramework/v4.6.2/System.Threading.Tasks.Dataflow.xml", 283 | "build/.NETFramework/v4.6.2/System.Transactions.dll", 284 | "build/.NETFramework/v4.6.2/System.Transactions.xml", 285 | "build/.NETFramework/v4.6.2/System.Web.Abstractions.dll", 286 | "build/.NETFramework/v4.6.2/System.Web.ApplicationServices.dll", 287 | "build/.NETFramework/v4.6.2/System.Web.ApplicationServices.xml", 288 | "build/.NETFramework/v4.6.2/System.Web.DataVisualization.Design.dll", 289 | "build/.NETFramework/v4.6.2/System.Web.DataVisualization.dll", 290 | "build/.NETFramework/v4.6.2/System.Web.DataVisualization.xml", 291 | "build/.NETFramework/v4.6.2/System.Web.DynamicData.Design.dll", 292 | "build/.NETFramework/v4.6.2/System.Web.DynamicData.Design.xml", 293 | "build/.NETFramework/v4.6.2/System.Web.DynamicData.dll", 294 | "build/.NETFramework/v4.6.2/System.Web.DynamicData.xml", 295 | "build/.NETFramework/v4.6.2/System.Web.Entity.Design.dll", 296 | "build/.NETFramework/v4.6.2/System.Web.Entity.Design.xml", 297 | "build/.NETFramework/v4.6.2/System.Web.Entity.dll", 298 | "build/.NETFramework/v4.6.2/System.Web.Entity.xml", 299 | "build/.NETFramework/v4.6.2/System.Web.Extensions.Design.dll", 300 | "build/.NETFramework/v4.6.2/System.Web.Extensions.Design.xml", 301 | "build/.NETFramework/v4.6.2/System.Web.Extensions.dll", 302 | "build/.NETFramework/v4.6.2/System.Web.Extensions.xml", 303 | "build/.NETFramework/v4.6.2/System.Web.Mobile.dll", 304 | "build/.NETFramework/v4.6.2/System.Web.Mobile.xml", 305 | "build/.NETFramework/v4.6.2/System.Web.RegularExpressions.dll", 306 | "build/.NETFramework/v4.6.2/System.Web.RegularExpressions.xml", 307 | "build/.NETFramework/v4.6.2/System.Web.Routing.dll", 308 | "build/.NETFramework/v4.6.2/System.Web.Services.dll", 309 | "build/.NETFramework/v4.6.2/System.Web.Services.xml", 310 | "build/.NETFramework/v4.6.2/System.Web.dll", 311 | "build/.NETFramework/v4.6.2/System.Web.xml", 312 | "build/.NETFramework/v4.6.2/System.Windows.Controls.Ribbon.dll", 313 | "build/.NETFramework/v4.6.2/System.Windows.Controls.Ribbon.xml", 314 | "build/.NETFramework/v4.6.2/System.Windows.Forms.DataVisualization.Design.dll", 315 | "build/.NETFramework/v4.6.2/System.Windows.Forms.DataVisualization.dll", 316 | "build/.NETFramework/v4.6.2/System.Windows.Forms.DataVisualization.xml", 317 | "build/.NETFramework/v4.6.2/System.Windows.Forms.dll", 318 | "build/.NETFramework/v4.6.2/System.Windows.Forms.xml", 319 | "build/.NETFramework/v4.6.2/System.Windows.Input.Manipulations.dll", 320 | "build/.NETFramework/v4.6.2/System.Windows.Input.Manipulations.xml", 321 | "build/.NETFramework/v4.6.2/System.Windows.Presentation.dll", 322 | "build/.NETFramework/v4.6.2/System.Windows.Presentation.xml", 323 | "build/.NETFramework/v4.6.2/System.Windows.dll", 324 | "build/.NETFramework/v4.6.2/System.Workflow.Activities.dll", 325 | "build/.NETFramework/v4.6.2/System.Workflow.Activities.xml", 326 | "build/.NETFramework/v4.6.2/System.Workflow.ComponentModel.dll", 327 | "build/.NETFramework/v4.6.2/System.Workflow.ComponentModel.xml", 328 | "build/.NETFramework/v4.6.2/System.Workflow.Runtime.dll", 329 | "build/.NETFramework/v4.6.2/System.Workflow.Runtime.xml", 330 | "build/.NETFramework/v4.6.2/System.WorkflowServices.dll", 331 | "build/.NETFramework/v4.6.2/System.WorkflowServices.xml", 332 | "build/.NETFramework/v4.6.2/System.Xaml.dll", 333 | "build/.NETFramework/v4.6.2/System.Xaml.xml", 334 | "build/.NETFramework/v4.6.2/System.Xml.Linq.dll", 335 | "build/.NETFramework/v4.6.2/System.Xml.Linq.xml", 336 | "build/.NETFramework/v4.6.2/System.Xml.Serialization.dll", 337 | "build/.NETFramework/v4.6.2/System.Xml.dll", 338 | "build/.NETFramework/v4.6.2/System.Xml.xml", 339 | "build/.NETFramework/v4.6.2/System.dll", 340 | "build/.NETFramework/v4.6.2/System.xml", 341 | "build/.NETFramework/v4.6.2/UIAutomationClient.dll", 342 | "build/.NETFramework/v4.6.2/UIAutomationClient.xml", 343 | "build/.NETFramework/v4.6.2/UIAutomationClientsideProviders.dll", 344 | "build/.NETFramework/v4.6.2/UIAutomationClientsideProviders.xml", 345 | "build/.NETFramework/v4.6.2/UIAutomationProvider.dll", 346 | "build/.NETFramework/v4.6.2/UIAutomationProvider.xml", 347 | "build/.NETFramework/v4.6.2/UIAutomationTypes.dll", 348 | "build/.NETFramework/v4.6.2/UIAutomationTypes.xml", 349 | "build/.NETFramework/v4.6.2/WindowsBase.dll", 350 | "build/.NETFramework/v4.6.2/WindowsBase.xml", 351 | "build/.NETFramework/v4.6.2/WindowsFormsIntegration.dll", 352 | "build/.NETFramework/v4.6.2/WindowsFormsIntegration.xml", 353 | "build/.NETFramework/v4.6.2/XamlBuildTask.dll", 354 | "build/.NETFramework/v4.6.2/XamlBuildTask.xml", 355 | "build/.NETFramework/v4.6.2/mscorlib.dll", 356 | "build/.NETFramework/v4.6.2/mscorlib.xml", 357 | "build/.NETFramework/v4.6.2/namespaces.xml", 358 | "build/.NETFramework/v4.6.2/sysglobl.dll", 359 | "build/.NETFramework/v4.6.2/sysglobl.xml", 360 | "build/Microsoft.NETFramework.ReferenceAssemblies.net462.targets", 361 | "microsoft.netframework.referenceassemblies.net462.1.0.0.nupkg.sha512", 362 | "microsoft.netframework.referenceassemblies.net462.nuspec" 363 | ] 364 | }, 365 | "Microsoft.PowerApps.MSBuild.Pcf/1.21.8": { 366 | "sha512": "g2vSYxNBnddH4BSmnK9grIsm9hDcm5oE7lQ+wzVpXowZe+R3WLO/RDg90aOt9I9bMsq8M+cmJis0Nf9XIPgBVg==", 367 | "type": "package", 368 | "path": "microsoft.powerapps.msbuild.pcf/1.21.8", 369 | "files": [ 370 | ".nupkg.metadata", 371 | ".signature.p7s", 372 | "3rdPartyNotice.txt", 373 | "LICENSE.txt", 374 | "build/Microsoft.PowerApps.MSBuild.Pcf.props", 375 | "build/Microsoft.PowerApps.MSBuild.Pcf.targets", 376 | "microsoft.powerapps.msbuild.pcf.1.21.8.nupkg.sha512", 377 | "microsoft.powerapps.msbuild.pcf.nuspec", 378 | "tasks/Microsoft.PowerApps.MSBuild.Pcf.tasks", 379 | "tasks/net472/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.dll", 380 | "tasks/net472/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.pdb", 381 | "tasks/net472/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.tasks", 382 | "tasks/net472/Newtonsoft.Json.dll", 383 | "tasks/net472/System.Drawing.Common.dll", 384 | "tasks/net472/ppbtTelemetryRecorder/Microsoft.ApplicationInsights.dll", 385 | "tasks/net472/ppbtTelemetryRecorder/Microsoft.PowerPlatform.Tooling.BatchedTelemetry.dll", 386 | "tasks/net472/ppbtTelemetryRecorder/Newtonsoft.Json.dll", 387 | "tasks/net472/ppbtTelemetryRecorder/System.Buffers.dll", 388 | "tasks/net472/ppbtTelemetryRecorder/System.Diagnostics.DiagnosticSource.dll", 389 | "tasks/net472/ppbtTelemetryRecorder/System.Memory.dll", 390 | "tasks/net472/ppbtTelemetryRecorder/System.Numerics.Vectors.dll", 391 | "tasks/net472/ppbtTelemetryRecorder/System.Runtime.CompilerServices.Unsafe.dll", 392 | "tasks/net472/ppbtTelemetryRecorder/System.ValueTuple.dll", 393 | "tasks/net472/ppbtTelemetryRecorder/pacTelemetryUpload.exe", 394 | "tasks/net472/ppbtTelemetryRecorder/pacTelemetryUpload.exe.config", 395 | "tasks/net472/ppbtTelemetryRecorder/ppbtTelemetryRecorder.exe", 396 | "tasks/net472/ppbtTelemetryRecorder/ppbtTelemetryRecorder.exe.config", 397 | "tasks/net472/ppbtTelemetryRecorder/ppbtTelemetryRecorder.pdb", 398 | "tasks/net5.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.deps.json", 399 | "tasks/net5.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.dll", 400 | "tasks/net5.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.pdb", 401 | "tasks/net5.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.tasks", 402 | "tasks/net5.0/Microsoft.Win32.SystemEvents.dll", 403 | "tasks/net5.0/Newtonsoft.Json.dll", 404 | "tasks/net5.0/System.Drawing.Common.dll", 405 | "tasks/net5.0/ppbtTelemetryRecorder/Microsoft.ApplicationInsights.dll", 406 | "tasks/net5.0/ppbtTelemetryRecorder/Microsoft.PowerPlatform.Tooling.BatchedTelemetry.dll", 407 | "tasks/net5.0/ppbtTelemetryRecorder/Newtonsoft.Json.dll", 408 | "tasks/net5.0/ppbtTelemetryRecorder/pacTelemetryUpload.dll", 409 | "tasks/net5.0/ppbtTelemetryRecorder/pacTelemetryUpload.runtimeconfig.json", 410 | "tasks/net5.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.deps.json", 411 | "tasks/net5.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.dll", 412 | "tasks/net5.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.dll.config", 413 | "tasks/net5.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.pdb", 414 | "tasks/net5.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.runtimeconfig.json", 415 | "tasks/net5.0/runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll", 416 | "tasks/net5.0/runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll", 417 | "tasks/net5.0/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll", 418 | "tasks/net6.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.deps.json", 419 | "tasks/net6.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.dll", 420 | "tasks/net6.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.pdb", 421 | "tasks/net6.0/Microsoft.PowerPlatform.MSBuild.Telemetry.Tasks.tasks", 422 | "tasks/net6.0/Microsoft.Win32.SystemEvents.dll", 423 | "tasks/net6.0/Newtonsoft.Json.dll", 424 | "tasks/net6.0/System.Drawing.Common.dll", 425 | "tasks/net6.0/ppbtTelemetryRecorder/Microsoft.ApplicationInsights.dll", 426 | "tasks/net6.0/ppbtTelemetryRecorder/Microsoft.PowerPlatform.Tooling.BatchedTelemetry.dll", 427 | "tasks/net6.0/ppbtTelemetryRecorder/Newtonsoft.Json.dll", 428 | "tasks/net6.0/ppbtTelemetryRecorder/pacTelemetryUpload.dll", 429 | "tasks/net6.0/ppbtTelemetryRecorder/pacTelemetryUpload.runtimeconfig.json", 430 | "tasks/net6.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.deps.json", 431 | "tasks/net6.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.dll", 432 | "tasks/net6.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.dll.config", 433 | "tasks/net6.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.pdb", 434 | "tasks/net6.0/ppbtTelemetryRecorder/ppbtTelemetryRecorder.runtimeconfig.json", 435 | "tasks/net6.0/runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll", 436 | "tasks/net6.0/runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll", 437 | "tasks/net6.0/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll" 438 | ] 439 | } 440 | }, 441 | "projectFileDependencyGroups": { 442 | ".NETFramework,Version=v4.6.2": [ 443 | "Microsoft.NETFramework.ReferenceAssemblies >= 1.0.0", 444 | "Microsoft.PowerApps.MSBuild.Pcf >= 1.*" 445 | ] 446 | }, 447 | "packageFolders": { 448 | "/Users/alexandrebaker/.nuget/packages/": {} 449 | }, 450 | "project": { 451 | "version": "1.0.0", 452 | "restore": { 453 | "projectUniqueName": "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/Gantt View Component.pcfproj", 454 | "projectName": "Gantt View Component", 455 | "projectPath": "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/Gantt View Component.pcfproj", 456 | "packagesPath": "/Users/alexandrebaker/.nuget/packages/", 457 | "outputPath": "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/obj/", 458 | "projectStyle": "PackageReference", 459 | "configFilePaths": [ 460 | "/Users/alexandrebaker/.nuget/NuGet/NuGet.Config" 461 | ], 462 | "originalTargetFrameworks": [ 463 | "net462" 464 | ], 465 | "sources": { 466 | "https://api.nuget.org/v3/index.json": {} 467 | }, 468 | "frameworks": { 469 | "net462": { 470 | "targetAlias": "net462", 471 | "projectReferences": {} 472 | } 473 | } 474 | }, 475 | "frameworks": { 476 | "net462": { 477 | "targetAlias": "net462", 478 | "dependencies": { 479 | "Microsoft.NETFramework.ReferenceAssemblies": { 480 | "suppressParent": "All", 481 | "target": "Package", 482 | "version": "[1.0.0, )" 483 | }, 484 | "Microsoft.PowerApps.MSBuild.Pcf": { 485 | "target": "Package", 486 | "version": "[1.*, )" 487 | } 488 | } 489 | } 490 | } 491 | } 492 | } -------------------------------------------------------------------------------- /obj/project.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "dgSpecHash": "OhlF3xEekm01mF3+ngok3kTkjLxcFFwk1gEhTbzcWu7CUWXb0+BzTcBkM5NGyubNIkp9dQ1wMSS7uyhNx2tWzg==", 4 | "success": true, 5 | "projectFilePath": "/Users/alexandrebaker/Documents/mvp/workspace/Custom Components/Gantt View Component/Gantt View Component.pcfproj", 6 | "expectedPackageFiles": [ 7 | "/Users/alexandrebaker/.nuget/packages/microsoft.netframework.referenceassemblies/1.0.0/microsoft.netframework.referenceassemblies.1.0.0.nupkg.sha512", 8 | "/Users/alexandrebaker/.nuget/packages/microsoft.netframework.referenceassemblies.net462/1.0.0/microsoft.netframework.referenceassemblies.net462.1.0.0.nupkg.sha512", 9 | "/Users/alexandrebaker/.nuget/packages/microsoft.powerapps.msbuild.pcf/1.21.8/microsoft.powerapps.msbuild.pcf.1.21.8.nupkg.sha512" 10 | ], 11 | "logs": [] 12 | } -------------------------------------------------------------------------------- /out/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/out/.DS_Store -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pcf-project", 3 | "version": "1.0.0", 4 | "description": "Project containing your PowerApps Component Framework (PCF) control.", 5 | "scripts": { 6 | "build": "pcf-scripts build", 7 | "clean": "pcf-scripts clean", 8 | "lint": "pcf-scripts lint", 9 | "lint:fix": "pcf-scripts lint fix", 10 | "rebuild": "pcf-scripts rebuild", 11 | "start": "pcf-scripts start", 12 | "refreshTypes": "pcf-scripts refreshTypes" 13 | }, 14 | "dependencies": { 15 | "@fluentui/react": "8.29.0", 16 | "dayjs": "^1.11.7", 17 | "react": "16.8.6", 18 | "react-dom": "16.8.6" 19 | }, 20 | "devDependencies": { 21 | "@microsoft/eslint-plugin-power-apps": "^0.2.6", 22 | "@types/node": "^18.8.2", 23 | "@types/powerapps-component-framework": "^1.3.4", 24 | "@typescript-eslint/eslint-plugin": "^5.53.0", 25 | "@typescript-eslint/parser": "^5.53.0", 26 | "eslint": "^8.24.0", 27 | "eslint-plugin-import": "^2.26.0", 28 | "eslint-plugin-node": "^11.1.0", 29 | "eslint-plugin-promise": "^6.0.1", 30 | "eslint-plugin-react": "^7.32.2", 31 | "pcf-scripts": "^1", 32 | "pcf-start": "^1", 33 | "react": "^16.8", 34 | "typescript": "^4.8.4" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /pcfconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "outDir": "./out/controls" 3 | } -------------------------------------------------------------------------------- /readmeextra/Screenshot-collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/readmeextra/Screenshot-collapsed.png -------------------------------------------------------------------------------- /readmeextra/Screenshot-expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/readmeextra/Screenshot-expanded.png -------------------------------------------------------------------------------- /readmeextra/bmc-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/readmeextra/bmc-button.png -------------------------------------------------------------------------------- /readmeextra/bmc_qr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerPlatformTools/ProjectManagementTools/544dba6c897eacd58ea7ba2db144d571a847f73d/readmeextra/bmc_qr.png -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/pcf-scripts/tsconfig_base.json", 3 | "compilerOptions": { 4 | "typeRoots": ["node_modules/@types"], 5 | } 6 | } -------------------------------------------------------------------------------- /~/Library/Microsoft/PowerAppsCli/usersettings.json: -------------------------------------------------------------------------------- 1 | {"settingVersion":"1.0","uniqueId":"1e13b07b-0862-4fea-b713-fb987a706b2f","telemetryEnabled":true} --------------------------------------------------------------------------------