├── .github
└── workflows
│ └── build.yml
├── .gitignore
├── .vscode
└── settings.json
├── HelloFusionDev.cdsproj
├── LICENSE
├── README.md
├── clone-or-download.png
├── map.xml
├── pcf-src
└── HelloPCF
│ ├── .eslintrc.json
│ ├── .gitignore
│ ├── HelloPCF.pcfproj
│ ├── HelloPCF
│ ├── ControlManifest.Input.xml
│ ├── HelloWorld.tsx
│ └── index.ts
│ ├── package-lock.json
│ ├── package.json
│ ├── pcfconfig.json
│ └── tsconfig.json
├── plugin-src
└── HelloPluginAssembly
│ ├── .gitignore
│ ├── .vscode
│ └── tasks.json
│ ├── HelloPluginAssembly.csproj
│ ├── HelloPluginAssembly.snk
│ ├── Plugin1.cs
│ └── PluginBase.cs
├── src
├── AppModuleSiteMaps
│ └── dkdt_HelloModelDrivenApp
│ │ ├── AppModuleSiteMap.xml
│ │ └── AppModuleSiteMap_managed.xml
├── AppModules
│ └── dkdt_HelloModelDrivenApp
│ │ ├── AppModule.xml
│ │ └── AppModule_managed.xml
├── CanvasApps
│ ├── dkdt_hellocanvasapp_71e90.meta.xml
│ ├── dkdt_hellocanvasapp_71e90_AdditionalUris0_identity.json
│ ├── dkdt_hellocanvasapp_71e90_BackgroundImageUri
│ ├── dkdt_hellocanvasapp_71e90_DocumentUri.msapp
│ └── src
│ │ └── dkdt_hellocanvasapp_71e90
│ │ ├── CanvasManifest.json
│ │ ├── ComponentReferences.json
│ │ ├── Connections
│ │ ├── Connections.json
│ │ └── default.cds.json
│ │ ├── ControlTemplates.json
│ │ ├── Entropy
│ │ ├── AppCheckerResult.sarif
│ │ ├── Entropy.json
│ │ └── checksum.json
│ │ ├── Other
│ │ ├── References
│ │ │ └── ModernThemes.json
│ │ └── Resources
│ │ │ └── Controls
│ │ │ └── Devkeydet.HelloPCF.bundle.js
│ │ ├── Src
│ │ ├── App.fx.yaml
│ │ ├── EditorState
│ │ │ ├── App.editorstate.json
│ │ │ └── MainScreen.editorstate.json
│ │ ├── MainScreen.fx.yaml
│ │ └── Themes.json
│ │ └── pkgs
│ │ └── PcfControlTemplates
│ │ └── HelloPCF_0.0.1.json
├── Entities
│ └── dkdt_HelloFusionDevTable
│ │ ├── Entity.xml
│ │ ├── FormXml
│ │ ├── card
│ │ │ ├── {25b3ccbb-4943-4a93-afde-fd48cfe8a1ee}.xml
│ │ │ └── {25b3ccbb-4943-4a93-afde-fd48cfe8a1ee}_managed.xml
│ │ ├── main
│ │ │ ├── {331cdb0e-d1c4-4534-87b8-233dfb46aa0c}.xml
│ │ │ └── {331cdb0e-d1c4-4534-87b8-233dfb46aa0c}_managed.xml
│ │ └── quick
│ │ │ ├── {e837c91b-abc6-4588-92bc-ac88d8739520}.xml
│ │ │ └── {e837c91b-abc6-4588-92bc-ac88d8739520}_managed.xml
│ │ ├── RibbonDiff.xml
│ │ └── SavedQueries
│ │ ├── {2175ac42-aa67-4973-9e72-2d37020dff35}.xml
│ │ ├── {2ec65e61-6de0-ee11-904d-000d3a5c4369}.xml
│ │ ├── {5144ea36-feea-4311-90a5-da462d77b8e2}.xml
│ │ ├── {824c0132-f517-4a15-8767-265a8fcacaec}.xml
│ │ ├── {90dff77a-68a1-4d05-b541-ceec278de7ba}.xml
│ │ ├── {b3aabf42-eb48-4354-a9c4-8cf4a8030921}.xml
│ │ └── {d751ed18-9c61-4302-8c66-1ae5272f3467}.xml
├── Other
│ ├── Customizations.xml
│ ├── Relationships.xml
│ ├── Relationships
│ │ ├── BusinessUnit.xml
│ │ ├── Owner.xml
│ │ ├── SystemUser.xml
│ │ └── Team.xml
│ └── Solution.xml
├── PluginAssemblies
│ └── HelloPluginAssembly-07EE5081-D1D6-4554-88EF-1E56DDD5831A
│ │ └── HelloPluginAssembly.dll.data.xml
├── SdkMessageProcessingSteps
│ └── {54ab59e2-0be0-ee11-904c-000d3a35ff1d}.xml
└── WebResources
│ └── dkdt_
│ └── HelloFusionDev
│ └── js
│ └── wr-bundle.js.data.xml
└── webresource-src
├── HelloFusionDevForm.ts
├── index.ts
├── package-lock.json
├── package.json
├── tsconfig.json
├── webpack.common.js
├── webpack.dev.js
└── webpack.prod.js
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: build
2 |
3 | on:
4 | workflow_dispatch:
5 | pull_request:
6 | branches: ["main"]
7 |
8 | jobs:
9 | build:
10 | runs-on: windows-latest
11 |
12 | steps:
13 | - uses: actions/checkout@v4
14 |
15 | - name: build
16 | shell: pwsh
17 | run: |
18 | cd webresource-src
19 | npm install
20 | cd ..
21 | dotnet build --configuration release
22 |
23 | - name: Upload Artifacts
24 | uses: actions/upload-artifact@v4
25 | with:
26 | name: HelloFusionDev-Solutions
27 | path: bin/Release
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Aa][Rr][Mm]/
27 | [Aa][Rr][Mm]64/
28 | bld/
29 | [Bb]in/
30 | [Oo]bj/
31 | [Ll]og/
32 | [Ll]ogs/
33 |
34 | # Visual Studio 2015/2017 cache/options directory
35 | .vs/
36 | # Uncomment if you have tasks that create the project's static files in wwwroot
37 | #wwwroot/
38 |
39 | # Visual Studio 2017 auto generated files
40 | Generated\ Files/
41 |
42 | # MSTest test Results
43 | [Tt]est[Rr]esult*/
44 | [Bb]uild[Ll]og.*
45 |
46 | # NUnit
47 | *.VisualState.xml
48 | TestResult.xml
49 | nunit-*.xml
50 |
51 | # Build Results of an ATL Project
52 | [Dd]ebugPS/
53 | [Rr]eleasePS/
54 | dlldata.c
55 |
56 | # Benchmark Results
57 | BenchmarkDotNet.Artifacts/
58 |
59 | # .NET Core
60 | project.lock.json
61 | project.fragment.lock.json
62 | artifacts/
63 |
64 | # StyleCop
65 | StyleCopReport.xml
66 |
67 | # Files built by Visual Studio
68 | *_i.c
69 | *_p.c
70 | *_h.h
71 | *.ilk
72 | *.meta
73 | *.obj
74 | *.iobj
75 | *.pch
76 | *.pdb
77 | *.ipdb
78 | *.pgc
79 | *.pgd
80 | *.rsp
81 | *.sbr
82 | *.tlb
83 | *.tli
84 | *.tlh
85 | *.tmp
86 | *.tmp_proj
87 | *_wpftmp.csproj
88 | *.log
89 | *.vspscc
90 | *.vssscc
91 | .builds
92 | *.pidb
93 | *.svclog
94 | *.scc
95 |
96 | # Chutzpah Test files
97 | _Chutzpah*
98 |
99 | # Visual C++ cache files
100 | ipch/
101 | *.aps
102 | *.ncb
103 | *.opendb
104 | *.opensdf
105 | *.sdf
106 | *.cachefile
107 | *.VC.db
108 | *.VC.VC.opendb
109 |
110 | # Visual Studio profiler
111 | *.psess
112 | *.vsp
113 | *.vspx
114 | *.sap
115 |
116 | # Visual Studio Trace Files
117 | *.e2e
118 |
119 | # TFS 2012 Local Workspace
120 | $tf/
121 |
122 | # Guidance Automation Toolkit
123 | *.gpState
124 |
125 | # ReSharper is a .NET coding add-in
126 | _ReSharper*/
127 | *.[Rr]e[Ss]harper
128 | *.DotSettings.user
129 |
130 | # TeamCity is a build add-in
131 | _TeamCity*
132 |
133 | # DotCover is a Code Coverage Tool
134 | *.dotCover
135 |
136 | # AxoCover is a Code Coverage Tool
137 | .axoCover/*
138 | !.axoCover/settings.json
139 |
140 | # Visual Studio code coverage results
141 | *.coverage
142 | *.coveragexml
143 |
144 | # NCrunch
145 | _NCrunch_*
146 | .*crunch*.local.xml
147 | nCrunchTemp_*
148 |
149 | # MightyMoose
150 | *.mm.*
151 | AutoTest.Net/
152 |
153 | # Web workbench (sass)
154 | .sass-cache/
155 |
156 | # Installshield output folder
157 | [Ee]xpress/
158 |
159 | # DocProject is a documentation generator add-in
160 | DocProject/buildhelp/
161 | DocProject/Help/*.HxT
162 | DocProject/Help/*.HxC
163 | DocProject/Help/*.hhc
164 | DocProject/Help/*.hhk
165 | DocProject/Help/*.hhp
166 | DocProject/Help/Html2
167 | DocProject/Help/html
168 |
169 | # Click-Once directory
170 | publish/
171 |
172 | # Publish Web Output
173 | *.[Pp]ublish.xml
174 | *.azurePubxml
175 | # Note: Comment the next line if you want to checkin your web deploy settings,
176 | # but database connection strings (with potential passwords) will be unencrypted
177 | *.pubxml
178 | *.publishproj
179 |
180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
181 | # checkin your Azure Web App publish settings, but sensitive information contained
182 | # in these scripts will be unencrypted
183 | PublishScripts/
184 |
185 | # NuGet Packages
186 | *.nupkg
187 | # NuGet Symbol Packages
188 | *.snupkg
189 | # The packages folder can be ignored because of Package Restore
190 | **/[Pp]ackages/*
191 | # except build/, which is used as an MSBuild target.
192 | !**/[Pp]ackages/build/
193 | # Uncomment if necessary however generally it will be regenerated when needed
194 | #!**/[Pp]ackages/repositories.config
195 | # NuGet v3's project.json files produces more ignorable files
196 | *.nuget.props
197 | *.nuget.targets
198 |
199 | # Microsoft Azure Build Output
200 | csx/
201 | *.build.csdef
202 |
203 | # Microsoft Azure Emulator
204 | ecf/
205 | rcf/
206 |
207 | # Windows Store app package directories and files
208 | AppPackages/
209 | BundleArtifacts/
210 | Package.StoreAssociation.xml
211 | _pkginfo.txt
212 | *.appx
213 | *.appxbundle
214 | *.appxupload
215 |
216 | # Visual Studio cache files
217 | # files ending in .cache can be ignored
218 | *.[Cc]ache
219 | # but keep track of directories ending in .cache
220 | !?*.[Cc]ache/
221 |
222 | # Others
223 | ClientBin/
224 | ~$*
225 | *~
226 | *.dbmdl
227 | *.dbproj.schemaview
228 | *.jfm
229 | *.pfx
230 | *.publishsettings
231 | orleans.codegen.cs
232 |
233 | # Including strong name files can present a security risk
234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
235 | #*.snk
236 |
237 | # Since there are multiple workflows, uncomment next line to ignore bower_components
238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
239 | #bower_components/
240 |
241 | # RIA/Silverlight projects
242 | Generated_Code/
243 |
244 | # Backup & report files from converting an old project file
245 | # to a newer Visual Studio version. Backup files are not needed,
246 | # because we have git ;-)
247 | _UpgradeReport_Files/
248 | Backup*/
249 | UpgradeLog*.XML
250 | UpgradeLog*.htm
251 | ServiceFabricBackup/
252 | *.rptproj.bak
253 |
254 | # SQL Server files
255 | *.mdf
256 | *.ldf
257 | *.ndf
258 |
259 | # Business Intelligence projects
260 | *.rdl.data
261 | *.bim.layout
262 | *.bim_*.settings
263 | *.rptproj.rsuser
264 | *- [Bb]ackup.rdl
265 | *- [Bb]ackup ([0-9]).rdl
266 | *- [Bb]ackup ([0-9][0-9]).rdl
267 |
268 | # Microsoft Fakes
269 | FakesAssemblies/
270 |
271 | # GhostDoc plugin setting file
272 | *.GhostDoc.xml
273 |
274 | # Node.js Tools for Visual Studio
275 | .ntvs_analysis.dat
276 | node_modules/
277 |
278 | # Visual Studio 6 build log
279 | *.plg
280 |
281 | # Visual Studio 6 workspace options file
282 | *.opt
283 |
284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
285 | *.vbw
286 |
287 | # Visual Studio LightSwitch build output
288 | **/*.HTMLClient/GeneratedArtifacts
289 | **/*.DesktopClient/GeneratedArtifacts
290 | **/*.DesktopClient/ModelManifest.xml
291 | **/*.Server/GeneratedArtifacts
292 | **/*.Server/ModelManifest.xml
293 | _Pvt_Extensions
294 |
295 | # Paket dependency manager
296 | .paket/paket.exe
297 | paket-files/
298 |
299 | # FAKE - F# Make
300 | .fake/
301 |
302 | # CodeRush personal settings
303 | .cr/personal
304 |
305 | # Python Tools for Visual Studio (PTVS)
306 | __pycache__/
307 | *.pyc
308 |
309 | # Cake - Uncomment if you are using it
310 | # tools/**
311 | # !tools/packages.config
312 |
313 | # Tabs Studio
314 | *.tss
315 |
316 | # Telerik's JustMock configuration file
317 | *.jmconfig
318 |
319 | # BizTalk build output
320 | *.btp.cs
321 | *.btm.cs
322 | *.odx.cs
323 | *.xsd.cs
324 |
325 | # OpenCover UI analysis results
326 | OpenCover/
327 |
328 | # Azure Stream Analytics local run output
329 | ASALocalRun/
330 |
331 | # MSBuild Binary and Structured Log
332 | *.binlog
333 |
334 | # NVidia Nsight GPU debugger configuration file
335 | *.nvuser
336 |
337 | # MFractors (Xamarin productivity tool) working folder
338 | .mfractor/
339 |
340 | # Local History for Visual Studio
341 | .localhistory/
342 |
343 | # BeatPulse healthcheck temp database
344 | healthchecksdb
345 |
346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
347 | MigrationBackup/
348 |
349 | # Ionide (cross platform F# VS Code tools) working folder
350 | .ionide/
351 |
352 | # Ignore all files in the WebResources folder & subfolders except xml files
353 | src/WebResources/**
354 | !src/WebResources/**/
355 | !src/WebResources/**/*.xml
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "sarif-viewer.connectToGithubCodeScanning": "off"
3 | }
--------------------------------------------------------------------------------
/HelloFusionDev.cdsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps
14 |
15 |
16 |
17 |
18 |
19 |
20 | f2711d27-9af9-47ef-8156-beb40ff1dc21
21 | v4.6.2
22 |
23 | net462
24 | PackageReference
25 | src
26 |
27 |
28 |
32 |
33 |
34 | Both
35 | false
36 | map.xml
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | PreserveNewest
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Marc Schweigert
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Sample Dataverse Solution showcasing using cdsproj as the driver of fusion development
2 |
3 | Fusion development is a term often used to describe bringing together low code and code first (aka pro code) technologies together when developing applications. The [Microsoft Power Platform](https://learn.microsoft.com/power-platform/) has both low code and code first extensibility. You can learn more about code first extensibility using the [Microsoft Power Platform developer documentation](https://learn.microsoft.com/power-platform/developer/). The mechanism for implementing Application Lifecycle Management (ALM) in Power Platform is called a [Solution](https://learn.microsoft.com/power-platform/alm/solution-concepts-alm). While fusion development is an often overloaded term, the sample Solution in this repo aims to share a Hello World example of fusion development grounded in source control being the source of truth. The source code was produced using the [Power Platform CLI](https://learn.microsoft.com/power-platform/developer/cli/introduction). In source control based ALM, the build process is what typically builds the source code into a deployable artifact. In Power Platform ALM, the Solution is the deployable artifact. The Power Platform CLI has a number of commands through [pac solution](https://learn.microsoft.com/power-platform/developer/cli/reference/solution) that enable source control based ALM for solutions through the `*.cdsproj` file. When using a `*.cdsproj` to drive the building of a Solution, you can achieve the "fusing" of low code and code first elements of your Solution by simply running `dotnet build`.
4 |
5 | ## This sample contains the following
6 |
7 | * Low code
8 | * Canvas app
9 | * Model driven app
10 | * Dataverse Table
11 | * Code first
12 | * PCF Component written using TypeScript and React
13 | * Dataverse plugin written using C#
14 | * JavaScript web resource written using TypeScript
15 |
16 | ## Getting started
17 |
18 | To understand how this sample was created, you can watch this walkthrough.
19 |
20 | [](https://www.youtube.com/watch?v=oupkW92xXns)
21 |
22 | To build the Solution, you can do the following. Since this Solution usings .NET Framework 4.6.2 for the Dataverse plugin assembly, this works on Windows only.
23 |
24 | 1. Install [Power Platform CLI](https://learn.microsoft.com/power-platform/developer/cli/introduction?tabs=windows#install-microsoft-power-platform-cli) & [.NET SDK](https://dotnet.microsoft.com/en-us/download).
25 | 1. Clone the repo or download the zip
26 |
27 | 
28 |
29 | 1. After acquiring the code
30 |
31 | ```
32 | cd HelloFusionDev
33 | cd webresource-src
34 | npm install
35 | cd ..
36 | dotnet build
37 | ```
38 |
39 | In the `bin/debug` folder, you will have managed and unmanaged versions of the Solution. The web resource in the Solution will not be minified and will have source maps. If you run `dotnet build -c release`, the Solutions will have optmized web resources in the `bin/release` folder.
40 |
41 | Thanks to [@scottdurow](https://twitter.com/scottdurow) for his awesome (free) course [Building JavaScript Web Resources using TypeScript](https://learn.develop1.net/courses/building-javascript-web-resources-using-typescript/dashboard) for the TypeScript inspiration.
42 |
--------------------------------------------------------------------------------
/clone-or-download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devkeydet/HelloFusionDev/e667f082ffc59d19a9a36532e68d7b3bcf462b03/clone-or-download.png
--------------------------------------------------------------------------------
/map.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": [
7 | "eslint:recommended",
8 | "plugin:react/recommended"
9 | ],
10 | "globals": {
11 | "ComponentFramework": true
12 | },
13 | "parser": "@typescript-eslint/parser",
14 | "parserOptions": {
15 | "ecmaVersion": 12,
16 | "sourceType": "module"
17 | },
18 | "plugins": [
19 | "@microsoft/power-apps",
20 | "@typescript-eslint"
21 | ],
22 | "rules": {
23 | "no-unused-vars": "off"
24 | },
25 | "settings": {
26 | "react": {
27 | "version": "detect"
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # generated directory
7 | **/generated
8 |
9 | # output directory
10 | /out
11 |
12 | # msbuild output directories
13 | /bin
14 | /obj
15 |
16 | # MSBuild Binary and Structured Log
17 | *.binlog
18 |
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/HelloPCF.pcfproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps
5 |
6 |
7 |
8 |
9 |
10 |
11 | HelloPCF
12 | dc79cf0c-f5bb-4a00-a442-f9e0d6c4c875
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 |
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/HelloPCF/ControlManifest.Input.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
19 |
20 |
21 |
22 |
33 |
34 |
35 |
36 |
37 |
41 |
42 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/HelloPCF/HelloWorld.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { Label } from '@fluentui/react';
3 |
4 | export interface IHelloWorldProps {
5 | name?: string;
6 | }
7 |
8 | export class HelloWorld extends React.Component {
9 | public render(): React.ReactNode {
10 | return (
11 |
14 | )
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/HelloPCF/index.ts:
--------------------------------------------------------------------------------
1 | import { IInputs, IOutputs } from "./generated/ManifestTypes";
2 | import { HelloWorld, IHelloWorldProps } from "./HelloWorld";
3 | import * as React from "react";
4 |
5 | export class HelloPCF implements ComponentFramework.ReactControl {
6 | private theComponent: ComponentFramework.ReactControl;
7 | private notifyOutputChanged: () => void;
8 |
9 | /**
10 | * Empty constructor.
11 | */
12 | constructor() { }
13 |
14 | /**
15 | * Used to initialize the control instance. Controls can kick off remote server calls and other initialization actions here.
16 | * Data-set values are not initialized here, use updateView.
17 | * @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.
18 | * @param notifyOutputChanged A callback method to alert the framework that the control has new outputs ready to be retrieved asynchronously.
19 | * @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.
20 | */
21 | public init(
22 | context: ComponentFramework.Context,
23 | notifyOutputChanged: () => void,
24 | state: ComponentFramework.Dictionary
25 | ): void {
26 | this.notifyOutputChanged = notifyOutputChanged;
27 | }
28 |
29 | /**
30 | * 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.
31 | * @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
32 | * @returns ReactElement root react element for the control
33 | */
34 | public updateView(context: ComponentFramework.Context): React.ReactElement {
35 | const props: IHelloWorldProps = { name: 'Hello, World!' };
36 | return React.createElement(
37 | HelloWorld, props
38 | );
39 | }
40 |
41 | /**
42 | * It is called by the framework prior to a control receiving new data.
43 | * @returns an object based on nomenclature defined in manifest, expecting object[s] for property marked as “bound” or “output”
44 | */
45 | public getOutputs(): IOutputs {
46 | return { };
47 | }
48 |
49 | /**
50 | * Called when the control is to be removed from the DOM tree. Controls should use this call for cleanup.
51 | * i.e. cancelling any pending remote calls, removing listeners, etc.
52 | */
53 | public destroy(): void {
54 | // Add code to cleanup control if necessary
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/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 | "start:watch": "pcf-scripts start watch",
13 | "refreshTypes": "pcf-scripts refreshTypes"
14 | },
15 | "dependencies": {
16 | "react": "16.8.6",
17 | "@fluentui/react": "8.29.0",
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 | "@types/react": "^16.8",
25 | "@types/react-dom": "^16.8",
26 | "react": "^16.8",
27 | "@typescript-eslint/eslint-plugin": "^5.39.0",
28 | "@typescript-eslint/parser": "^5.39.0",
29 | "eslint": "^8.24.0",
30 | "eslint-plugin-import": "^2.26.0",
31 | "eslint-plugin-node": "^11.1.0",
32 | "eslint-plugin-promise": "^6.0.1",
33 | "eslint-plugin-react": "^7.31.8",
34 | "pcf-scripts": "^1",
35 | "pcf-start": "^1",
36 | "typescript": "^4.8.4"
37 | }
38 | }
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/pcfconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "outDir": "./out/controls"
3 | }
--------------------------------------------------------------------------------
/pcf-src/HelloPCF/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./node_modules/pcf-scripts/tsconfig_base.json",
3 | "compilerOptions": {
4 | "typeRoots": ["node_modules/@types"],
5 | }
6 | }
--------------------------------------------------------------------------------
/plugin-src/HelloPluginAssembly/.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 | # vs intermediate directory
8 | /.vs
9 |
10 | # MSBuild Binary and Structured Log
11 | *.binlog
12 |
--------------------------------------------------------------------------------
/plugin-src/HelloPluginAssembly/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "tasks": [
4 | {
5 | "label": "build",
6 | "command": "dotnet",
7 | "type": "process",
8 | "args": [
9 | "build",
10 | "${workspaceFolder}/HelloPluginAssembly.csproj",
11 | "/property:GenerateFullPaths=true",
12 | "/consoleloggerparameters:NoSummary"
13 | ],
14 | "problemMatcher": "$msCompile"
15 | },
16 | {
17 | "label": "watch",
18 | "command": "dotnet",
19 | "type": "process",
20 | "args": [
21 | "watch",
22 | "run",
23 | "${workspaceFolder}/HelloPluginAssembly.csproj",
24 | "/property:GenerateFullPaths=true",
25 | "/consoleloggerparameters:NoSummary"
26 | ],
27 | "problemMatcher": "$msCompile"
28 | }
29 | ]
30 | }
--------------------------------------------------------------------------------
/plugin-src/HelloPluginAssembly/HelloPluginAssembly.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net462
5 | $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps
6 | true
7 | HelloPluginAssembly.snk
8 | 1.0.0.0
9 | 1.0.0.0
10 | {4C25E9B5-9FA6-436c-8E19-B395D2A65FAF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
11 |
12 |
13 |
14 |
15 |
19 |
20 | HelloPluginAssembly
21 | $(FileVersion)
22 | marcsc
23 | MyCompany
24 | This is a sample nuget package which contains a Dataverse plugin and its runtime dependencies like Newtonsoft.Json
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/plugin-src/HelloPluginAssembly/HelloPluginAssembly.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devkeydet/HelloFusionDev/e667f082ffc59d19a9a36532e68d7b3bcf462b03/plugin-src/HelloPluginAssembly/HelloPluginAssembly.snk
--------------------------------------------------------------------------------
/plugin-src/HelloPluginAssembly/Plugin1.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Xrm.Sdk;
2 | using System;
3 |
4 | namespace HelloPluginAssembly
5 | {
6 | ///
7 | /// Plugin development guide: https://docs.microsoft.com/powerapps/developer/common-data-service/plug-ins
8 | /// Best practices and guidance: https://docs.microsoft.com/powerapps/developer/common-data-service/best-practices/business-logic/
9 | ///
10 | public class Plugin1 : PluginBase
11 | {
12 | public Plugin1(string unsecureConfiguration, string secureConfiguration)
13 | : base(typeof(Plugin1))
14 | {
15 | // TODO: Implement your custom configuration handling
16 | // https://docs.microsoft.com/powerapps/developer/common-data-service/register-plug-in#set-configuration-data
17 | }
18 |
19 | // Entry point for custom business logic execution
20 | protected override void ExecuteDataversePlugin(ILocalPluginContext localPluginContext)
21 | {
22 | if (localPluginContext == null)
23 | {
24 | throw new ArgumentNullException(nameof(localPluginContext));
25 | }
26 |
27 | var context = localPluginContext.PluginExecutionContext;
28 |
29 | // TODO: Implement your custom business logic
30 |
31 | // Check for the entity on which the plugin would be registered
32 | //if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
33 | {
34 | var entity = (Entity)context.InputParameters["Target"];
35 |
36 | // Check for entity name on which this plugin would be registered
37 | if (entity.LogicalName == "account")
38 | {
39 | entity["name"] = entity["name"] + " - Updated by plugin";
40 | }
41 | }
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/plugin-src/HelloPluginAssembly/PluginBase.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Xrm.Sdk;
2 | using Microsoft.Xrm.Sdk.Extensions;
3 | using Microsoft.Xrm.Sdk.PluginTelemetry;
4 | using System;
5 | using System.Runtime.CompilerServices;
6 | using System.ServiceModel;
7 |
8 | namespace HelloPluginAssembly
9 | {
10 | ///
11 | /// Base class for all plug-in classes.
12 | /// Plugin development guide: https://docs.microsoft.com/powerapps/developer/common-data-service/plug-ins
13 | /// Best practices and guidance: https://docs.microsoft.com/powerapps/developer/common-data-service/best-practices/business-logic/
14 | ///
15 | public abstract class PluginBase : IPlugin
16 | {
17 | protected string PluginClassName { get; }
18 |
19 | ///
20 | /// Initializes a new instance of the class.
21 | ///
22 | /// The of the plugin class.
23 | internal PluginBase(Type pluginClassName)
24 | {
25 | PluginClassName = pluginClassName.ToString();
26 | }
27 |
28 | ///
29 | /// Main entry point for he business logic that the plug-in is to execute.
30 | ///
31 | /// The service provider.
32 | ///
33 | ///
34 | [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", Justification = "Execute")]
35 | public void Execute(IServiceProvider serviceProvider)
36 | {
37 | if (serviceProvider == null)
38 | {
39 | throw new InvalidPluginExecutionException(nameof(serviceProvider));
40 | }
41 |
42 | // Construct the local plug-in context.
43 | var localPluginContext = new LocalPluginContext(serviceProvider);
44 |
45 | localPluginContext.Trace($"Entered {PluginClassName}.Execute() " +
46 | $"Correlation Id: {localPluginContext.PluginExecutionContext.CorrelationId}, " +
47 | $"Initiating User: {localPluginContext.PluginExecutionContext.InitiatingUserId}");
48 |
49 | try
50 | {
51 | // Invoke the custom implementation
52 | ExecuteDataversePlugin(localPluginContext);
53 |
54 | // Now exit - if the derived plugin has incorrectly registered overlapping event registrations, guard against multiple executions.
55 | return;
56 | }
57 | catch (FaultException orgServiceFault)
58 | {
59 | localPluginContext.Trace($"Exception: {orgServiceFault.ToString()}");
60 |
61 | throw new InvalidPluginExecutionException($"OrganizationServiceFault: {orgServiceFault.Message}", orgServiceFault);
62 | }
63 | finally
64 | {
65 | localPluginContext.Trace($"Exiting {PluginClassName}.Execute()");
66 | }
67 | }
68 |
69 | ///
70 | /// Placeholder for a custom plug-in implementation.
71 | ///
72 | /// Context for the current plug-in.
73 | protected virtual void ExecuteDataversePlugin(ILocalPluginContext localPluginContext)
74 | {
75 | // Do nothing.
76 | }
77 | }
78 |
79 | ///
80 | /// This interface provides an abstraction on top of IServiceProvider for commonly used PowerPlatform Dataverse Plugin development constructs
81 | ///
82 | public interface ILocalPluginContext
83 | {
84 | ///
85 | /// The PowerPlatform Dataverse organization service for the Current Executing user.
86 | ///
87 | IOrganizationService InitiatingUserService { get; }
88 |
89 | ///
90 | /// The PowerPlatform Dataverse organization service for the Account that was registered to run this plugin, This could be the same user as InitiatingUserService.
91 | ///
92 | IOrganizationService PluginUserService { get; }
93 |
94 | ///
95 | /// IPluginExecutionContext contains information that describes the run-time environment in which the plug-in executes, information related to the execution pipeline, and entity business information.
96 | ///
97 | IPluginExecutionContext PluginExecutionContext { get; }
98 |
99 | ///
100 | /// Synchronous registered plug-ins can post the execution context to the Microsoft Azure Service Bus.
101 | /// It is through this notification service that synchronous plug-ins can send brokered messages to the Microsoft Azure Service Bus.
102 | ///
103 | IServiceEndpointNotificationService NotificationService { get; }
104 |
105 | ///
106 | /// Provides logging run-time trace information for plug-ins.
107 | ///
108 | ITracingService TracingService { get; }
109 |
110 | ///
111 | /// General Service Provide for things not accounted for in the base class.
112 | ///
113 | IServiceProvider ServiceProvider { get; }
114 |
115 | ///
116 | /// OrganizationService Factory for creating connection for other then current user and system.
117 | ///
118 | IOrganizationServiceFactory OrgSvcFactory { get; }
119 |
120 | ///
121 | /// ILogger for this plugin.
122 | ///
123 | ILogger Logger { get; }
124 |
125 | ///
126 | /// Writes a trace message to the trace log.
127 | ///
128 | /// Message name to trace.
129 | void Trace(string message, [CallerMemberName] string method = null);
130 | }
131 |
132 | ///
133 | /// Plug-in context object.
134 | ///
135 | public class LocalPluginContext : ILocalPluginContext
136 | {
137 | ///
138 | /// The PowerPlatform Dataverse organization service for the Current Executing user.
139 | ///
140 | public IOrganizationService InitiatingUserService { get; }
141 |
142 | ///
143 | /// The PowerPlatform Dataverse organization service for the Account that was registered to run this plugin, This could be the same user as InitiatingUserService.
144 | ///
145 | public IOrganizationService PluginUserService { get; }
146 |
147 | ///
148 | /// IPluginExecutionContext contains information that describes the run-time environment in which the plug-in executes, information related to the execution pipeline, and entity business information.
149 | ///
150 | public IPluginExecutionContext PluginExecutionContext { get; }
151 |
152 | ///
153 | /// Synchronous registered plug-ins can post the execution context to the Microsoft Azure Service Bus.
154 | /// It is through this notification service that synchronous plug-ins can send brokered messages to the Microsoft Azure Service Bus.
155 | ///
156 | public IServiceEndpointNotificationService NotificationService { get; }
157 |
158 | ///
159 | /// Provides logging run-time trace information for plug-ins.
160 | ///
161 | public ITracingService TracingService { get; }
162 |
163 | ///
164 | /// General Service Provider for things not accounted for in the base class.
165 | ///
166 | public IServiceProvider ServiceProvider { get; }
167 |
168 | ///
169 | /// OrganizationService Factory for creating connection for other then current user and system.
170 | ///
171 | public IOrganizationServiceFactory OrgSvcFactory { get; }
172 |
173 | ///
174 | /// ILogger for this plugin.
175 | ///
176 | public ILogger Logger { get; }
177 |
178 | ///
179 | /// Helper object that stores the services available in this plug-in.
180 | ///
181 | ///
182 | public LocalPluginContext(IServiceProvider serviceProvider)
183 | {
184 | if (serviceProvider == null)
185 | {
186 | throw new InvalidPluginExecutionException(nameof(serviceProvider));
187 | }
188 |
189 | ServiceProvider = serviceProvider;
190 |
191 | Logger = serviceProvider.Get();
192 |
193 | PluginExecutionContext = serviceProvider.Get();
194 |
195 | TracingService = new LocalTracingService(serviceProvider);
196 |
197 | NotificationService = serviceProvider.Get();
198 |
199 | OrgSvcFactory = serviceProvider.Get();
200 |
201 | PluginUserService = serviceProvider.GetOrganizationService(PluginExecutionContext.UserId); // User that the plugin is registered to run as, Could be same as current user.
202 |
203 | InitiatingUserService = serviceProvider.GetOrganizationService(PluginExecutionContext.InitiatingUserId); //User who's action called the plugin.
204 |
205 | }
206 |
207 | ///
208 | /// Writes a trace message to the trace log.
209 | ///
210 | /// Message name to trace.
211 | public void Trace(string message, [CallerMemberName] string method = null)
212 | {
213 | if (string.IsNullOrWhiteSpace(message) || TracingService == null)
214 | {
215 | return;
216 | }
217 |
218 | if (method != null)
219 | TracingService.Trace($"[{method}] - {message}");
220 | else
221 | TracingService.Trace($"{message}");
222 | }
223 | }
224 |
225 | ///
226 | /// Specialized ITracingService implementation that prefixes all traced messages with a time delta for Plugin performance diagnostics
227 | ///
228 | public class LocalTracingService : ITracingService
229 | {
230 | private readonly ITracingService _tracingService;
231 |
232 | private DateTime _previousTraceTime;
233 |
234 | public LocalTracingService(IServiceProvider serviceProvider)
235 | {
236 | DateTime utcNow = DateTime.UtcNow;
237 |
238 | var context = (IExecutionContext)serviceProvider.GetService(typeof(IExecutionContext));
239 |
240 | DateTime initialTimestamp = context.OperationCreatedOn;
241 |
242 | if (initialTimestamp > utcNow)
243 | {
244 | initialTimestamp = utcNow;
245 | }
246 |
247 | _tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
248 |
249 | _previousTraceTime = initialTimestamp;
250 | }
251 |
252 | public void Trace(string message, params object[] args)
253 | {
254 | var utcNow = DateTime.UtcNow;
255 |
256 | // The duration since the last trace.
257 | var deltaMilliseconds = utcNow.Subtract(_previousTraceTime).TotalMilliseconds;
258 |
259 | try
260 | {
261 |
262 | if (args == null || args.Length == 0)
263 | _tracingService.Trace($"[+{deltaMilliseconds:N0}ms] - {message}");
264 | else
265 | _tracingService.Trace($"[+{deltaMilliseconds:N0}ms] - {string.Format(message, args)}");
266 | }
267 | catch (FormatException ex)
268 | {
269 | throw new InvalidPluginExecutionException($"Failed to write trace message due to error {ex.Message}", ex);
270 | }
271 | _previousTraceTime = utcNow;
272 | }
273 | }
274 | }
275 |
--------------------------------------------------------------------------------
/src/AppModuleSiteMaps/dkdt_HelloModelDrivenApp/AppModuleSiteMap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | dkdt_HelloModelDrivenApp
4 | False
5 | False
6 | False
7 | False
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/AppModuleSiteMaps/dkdt_HelloModelDrivenApp/AppModuleSiteMap_managed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | dkdt_HelloModelDrivenApp
4 | False
5 | False
6 | False
7 | False
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/AppModules/dkdt_HelloModelDrivenApp/AppModule.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | dkdt_HelloModelDrivenApp
4 | 1.0.0.0
5 | 953b9fac-1e5e-e611-80d6-00155ded156f
6 |
7 | 0
8 | 1
9 | 1
10 | 4
11 | 0
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | 1
26 | 1
27 |
28 |
29 | 1
30 | 1
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/AppModules/dkdt_HelloModelDrivenApp/AppModule_managed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | dkdt_HelloModelDrivenApp
4 | 1.0.0.0
5 | 953b9fac-1e5e-e611-80d6-00155ded156f
6 |
7 | 0
8 | 1
9 | 1
10 | 4
11 | 0
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | 1
26 | 1
27 |
28 |
29 | 1
30 | 1
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/CanvasApps/dkdt_hellocanvasapp_71e90.meta.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | dkdt_hellocanvasapp_71e90
4 | 2024-03-12T00:47:20Z
5 | Ready
6 | 3.24024.12.0
7 | 3.24024.12.0
8 | {"primaryDeviceWidth":"1366","primaryDeviceHeight":"768","supportsPortrait":"true","supportsLandscape":"true","primaryFormFactor":"Tablet","showStatusBar":"false","publisherVersion":"3.24024.12","minimumRequiredApiVersion":"2.2.0","hasComponent":"false","hasUnlockedComponent":"false","isUnifiedRootApp":"false","offlineLargeFilesSupport":"false","sienaVersion":"20240312T004422Z-3.24024.12.0"}
9 | 0
10 |
11 | RGBA(0,176,240,1)
12 | HelloCanvasApp
13 |
14 |
15 |
16 | []
17 | {}
18 | {}
19 | []
20 | []
21 | 1
22 | 0
23 | 0
24 | 0
25 |
26 | 1.0
27 | {"cdsdependencies":[]}
28 | 1
29 | /CanvasApps/dkdt_hellocanvasapp_71e90_BackgroundImageUri
30 | /CanvasApps/dkdt_hellocanvasapp_71e90_DocumentUri.msapp
31 |
32 | /CanvasApps/dkdt_hellocanvasapp_71e90_AdditionalUris0_identity.json
33 |
34 |
--------------------------------------------------------------------------------
/src/CanvasApps/dkdt_hellocanvasapp_71e90_AdditionalUris0_identity.json:
--------------------------------------------------------------------------------
1 | {"__Version":"0.1","App":"1211ee24-9791-4574-a001-4a2473f63de9","Test_7F478737223C4B69":"c5323c3d-0563-43ba-a7da-c25a5f1d9259","Host":"979e8fdf-1c8b-46ab-8267-2ee6e2f2bd6b","MainScreen":"1a979525-b0c9-4e50-ba05-c2d7fa06504b","HelloPCF1":"a5faa353-fdec-4dd0-8380-935b76a97dcd"}
--------------------------------------------------------------------------------
/src/CanvasApps/dkdt_hellocanvasapp_71e90_BackgroundImageUri:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devkeydet/HelloFusionDev/e667f082ffc59d19a9a36532e68d7b3bcf462b03/src/CanvasApps/dkdt_hellocanvasapp_71e90_BackgroundImageUri
--------------------------------------------------------------------------------
/src/CanvasApps/dkdt_hellocanvasapp_71e90_DocumentUri.msapp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devkeydet/HelloFusionDev/e667f082ffc59d19a9a36532e68d7b3bcf462b03/src/CanvasApps/dkdt_hellocanvasapp_71e90_DocumentUri.msapp
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/CanvasManifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "FormatVersion": "0.24",
3 | "Header": {
4 | "AnalysisOptions": {
5 | "DataflowAnalysisEnabled": false,
6 | "DataflowAnalysisFlagStateToggledByUser": false
7 | },
8 | "DocVersion": "1.337",
9 | "MinVersionToLoad": "1.331",
10 | "MSAppStructureVersion": "2.0"
11 | },
12 | "Properties": {
13 | "AppCreationSource": "AppFromScratch",
14 | "AppDescription": "",
15 | "AppPreviewFlagsMap": {
16 | "aibuilderserviceenrollment": false,
17 | "allowmultiplescreensincanvaspages": false,
18 | "appinsightserrortracing": false,
19 | "appinstrumentationcorrelationtracing": false,
20 | "autocreateenvironmentvariables": false,
21 | "behaviorpropertyui": false,
22 | "blockmovingcontrol": true,
23 | "cdsdataformatting": false,
24 | "classiccontrols": false,
25 | "consistentreturnschemafortabularfunctions": true,
26 | "copyandmerge": false,
27 | "dataflowanalysisenabled": false,
28 | "datatablev2control": true,
29 | "dataverseactionsenabled": true,
30 | "delaycontrolrendering": true,
31 | "delayloadscreens": true,
32 | "disablecdsfileandlargeimage": false,
33 | "disableruntimepolicies": false,
34 | "dynamicschema": false,
35 | "enableappembeddingux": false,
36 | "enablechatbotfeature": true,
37 | "enablecomponentnamemaps": false,
38 | "enablecomponentscopeoldbehavior": false,
39 | "enablecopilotanswercontrol": true,
40 | "enablecopilotcontrol": true,
41 | "enabledataverseoffline": false,
42 | "enableeditcacherefreshfrequency": false,
43 | "enableeditinmcs": false,
44 | "enableexcelonlinebusinessv2connector": true,
45 | "enableexperimentaldataverseoffline": true,
46 | "enableideaspanel": true,
47 | "enablelargefilesindataverseoffline": false,
48 | "enablelegacybarcodescanner": false,
49 | "enableonstart": true,
50 | "enableonstartnavigate": false,
51 | "enablepcfmoderndatasets": true,
52 | "enablerowscopeonetonexpand": false,
53 | "enablerpawarecomponentdependency": true,
54 | "enablerulespanel": false,
55 | "enablesaveloadcleardataonweb": true,
56 | "enableupdateifdelegation": false,
57 | "errorhandling": true,
58 | "expandedsavedatasupport": true,
59 | "exportimportcomponents2": true,
60 | "externalmessage": false,
61 | "fluentv9controls": false,
62 | "fluentv9controlspreview": false,
63 | "formuladataprefetch": true,
64 | "formularepair": false,
65 | "generatedebugpublishedapp": false,
66 | "herocontrols": false,
67 | "improvedmediacapture": true,
68 | "improvedtabstopbehavior": false,
69 | "isemptyrequirestableargument": true,
70 | "keeprecentscreensloaded": false,
71 | "longlivingcache": false,
72 | "mobilenativerendering": false,
73 | "nativecdsexperimental": true,
74 | "onegrid": false,
75 | "optimizedforteamsmeeting": false,
76 | "packagemodernruntime": false,
77 | "parallelcodegen": false,
78 | "pdffunction": false,
79 | "powerfxdecimal": false,
80 | "powerfxv1": false,
81 | "primaryoutputpropertycoerciondeprecated": true,
82 | "projectionmapping": true,
83 | "reactformulabar": true,
84 | "reliableconcurrent": true,
85 | "reservedkeywords": false,
86 | "reverttooldpowerautomate": false,
87 | "rtlinstudiopreview": false,
88 | "rtlsupport": false,
89 | "showclassicthemes": false,
90 | "smartemaildatacard": false,
91 | "sqlstoredprocedureenabled": false,
92 | "supportcolumnnamesasidentifiers": false,
93 | "tabledoesntwraprecords": true,
94 | "usedisplaynamemetadata": true,
95 | "useenforcesavedatalimits": true,
96 | "useexperimentalcdsconnector": true,
97 | "useexperimentalsqlconnector": true,
98 | "useguiddatatypes": true,
99 | "usenonblockingonstartrule": true,
100 | "userdefinedfunctions": false,
101 | "webbarcodescanner": false,
102 | "zeroalltabindexes": false
103 | },
104 | "Author": "",
105 | "BindingErrorCount": 0,
106 | "ContainsThirdPartyPcfControls": true,
107 | "DefaultConnectedDataSourceMaxGetRowsCount": 500,
108 | "DocumentAppType": "DesktopOrTablet",
109 | "DocumentLayoutHeight": 768,
110 | "DocumentLayoutLockOrientation": false,
111 | "DocumentLayoutMaintainAspectRatio": true,
112 | "DocumentLayoutOrientation": "landscape",
113 | "DocumentLayoutScaleToFit": true,
114 | "DocumentLayoutWidth": 1366,
115 | "DocumentType": "App",
116 | "EnableInstrumentation": false,
117 | "FileID": "08b4a9d9-47c8-4821-a9db-302e7e3eaf3b",
118 | "Id": "08b4a9d9-47c8-4821-a9db-302e7e3eaf3b",
119 | "InstrumentationKey": "",
120 | "ManualOfflineProfileId": "",
121 | "Name": "HelloCanvasApp",
122 | "OriginatingVersion": "1.337",
123 | "ParserErrorCount": 0,
124 | "ShowStatusBar": false
125 | },
126 | "PublishInfo": {
127 | "AppName": "HelloCanvasApp",
128 | "BackgroundColor": "RGBA(0,176,240,1)",
129 | "IconColor": "RGBA(255,255,255,1)",
130 | "IconName": "Edit",
131 | "LogoFileName": "",
132 | "PublishDataLocally": false,
133 | "PublishResourcesLocally": false,
134 | "PublishTarget": "player",
135 | "UserLocale": "en-US"
136 | },
137 | "ScreenOrder": [
138 | "MainScreen"
139 | ]
140 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/ComponentReferences.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Connections/Connections.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Connections/default.cds.json:
--------------------------------------------------------------------------------
1 | {
2 | "components": [
3 | {
4 | "Capabilities": {
5 | "PCFExternalServiceUsageAllowed": false
6 | },
7 | "ComponentName": "CustomControl",
8 | "Identifier": "dkdt_Devkeydet.HelloPCF",
9 | "IdentifierType": 0
10 | }
11 | ]
12 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/ControlTemplates.json:
--------------------------------------------------------------------------------
1 | {
2 | "appinfo": {
3 | "CustomGroupControlTemplateName": "",
4 | "FirstParty": true,
5 | "Id": "http://microsoft.com/appmagic/appinfo",
6 | "IsComponentTemplate": false,
7 | "IsCustomGroupControlTemplate": false,
8 | "IsPcfControl": false,
9 | "IsPremiumPcfControl": false,
10 | "IsWidgetTemplate": false,
11 | "LastModifiedTimestamp": "0",
12 | "Name": "appinfo",
13 | "OverridableProperties": {},
14 | "Version": "1.0"
15 | },
16 | "groupContainer": {
17 | "FirstParty": true,
18 | "Id": "http://microsoft.com/appmagic/groupContainer",
19 | "IsComponentTemplate": false,
20 | "IsPcfControl": false,
21 | "IsWidgetTemplate": false,
22 | "LastModifiedTimestamp": "0",
23 | "Name": "groupContainer",
24 | "Version": "1.0"
25 | },
26 | "HelloPCF": {
27 | "CustomGroupControlTemplateName": "",
28 | "FirstParty": false,
29 | "Id": "http://microsoft.com/appmagic/powercontrol/dkdt_Devkeydet.HelloPCF",
30 | "IsComponentTemplate": false,
31 | "IsCustomGroupControlTemplate": false,
32 | "IsPcfControl": true,
33 | "IsPremiumPcfControl": false,
34 | "IsWidgetTemplate": false,
35 | "LastModifiedTimestamp": "0",
36 | "Name": "dkdt_Devkeydet.HelloPCF",
37 | "OverridableProperties": {},
38 | "TemplateDisplayName": "HelloPCF",
39 | "Version": "0.0.1"
40 | },
41 | "Host": {
42 | "CustomGroupControlTemplateName": "",
43 | "FirstParty": true,
44 | "HostType": "Default",
45 | "Id": "http://microsoft.com/appmagic/hostcontrol",
46 | "IsComponentTemplate": false,
47 | "IsCustomGroupControlTemplate": false,
48 | "IsPcfControl": false,
49 | "IsPremiumPcfControl": false,
50 | "IsWidgetTemplate": false,
51 | "LastModifiedTimestamp": "0",
52 | "Name": "hostControl",
53 | "OverridableProperties": {},
54 | "Version": "1.6.0"
55 | },
56 | "screen": {
57 | "CustomGroupControlTemplateName": "",
58 | "FirstParty": true,
59 | "Id": "http://microsoft.com/appmagic/screen",
60 | "IsComponentTemplate": false,
61 | "IsCustomGroupControlTemplate": false,
62 | "IsPcfControl": false,
63 | "IsPremiumPcfControl": false,
64 | "IsWidgetTemplate": false,
65 | "LastModifiedTimestamp": "0",
66 | "Name": "screen",
67 | "OverridableProperties": {},
68 | "Version": "1.0"
69 | }
70 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Entropy/AppCheckerResult.sarif:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.4.json",
3 | "runs": [
4 | {
5 | "columnKind": "utf16CodeUnits",
6 | "invocations": [
7 | {
8 | "executionSuccessful": true
9 | }
10 | ],
11 | "results": [],
12 | "tool": {
13 | "driver": {
14 | "fullName": "PowerApps app checker",
15 | "name": "PowerApps app checker",
16 | "version": "1.337"
17 | }
18 | }
19 | }
20 | ],
21 | "version": "2.1.0"
22 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Entropy/Entropy.json:
--------------------------------------------------------------------------------
1 | {
2 | "ComponentIndexes": {},
3 | "ControlUniqueGuids": {},
4 | "ControlUniqueIds": {
5 | "App": 1,
6 | "HelloPCF1": 5,
7 | "Host": 3,
8 | "MainScreen": 4
9 | },
10 | "FunctionParamsInvariantScripts": {},
11 | "FunctionParamsInvariantScriptsOnInstances": {},
12 | "HeaderLastSavedDateTimeUTC": "03/12/2024 00:47:19",
13 | "IsLegacyComponentAllowGlobalScopeCase": false,
14 | "LocalConnectionIDReferences": {},
15 | "LocalDatabaseReferencesAsEmpty": false,
16 | "LocalResourceFileNames": {},
17 | "LocalResourceRootPaths": {},
18 | "OrderComponentMetadata": {},
19 | "OrderComponentTemplate": {},
20 | "OrderDataSource": {},
21 | "OrderGroupControls": {},
22 | "OrderPcfTemplate": {},
23 | "OrderTemplate": {},
24 | "OrderXMLTemplate": {},
25 | "OverridablePropertiesEntry": {
26 | "App": {},
27 | "HelloPCF1": {},
28 | "Host": {},
29 | "MainScreen": {}
30 | },
31 | "PCFDynamicSchemaForIRRetrievalEntry": {},
32 | "PCFTemplateEntry": {
33 | "HelloPCF1": {
34 | "CustomGroupControlTemplateName": "",
35 | "DynamicControlDefinitionJson": "{\"ControlNamespace\":\"Devkeydet\",\"ControlConstructor\":\"HelloPCF\",\"DisplayNameKey\":\"HelloPCF\",\"Resources\":\"[{\\\"Type\\\":0,\\\"Path\\\":\\\"/PCF/prop-types.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":1,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/PCF/react-fela.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":2,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/PCF/fela.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":3,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/PCF/fela-dom.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":4,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/ctrllib/common/js/container.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":5,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/ctrllib/PCFControls/js/PCFControlWrapper.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":6,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/ctrllib/PcfControlProxy/js/PcfControlProxy.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":7,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":3,\\\"Path\\\":\\\"{\\\\\\\"Id\\\\\\\":\\\\\\\"ManifestTemplate\\\\\\\",\\\\\\\"Data\\\\\\\":{\\\\\\\"ConstructorName\\\\\\\":\\\\\\\"Devkeydet.HelloPCF\\\\\\\",\\\\\\\"CustomControlId\\\\\\\":\\\\\\\"Devkeydet.HelloPCF\\\\\\\",\\\\\\\"IsVirtual\\\\\\\":true,\\\\\\\"Properties\\\\\\\":{\\\\\\\"Resources\\\\\\\":[{\\\\\\\"Name\\\\\\\":\\\\\\\"/PCF/prop-types.js\\\\\\\",\\\\\\\"LoadOrder\\\\\\\":1,\\\\\\\"Type\\\\\\\":0,\\\\\\\"LibraryName\\\\\\\":null},{\\\\\\\"Name\\\\\\\":\\\\\\\"/PCF/react-fela.js\\\\\\\",\\\\\\\"LoadOrder\\\\\\\":2,\\\\\\\"Type\\\\\\\":0,\\\\\\\"LibraryName\\\\\\\":null},{\\\\\\\"Name\\\\\\\":\\\\\\\"/PCF/fela.js\\\\\\\",\\\\\\\"LoadOrder\\\\\\\":3,\\\\\\\"Type\\\\\\\":0,\\\\\\\"LibraryName\\\\\\\":null},{\\\\\\\"Name\\\\\\\":\\\\\\\"/PCF/fela-dom.js\\\\\\\",\\\\\\\"LoadOrder\\\\\\\":4,\\\\\\\"Type\\\\\\\":0,\\\\\\\"LibraryName\\\\\\\":null},{\\\\\\\"Name\\\\\\\":\\\\\\\"/ctrllib/common/js/container.js\\\\\\\",\\\\\\\"LoadOrder\\\\\\\":5,\\\\\\\"Type\\\\\\\":0,\\\\\\\"LibraryName\\\\\\\":null},{\\\\\\\"Name\\\\\\\":\\\\\\\"/ctrllib/PCFControls/js/PCFControlWrapper.js\\\\\\\",\\\\\\\"LoadOrder\\\\\\\":6,\\\\\\\"Type\\\\\\\":0,\\\\\\\"LibraryName\\\\\\\":null},{\\\\\\\"Name\\\\\\\":\\\\\\\"/ctrllib/PcfControlProxy/js/PcfControlProxy.js\\\\\\\",\\\\\\\"LoadOrder\\\\\\\":7,\\\\\\\"Type\\\\\\\":0,\\\\\\\"LibraryName\\\\\\\":null}],\\\\\\\"GroupDefinitions\\\\\\\":null,\\\\\\\"DataSetDefinitions\\\\\\\":{},\\\\\\\"Properties\\\\\\\":{\\\\\\\"sampleProperty\\\\\\\":{\\\\\\\"Required\\\\\\\":true,\\\\\\\"Usage\\\\\\\":0,\\\\\\\"DefaultValue\\\\\\\":\\\\\\\"\\\\\\\"}},\\\\\\\"FeatureUsage\\\\\\\":null},\\\\\\\"Events\\\\\\\":null,\\\\\\\"CommonEvents\\\\\\\":null,\\\\\\\"DesignMap\\\\\\\":null,\\\\\\\"PropertyDependencies\\\\\\\":[],\\\\\\\"Children\\\\\\\":null}}\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":8,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":3,\\\"Path\\\":\\\"{\\\\\\\"Id\\\\\\\":\\\\\\\"ManifestPropertyTypes\\\\\\\",\\\\\\\"Data\\\\\\\":{\\\\\\\"Properties\\\\\\\":[{\\\\\\\"Name\\\\\\\":\\\\\\\"sampleProperty\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"SingleLine_Text\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"None\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":false},{\\\\\\\"Name\\\\\\\":\\\\\\\"PCFTeamsTheme\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"String\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"X\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"Number\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"Y\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"Number\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"Width\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"Number\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"Height\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"Number\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"Visible\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"Boolean\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"DisplayMode\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"DisplayMode\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"TabIndex\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"Number\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true},{\\\\\\\"Name\\\\\\\":\\\\\\\"Tooltip\\\\\\\",\\\\\\\"Type\\\\\\\":\\\\\\\"String\\\\\\\",\\\\\\\"ComplexType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"IsPrimary\\\\\\\":false,\\\\\\\"IsIncluded\\\\\\\":true}]}}\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":9,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":3,\\\"Path\\\":\\\"{\\\\\\\"Id\\\\\\\":\\\\\\\"PowerAppsControlInfo\\\\\\\",\\\\\\\"Data\\\\\\\":{\\\\\\\"TemplateVersion\\\\\\\":1,\\\\\\\"Version\\\\\\\":\\\\\\\"0.0.1\\\\\\\",\\\\\\\"IsFirstParty\\\\\\\":false}}\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":10,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/PCFControls/dkdt_Devkeydet.HelloPCF/Devkeydet.HelloPCF.bundle.js\\\",\\\"ModifiedPath\\\":\\\"https://docserverpwaprodeus.blob.core.windows.net/c555f268-2d8e-48ef-8693-46a55ab7eda4-1/appdynamicresources/D%253a0SvcFab0_App0PowerApps.WebAuthoringType_App980work03phz5gfs.ml4020S0Resources0Controls0Devkeydet.HelloPCF.bundle.js?skoid=58690ece-ec83-4ce2-9ce8-883d4d6a54ee&sktid=975f013f-7f24-47e8-a7d3-abc4752bf346&skt=2024-03-12T00%3A47%3A09Z&ske=2024-03-13T01%3A02%3A09Z&sks=b&skv=2022-11-02&sv=2022-11-02&spr=https&se=2024-03-13T01%3A02%3A09Z&sr=b&sp=r&sig=gH6VzYZ03a29AAoLLvRBDXyoSmi1rfNNp6d9TRy6RRE%3D\\\",\\\"LoadingOrder\\\":11,\\\"IsControlSpecific\\\":true},{\\\"Type\\\":3,\\\"Path\\\":\\\"{\\\\\\\"Id\\\\\\\":\\\\\\\"FormattingData\\\\\\\",\\\\\\\"Data\\\\\\\":{\\\\\\\"timeZoneUtcOffsetMinutes\\\\\\\":0,\\\\\\\"dateTimeFormatInfo\\\\\\\":{\\\\\\\"AMDesignator\\\\\\\":\\\\\\\"AM\\\\\\\",\\\\\\\"Calendar\\\\\\\":{\\\\\\\"MinSupportedDateTime\\\\\\\":\\\\\\\"0001-01-01T00:00:00\\\\\\\",\\\\\\\"MaxSupportedDateTime\\\\\\\":\\\\\\\"9999-12-31T23:59:59.9999999\\\\\\\",\\\\\\\"AlgorithmType\\\\\\\":1,\\\\\\\"CalendarType\\\\\\\":1,\\\\\\\"Eras\\\\\\\":[1],\\\\\\\"TwoDigitYearMax\\\\\\\":2049,\\\\\\\"IsReadOnly\\\\\\\":false},\\\\\\\"DateSeparator\\\\\\\":\\\\\\\"/\\\\\\\",\\\\\\\"FirstDayOfWeek\\\\\\\":0,\\\\\\\"CalendarWeekRule\\\\\\\":0,\\\\\\\"FullDateTimePattern\\\\\\\":\\\\\\\"dddd, MMMM d, yyyy h:mm:ss tt\\\\\\\",\\\\\\\"LongDatePattern\\\\\\\":\\\\\\\"dddd, MMMM d, yyyy\\\\\\\",\\\\\\\"LongTimePattern\\\\\\\":\\\\\\\"h:mm:ss tt\\\\\\\",\\\\\\\"MonthDayPattern\\\\\\\":\\\\\\\"MMMM d\\\\\\\",\\\\\\\"PMDesignator\\\\\\\":\\\\\\\"PM\\\\\\\",\\\\\\\"RFC1123Pattern\\\\\\\":\\\\\\\"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'\\\\\\\",\\\\\\\"ShortDatePattern\\\\\\\":\\\\\\\"M/d/yyyy\\\\\\\",\\\\\\\"ShortTimePattern\\\\\\\":\\\\\\\"h:mm tt\\\\\\\",\\\\\\\"SortableDateTimePattern\\\\\\\":\\\\\\\"yyyy'-'MM'-'dd'T'HH':'mm':'ss\\\\\\\",\\\\\\\"TimeSeparator\\\\\\\":\\\\\\\":\\\\\\\",\\\\\\\"UniversalSortableDateTimePattern\\\\\\\":\\\\\\\"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\\\\\\\",\\\\\\\"YearMonthPattern\\\\\\\":\\\\\\\"MMMM yyyy\\\\\\\",\\\\\\\"AbbreviatedDayNames\\\\\\\":[\\\\\\\"Sun\\\\\\\",\\\\\\\"Mon\\\\\\\",\\\\\\\"Tue\\\\\\\",\\\\\\\"Wed\\\\\\\",\\\\\\\"Thu\\\\\\\",\\\\\\\"Fri\\\\\\\",\\\\\\\"Sat\\\\\\\"],\\\\\\\"ShortestDayNames\\\\\\\":[\\\\\\\"Su\\\\\\\",\\\\\\\"Mo\\\\\\\",\\\\\\\"Tu\\\\\\\",\\\\\\\"We\\\\\\\",\\\\\\\"Th\\\\\\\",\\\\\\\"Fr\\\\\\\",\\\\\\\"Sa\\\\\\\"],\\\\\\\"DayNames\\\\\\\":[\\\\\\\"Sunday\\\\\\\",\\\\\\\"Monday\\\\\\\",\\\\\\\"Tuesday\\\\\\\",\\\\\\\"Wednesday\\\\\\\",\\\\\\\"Thursday\\\\\\\",\\\\\\\"Friday\\\\\\\",\\\\\\\"Saturday\\\\\\\"],\\\\\\\"AbbreviatedMonthNames\\\\\\\":[\\\\\\\"Jan\\\\\\\",\\\\\\\"Feb\\\\\\\",\\\\\\\"Mar\\\\\\\",\\\\\\\"Apr\\\\\\\",\\\\\\\"May\\\\\\\",\\\\\\\"Jun\\\\\\\",\\\\\\\"Jul\\\\\\\",\\\\\\\"Aug\\\\\\\",\\\\\\\"Sep\\\\\\\",\\\\\\\"Oct\\\\\\\",\\\\\\\"Nov\\\\\\\",\\\\\\\"Dec\\\\\\\",\\\\\\\"\\\\\\\"],\\\\\\\"MonthNames\\\\\\\":[\\\\\\\"January\\\\\\\",\\\\\\\"February\\\\\\\",\\\\\\\"March\\\\\\\",\\\\\\\"April\\\\\\\",\\\\\\\"May\\\\\\\",\\\\\\\"June\\\\\\\",\\\\\\\"July\\\\\\\",\\\\\\\"August\\\\\\\",\\\\\\\"September\\\\\\\",\\\\\\\"October\\\\\\\",\\\\\\\"November\\\\\\\",\\\\\\\"December\\\\\\\",\\\\\\\"\\\\\\\"],\\\\\\\"IsReadOnly\\\\\\\":false,\\\\\\\"NativeCalendarName\\\\\\\":\\\\\\\"Gregorian Calendar\\\\\\\",\\\\\\\"AbbreviatedMonthGenitiveNames\\\\\\\":[\\\\\\\"Jan\\\\\\\",\\\\\\\"Feb\\\\\\\",\\\\\\\"Mar\\\\\\\",\\\\\\\"Apr\\\\\\\",\\\\\\\"May\\\\\\\",\\\\\\\"Jun\\\\\\\",\\\\\\\"Jul\\\\\\\",\\\\\\\"Aug\\\\\\\",\\\\\\\"Sep\\\\\\\",\\\\\\\"Oct\\\\\\\",\\\\\\\"Nov\\\\\\\",\\\\\\\"Dec\\\\\\\",\\\\\\\"\\\\\\\"],\\\\\\\"MonthGenitiveNames\\\\\\\":[\\\\\\\"January\\\\\\\",\\\\\\\"February\\\\\\\",\\\\\\\"March\\\\\\\",\\\\\\\"April\\\\\\\",\\\\\\\"May\\\\\\\",\\\\\\\"June\\\\\\\",\\\\\\\"July\\\\\\\",\\\\\\\"August\\\\\\\",\\\\\\\"September\\\\\\\",\\\\\\\"October\\\\\\\",\\\\\\\"November\\\\\\\",\\\\\\\"December\\\\\\\",\\\\\\\"\\\\\\\"]},\\\\\\\"numberFormatInfo\\\\\\\":{\\\\\\\"CurrencyDecimalDigits\\\\\\\":2,\\\\\\\"CurrencyDecimalSeparator\\\\\\\":\\\\\\\".\\\\\\\",\\\\\\\"IsReadOnly\\\\\\\":false,\\\\\\\"CurrencyGroupSizes\\\\\\\":[3],\\\\\\\"NumberGroupSizes\\\\\\\":[3],\\\\\\\"PercentGroupSizes\\\\\\\":[3],\\\\\\\"CurrencyGroupSeparator\\\\\\\":\\\\\\\",\\\\\\\",\\\\\\\"CurrencySymbol\\\\\\\":\\\\\\\"$\\\\\\\",\\\\\\\"NaNSymbol\\\\\\\":\\\\\\\"NaN\\\\\\\",\\\\\\\"CurrencyNegativePattern\\\\\\\":0,\\\\\\\"NumberNegativePattern\\\\\\\":1,\\\\\\\"PercentPositivePattern\\\\\\\":1,\\\\\\\"PercentNegativePattern\\\\\\\":1,\\\\\\\"NegativeInfinitySymbol\\\\\\\":\\\\\\\"-∞\\\\\\\",\\\\\\\"NegativeSign\\\\\\\":\\\\\\\"-\\\\\\\",\\\\\\\"NumberDecimalDigits\\\\\\\":2,\\\\\\\"NumberDecimalSeparator\\\\\\\":\\\\\\\".\\\\\\\",\\\\\\\"NumberGroupSeparator\\\\\\\":\\\\\\\",\\\\\\\",\\\\\\\"CurrencyPositivePattern\\\\\\\":0,\\\\\\\"PositiveInfinitySymbol\\\\\\\":\\\\\\\"∞\\\\\\\",\\\\\\\"PositiveSign\\\\\\\":\\\\\\\"+\\\\\\\",\\\\\\\"PercentDecimalDigits\\\\\\\":2,\\\\\\\"PercentDecimalSeparator\\\\\\\":\\\\\\\".\\\\\\\",\\\\\\\"PercentGroupSeparator\\\\\\\":\\\\\\\",\\\\\\\",\\\\\\\"PercentSymbol\\\\\\\":\\\\\\\"%\\\\\\\",\\\\\\\"PerMilleSymbol\\\\\\\":\\\\\\\"‰\\\\\\\",\\\\\\\"NativeDigits\\\\\\\":[\\\\\\\"0\\\\\\\",\\\\\\\"1\\\\\\\",\\\\\\\"2\\\\\\\",\\\\\\\"3\\\\\\\",\\\\\\\"4\\\\\\\",\\\\\\\"5\\\\\\\",\\\\\\\"6\\\\\\\",\\\\\\\"7\\\\\\\",\\\\\\\"8\\\\\\\",\\\\\\\"9\\\\\\\"],\\\\\\\"DigitSubstitution\\\\\\\":1},\\\\\\\"timeZoneAdjusters\\\\\\\":[],\\\\\\\"formatInfoCultureName\\\\\\\":\\\\\\\"en-US\\\\\\\",\\\\\\\"formatter\\\\\\\":null,\\\\\\\"languagesByCode\\\\\\\":{\\\\\\\"1033\\\\\\\":\\\\\\\"English (United States)\\\\\\\",\\\\\\\"-1\\\\\\\":\\\\\\\"All Languages\\\\\\\"}}}\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":12,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":0,\\\"Path\\\":\\\"/PCF/fluentui-react.js\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":5,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":4,\\\"Path\\\":\\\"React/16.8.6/16.8.6\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":0,\\\"IsControlSpecific\\\":false},{\\\"Type\\\":4,\\\"Path\\\":\\\"Fluent/8.29.0/8.29.0\\\",\\\"ModifiedPath\\\":\\\"\\\",\\\"LoadingOrder\\\":0,\\\"IsControlSpecific\\\":false}]\",\"Properties\":\"[{\\\"Name\\\":\\\"sampleProperty\\\",\\\"DisplayName\\\":\\\"Property_Display_Key\\\",\\\"Description\\\":\\\"Property_Desc_Key\\\",\\\"Type\\\":6,\\\"Usage\\\":2,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"\\\",\\\"PfxDefaultValue\\\":\\\"\\\",\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":null,\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"data\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":[],\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"Property_Display_Key\\\",\\\"DescriptionResourceString\\\":\\\"Property_Desc_Key\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"PCFTeamsTheme\\\",\\\"DisplayName\\\":\\\"PCFTeamsTheme\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":3,\\\"Usage\\\":0,\\\"Hidden\\\":true,\\\"DefaultValue\\\":\\\"\\\",\\\"PfxDefaultValue\\\":\\\"\\\",\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":\\\"\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false}]\",\"IncludedProperties\":\"[{\\\"Name\\\":\\\"X\\\",\\\"DisplayName\\\":\\\"CC_X\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":2,\\\"Usage\\\":2,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":\\\"\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"CC_X\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"Y\\\",\\\"DisplayName\\\":\\\"CC_Y\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":2,\\\"Usage\\\":2,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":\\\"\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"CC_Y\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"Width\\\",\\\"DisplayName\\\":\\\"Width\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":2,\\\"Usage\\\":2,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"200\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"350\\\",\\\"WebDefaultValue\\\":\\\"112\\\",\\\"NullDefaultValue\\\":\\\"0\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"Width\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"Height\\\",\\\"DisplayName\\\":\\\"Height\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":2,\\\"Usage\\\":2,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"200\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"350\\\",\\\"WebDefaultValue\\\":\\\"112\\\",\\\"NullDefaultValue\\\":\\\"0\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"Height\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"Visible\\\",\\\"DisplayName\\\":\\\"Visible\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":4,\\\"Usage\\\":2,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"true\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":\\\"\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"Visible\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"DisplayMode\\\",\\\"DisplayName\\\":\\\"DisplayMode\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":27,\\\"Usage\\\":2,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":\\\"\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"DisplayMode\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"TabIndex\\\",\\\"DisplayName\\\":\\\"TabIndex\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":2,\\\"Usage\\\":0,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"0\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":\\\"\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"TabIndex\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false},{\\\"Name\\\":\\\"Tooltip\\\",\\\"DisplayName\\\":\\\"Tooltip\\\",\\\"Description\\\":\\\"\\\",\\\"Type\\\":3,\\\"Usage\\\":0,\\\"Hidden\\\":false,\\\"DefaultValue\\\":\\\"HelloPCF description\\\",\\\"PfxDefaultValue\\\":null,\\\"PhoneDefaultValue\\\":\\\"\\\",\\\"WebDefaultValue\\\":\\\"\\\",\\\"NullDefaultValue\\\":\\\"\\\",\\\"HelperUI\\\":\\\"\\\",\\\"Category\\\":\\\"design\\\",\\\"IsPrimaryBehavioral\\\":false,\\\"IsPrimaryInput\\\":false,\\\"IsPrimaryOutput\\\":false,\\\"IsResettable\\\":false,\\\"EnumValues\\\":null,\\\"Required\\\":false,\\\"IsDataSourceProperty\\\":false,\\\"PassThroughProperty\\\":\\\"\\\",\\\"ShouldAutoBind\\\":false,\\\"ParentDataSetName\\\":\\\"\\\",\\\"DisplayNameResourceString\\\":\\\"Tooltip\\\",\\\"DescriptionResourceString\\\":\\\"\\\",\\\"IsResettableToManifestDefault\\\":false,\\\"IsLinkableToParentTheme\\\":false}]\",\"CommonEvents\":\"[{\\\"Name\\\":\\\"OnChange\\\",\\\"DisplayName\\\":\\\"OnChange\\\",\\\"Description\\\":\\\"\\\",\\\"PfxDefaultValue\\\":null,\\\"Hidden\\\":false,\\\"IsPrimaryInput\\\":false}]\",\"AuthConfigProperties\":\"[{\\\"sampleProperty\\\":{\\\"SectionIndex\\\":0,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"\\\",\\\"SectionName\\\":\\\"data\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":1,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"X\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"Position\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":2,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"Y\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"Position\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":2,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"Width\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"Size\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":2,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"Height\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"Size\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":2,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"Visible\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":1,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"DisplayMode\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":27,\\\"PropertyKind\\\":1,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"TabIndex\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":1,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false},\\\"Tooltip\\\":{\\\"SectionIndex\\\":1,\\\"HelperUI\\\":null,\\\"PropertyGroupName\\\":\\\"\\\",\\\"SectionName\\\":\\\"design\\\",\\\"Type\\\":0,\\\"PropertyKind\\\":1,\\\"WizardStep\\\":null,\\\"EnabledForFlyout\\\":false,\\\"Hidden\\\":false,\\\"SectionType\\\":null,\\\"ShowInCanvasInlineActionBar\\\":false}}]\"}",
36 | "FirstParty": false,
37 | "Id": "http://microsoft.com/appmagic/powercontrol/dkdt_Devkeydet.HelloPCF",
38 | "IsComponentDefinition": false,
39 | "IsCustomGroupControlTemplate": false,
40 | "IsPremiumPcfControl": false,
41 | "LastModifiedTimestamp": "0",
42 | "Name": "dkdt_Devkeydet.HelloPCF",
43 | "OverridableProperties": {},
44 | "TemplateDisplayName": "HelloPCF",
45 | "Version": "0.0.1"
46 | }
47 | },
48 | "PublishOrderIndices": {
49 | "App": 0,
50 | "HelloPCF1": 0,
51 | "Host": 0,
52 | "MainScreen": 0
53 | },
54 | "ResourcesJsonIndices": {},
55 | "RuleScreenIdWithoutScreen": {},
56 | "TemplateVersions": {},
57 | "VolatileProperties": {
58 | "AnalysisLoadTime": 0.040322700000000003,
59 | "ControlCount": {
60 | "screen": 1
61 | },
62 | "DeserializationLoadTime": 1.0740772999999999
63 | },
64 | "WasLocalDatabaseReferencesEmpty": false
65 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Entropy/checksum.json:
--------------------------------------------------------------------------------
1 | {
2 | "ClientBuildDetails": {
3 | "CommitHash": "941f06c8f5cf7a493289e9514c8dec5c50b61d34",
4 | "IsLocalBuild": false
5 | },
6 | "ClientPerFileChecksums": {
7 | "AppCheckerResult.sarif": "C8_2z9M/fAc75daT1pTcsfTsSDK9Q2oIAT5vOD9cvtttZA=",
8 | "Controls\\1.json": "C8_+9bWWWaDtzI/rA9xGR0GFD302+//iUIr6k2V6TsJM50=",
9 | "Controls\\4.json": "C8_cVaDpvfNYr1grVf6g73OkieOcgLBGSXvtWRQq1b+b+s=",
10 | "Header.json": "C8_IK7pW8ZMaAGx0JAR4Sem1+DS25fiszvvMR0+hXxXrK8=",
11 | "Properties.json": "C8_n2xBSLxe9eUjhv5rODt/B79HyeNHW+xwiUoXm0Im2dQ=",
12 | "References\\DataSources.json": "C8_1Mz8z/quQND5c2f8m0mw1Mjdi+ggLSDhPUoMPaSWpDQ=",
13 | "References\\ModernThemes.json": "C8_KDQJ/3t27vgKx25iCQB/PGqxkWE34ZB7Eyb+RxNxY0k=",
14 | "References\\Resources.json": "C8_o8YVeUoBOQZMN+H7s7E9s1TDtWtrOeuiBA3wJXAjo2Y=",
15 | "References\\Templates.json": "C8_aE9wj7r0OQn47QTsFYU/hPJPz5X7T1aZS/quegmeyRc=",
16 | "References\\Themes.json": "C8_oCZZeuoC7+zyBGQLt9MZ2S+Xl34LpAsWKWXX0Qw0/YE=",
17 | "Resources\\Controls\\Devkeydet.HelloPCF.bundle.js": "C8_VE1w1sXf2TQ2xKLZ8zwAeSXsX3mjSY+CQmASQnnVmew=",
18 | "Resources\\PublishInfo.json": "C8_uy20MvO6KObppg7HI4cLmmn6Q6HFYhVTKcoq/4RlcG0="
19 | },
20 | "ClientStampedChecksum": "C8_3KR/ElKKtVban57xTgchxV046icaD/vr0sy9Moc4pps=",
21 | "ServerPerFileChecksums": {
22 | "AppCheckerResult.sarif": "C8_2z9M/fAc75daT1pTcsfTsSDK9Q2oIAT5vOD9cvtttZA=",
23 | "Controls\\1.json": "C8_+9bWWWaDtzI/rA9xGR0GFD302+//iUIr6k2V6TsJM50=",
24 | "Controls\\4.json": "C8_cVaDpvfNYr1grVf6g73OkieOcgLBGSXvtWRQq1b+b+s=",
25 | "Header.json": "C8_IK7pW8ZMaAGx0JAR4Sem1+DS25fiszvvMR0+hXxXrK8=",
26 | "Properties.json": "C8_n2xBSLxe9eUjhv5rODt/B79HyeNHW+xwiUoXm0Im2dQ=",
27 | "References\\DataSources.json": "C8_1Mz8z/quQND5c2f8m0mw1Mjdi+ggLSDhPUoMPaSWpDQ=",
28 | "References\\ModernThemes.json": "C8_KDQJ/3t27vgKx25iCQB/PGqxkWE34ZB7Eyb+RxNxY0k=",
29 | "References\\Resources.json": "C8_o8YVeUoBOQZMN+H7s7E9s1TDtWtrOeuiBA3wJXAjo2Y=",
30 | "References\\Templates.json": "C8_aE9wj7r0OQn47QTsFYU/hPJPz5X7T1aZS/quegmeyRc=",
31 | "References\\Themes.json": "C8_oCZZeuoC7+zyBGQLt9MZ2S+Xl34LpAsWKWXX0Qw0/YE=",
32 | "Resources\\Controls\\Devkeydet.HelloPCF.bundle.js": "C8_VE1w1sXf2TQ2xKLZ8zwAeSXsX3mjSY+CQmASQnnVmew=",
33 | "Resources\\PublishInfo.json": "C8_uy20MvO6KObppg7HI4cLmmn6Q6HFYhVTKcoq/4RlcG0="
34 | },
35 | "ServerStampedChecksum": "C8_3KR/ElKKtVban57xTgchxV046icaD/vr0sy9Moc4pps="
36 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Other/References/ModernThemes.json:
--------------------------------------------------------------------------------
1 | {
2 | "Themes": [
3 | {
4 | "EntityName": "PowerAppsTheme",
5 | "ThemeName": "PowerAppsTheme"
6 | }
7 | ]
8 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Other/Resources/Controls/Devkeydet.HelloPCF.bundle.js:
--------------------------------------------------------------------------------
1 | /*
2 | * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
3 | * This devtool is neither made for production nor for readable output files.
4 | * It uses "eval()" calls to create a separate source file in the browser devtools.
5 | * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6 | * or disable the default devtool with "devtool: false".
7 | * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8 | */
9 | var pcf_tools_652ac3f36e1e4bca82eb3c1dc44e6fad;
10 | /******/ (() => { // webpackBootstrap
11 | /******/ "use strict";
12 | /******/ var __webpack_modules__ = ({
13 |
14 | /***/ "./HelloPCF/HelloWorld.tsx":
15 | /*!*********************************!*\
16 | !*** ./HelloPCF/HelloWorld.tsx ***!
17 | \*********************************/
18 | /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
19 |
20 | eval("\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.HelloWorld = void 0;\nvar React = __webpack_require__(/*! react */ \"react\");\nvar react_1 = __webpack_require__(/*! @fluentui/react */ \"@fluentui/react\");\nvar HelloWorld = /** @class */function (_super) {\n __extends(HelloWorld, _super);\n function HelloWorld() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HelloWorld.prototype.render = function () {\n return React.createElement(react_1.Label, null, this.props.name);\n };\n return HelloWorld;\n}(React.Component);\nexports.HelloWorld = HelloWorld;\n\n//# sourceURL=webpack://pcf_tools_652ac3f36e1e4bca82eb3c1dc44e6fad/./HelloPCF/HelloWorld.tsx?");
21 |
22 | /***/ }),
23 |
24 | /***/ "./HelloPCF/index.ts":
25 | /*!***************************!*\
26 | !*** ./HelloPCF/index.ts ***!
27 | \***************************/
28 | /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
29 |
30 | eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.HelloPCF = void 0;\nvar HelloWorld_1 = __webpack_require__(/*! ./HelloWorld */ \"./HelloPCF/HelloWorld.tsx\");\nvar React = __webpack_require__(/*! react */ \"react\");\nvar HelloPCF = /** @class */function () {\n /**\r\n * Empty constructor.\r\n */\n function HelloPCF() {}\n /**\r\n * Used to initialize the control instance. Controls can kick off remote server calls and other initialization actions here.\r\n * Data-set values are not initialized here, use updateView.\r\n * @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.\r\n * @param notifyOutputChanged A callback method to alert the framework that the control has new outputs ready to be retrieved asynchronously.\r\n * @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.\r\n */\n HelloPCF.prototype.init = function (context, notifyOutputChanged, state) {\n this.notifyOutputChanged = notifyOutputChanged;\n };\n /**\r\n * 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.\r\n * @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\r\n * @returns ReactElement root react element for the control\r\n */\n HelloPCF.prototype.updateView = function (context) {\n var props = {\n name: 'Hello, World!'\n };\n return React.createElement(HelloWorld_1.HelloWorld, props);\n };\n /**\r\n * It is called by the framework prior to a control receiving new data.\r\n * @returns an object based on nomenclature defined in manifest, expecting object[s] for property marked as “bound” or “output”\r\n */\n HelloPCF.prototype.getOutputs = function () {\n return {};\n };\n /**\r\n * Called when the control is to be removed from the DOM tree. Controls should use this call for cleanup.\r\n * i.e. cancelling any pending remote calls, removing listeners, etc.\r\n */\n HelloPCF.prototype.destroy = function () {\n // Add code to cleanup control if necessary\n };\n return HelloPCF;\n}();\nexports.HelloPCF = HelloPCF;\n\n//# sourceURL=webpack://pcf_tools_652ac3f36e1e4bca82eb3c1dc44e6fad/./HelloPCF/index.ts?");
31 |
32 | /***/ }),
33 |
34 | /***/ "@fluentui/react":
35 | /*!*************************************!*\
36 | !*** external "FluentUIReactv8290" ***!
37 | \*************************************/
38 | /***/ ((module) => {
39 |
40 | module.exports = FluentUIReactv8290;
41 |
42 | /***/ }),
43 |
44 | /***/ "react":
45 | /*!************************!*\
46 | !*** external "React" ***!
47 | \************************/
48 | /***/ ((module) => {
49 |
50 | module.exports = React;
51 |
52 | /***/ })
53 |
54 | /******/ });
55 | /************************************************************************/
56 | /******/ // The module cache
57 | /******/ var __webpack_module_cache__ = {};
58 | /******/
59 | /******/ // The require function
60 | /******/ function __webpack_require__(moduleId) {
61 | /******/ // Check if module is in cache
62 | /******/ var cachedModule = __webpack_module_cache__[moduleId];
63 | /******/ if (cachedModule !== undefined) {
64 | /******/ return cachedModule.exports;
65 | /******/ }
66 | /******/ // Create a new module (and put it into the cache)
67 | /******/ var module = __webpack_module_cache__[moduleId] = {
68 | /******/ // no module.id needed
69 | /******/ // no module.loaded needed
70 | /******/ exports: {}
71 | /******/ };
72 | /******/
73 | /******/ // Execute the module function
74 | /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
75 | /******/
76 | /******/ // Return the exports of the module
77 | /******/ return module.exports;
78 | /******/ }
79 | /******/
80 | /************************************************************************/
81 | /******/
82 | /******/ // startup
83 | /******/ // Load entry module and return exports
84 | /******/ // This entry module can't be inlined because the eval devtool is used.
85 | /******/ var __webpack_exports__ = __webpack_require__("./HelloPCF/index.ts");
86 | /******/ pcf_tools_652ac3f36e1e4bca82eb3c1dc44e6fad = __webpack_exports__;
87 | /******/
88 | /******/ })()
89 | ;
90 | if (window.ComponentFramework && window.ComponentFramework.registerControl) {
91 | ComponentFramework.registerControl('Devkeydet.HelloPCF', pcf_tools_652ac3f36e1e4bca82eb3c1dc44e6fad.HelloPCF);
92 | } else {
93 | var Devkeydet = Devkeydet || {};
94 | Devkeydet.HelloPCF = pcf_tools_652ac3f36e1e4bca82eb3c1dc44e6fad.HelloPCF;
95 | pcf_tools_652ac3f36e1e4bca82eb3c1dc44e6fad = undefined;
96 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Src/App.fx.yaml:
--------------------------------------------------------------------------------
1 | App As appinfo:
2 | BackEnabled: =true
3 | Theme: =PowerAppsTheme
4 |
5 | Host As hostControl.DefaultHostControlVariant:
6 | OnCancel: =false
7 | OnEdit: =false
8 | OnNew: =false
9 | OnSave: =false
10 | OnView: =false
11 |
12 |
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Src/EditorState/App.editorstate.json:
--------------------------------------------------------------------------------
1 | {
2 | "ControlStates": {
3 | "App": {
4 | "AllowAccessToGlobals": true,
5 | "ControlPropertyState": [
6 | "MinScreenHeight",
7 | "MinScreenWidth",
8 | "ConfirmExit",
9 | "SizeBreakpoints",
10 | "BackEnabled",
11 | "Theme"
12 | ],
13 | "IsAutoGenerated": false,
14 | "IsComponentDefinition": false,
15 | "IsDataControl": true,
16 | "IsFromScreenLayout": false,
17 | "IsGroupControl": false,
18 | "IsLocked": false,
19 | "LayoutName": "",
20 | "MetaDataIDKey": "",
21 | "Name": "App",
22 | "OptimizeForDevices": "Off",
23 | "ParentIndex": 0,
24 | "PersistMetaDataIDKey": false,
25 | "Properties": [
26 | {
27 | "Category": "Data",
28 | "PropertyName": "ConfirmExit",
29 | "RuleProviderType": "Unknown"
30 | },
31 | {
32 | "Category": "Data",
33 | "PropertyName": "BackEnabled",
34 | "RuleProviderType": "Unknown"
35 | },
36 | {
37 | "Category": "Design",
38 | "PropertyName": "MinScreenHeight",
39 | "RuleProviderType": "Unknown"
40 | },
41 | {
42 | "Category": "Design",
43 | "PropertyName": "MinScreenWidth",
44 | "RuleProviderType": "Unknown"
45 | },
46 | {
47 | "Category": "Design",
48 | "PropertyName": "Theme",
49 | "RuleProviderType": "Unknown"
50 | },
51 | {
52 | "Category": "ConstantData",
53 | "PropertyName": "SizeBreakpoints",
54 | "RuleProviderType": "Unknown"
55 | }
56 | ],
57 | "StyleName": "",
58 | "Type": "ControlInfo"
59 | },
60 | "Host": {
61 | "AllowAccessToGlobals": true,
62 | "ControlPropertyState": [
63 | "OnNew",
64 | "OnEdit",
65 | "OnView",
66 | "OnSave",
67 | "OnCancel"
68 | ],
69 | "HasDynamicProperties": false,
70 | "IsAutoGenerated": false,
71 | "IsComponentDefinition": false,
72 | "IsDataControl": true,
73 | "IsFromScreenLayout": false,
74 | "IsGroupControl": false,
75 | "IsLocked": false,
76 | "LayoutName": "",
77 | "MetaDataIDKey": "",
78 | "Name": "Host",
79 | "OptimizeForDevices": "Off",
80 | "ParentIndex": 0,
81 | "PersistMetaDataIDKey": false,
82 | "Properties": [
83 | {
84 | "Category": "Behavior",
85 | "PropertyName": "OnNew",
86 | "RuleProviderType": "Unknown"
87 | },
88 | {
89 | "Category": "Behavior",
90 | "PropertyName": "OnEdit",
91 | "RuleProviderType": "Unknown"
92 | },
93 | {
94 | "Category": "Behavior",
95 | "PropertyName": "OnView",
96 | "RuleProviderType": "Unknown"
97 | },
98 | {
99 | "Category": "Behavior",
100 | "PropertyName": "OnSave",
101 | "RuleProviderType": "Unknown"
102 | },
103 | {
104 | "Category": "Behavior",
105 | "PropertyName": "OnCancel",
106 | "RuleProviderType": "Unknown"
107 | }
108 | ],
109 | "StyleName": "",
110 | "Type": "ControlInfo"
111 | }
112 | },
113 | "TopParentName": "App"
114 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Src/EditorState/MainScreen.editorstate.json:
--------------------------------------------------------------------------------
1 | {
2 | "ControlStates": {
3 | "HelloPCF1": {
4 | "AllowAccessToGlobals": true,
5 | "ControlPropertyState": [
6 | "X",
7 | "Y",
8 | "Width",
9 | "Height",
10 | "DisplayMode",
11 | "ZIndex"
12 | ],
13 | "HasDynamicProperties": false,
14 | "IsAutoGenerated": false,
15 | "IsComponentDefinition": false,
16 | "IsDataControl": false,
17 | "IsFromScreenLayout": false,
18 | "IsGroupControl": false,
19 | "IsLocked": false,
20 | "LayoutName": "",
21 | "MetaDataIDKey": "",
22 | "Name": "HelloPCF1",
23 | "OptimizeForDevices": "Off",
24 | "ParentIndex": 0,
25 | "PersistMetaDataIDKey": false,
26 | "Properties": [
27 | {
28 | "Category": "Design",
29 | "PropertyName": "X",
30 | "RuleProviderType": "Unknown"
31 | },
32 | {
33 | "Category": "Design",
34 | "PropertyName": "Y",
35 | "RuleProviderType": "Unknown"
36 | },
37 | {
38 | "Category": "Design",
39 | "PropertyName": "Width",
40 | "RuleProviderType": "Unknown"
41 | },
42 | {
43 | "Category": "Design",
44 | "PropertyName": "Height",
45 | "RuleProviderType": "Unknown"
46 | },
47 | {
48 | "Category": "Design",
49 | "PropertyName": "DisplayMode",
50 | "RuleProviderType": "Unknown"
51 | },
52 | {
53 | "Category": "Design",
54 | "PropertyName": "ZIndex",
55 | "RuleProviderType": "Unknown"
56 | }
57 | ],
58 | "StyleName": "",
59 | "Type": "ControlInfo"
60 | },
61 | "MainScreen": {
62 | "AllowAccessToGlobals": true,
63 | "ControlPropertyState": [
64 | "Fill",
65 | "ImagePosition",
66 | "Height",
67 | "Width",
68 | "Size",
69 | "Orientation",
70 | "LoadingSpinner",
71 | "LoadingSpinnerColor"
72 | ],
73 | "IsAutoGenerated": false,
74 | "IsComponentDefinition": false,
75 | "IsDataControl": false,
76 | "IsFromScreenLayout": false,
77 | "IsGroupControl": false,
78 | "IsLocked": false,
79 | "LayoutName": "",
80 | "MetaDataIDKey": "",
81 | "Name": "MainScreen",
82 | "OptimizeForDevices": "Off",
83 | "ParentIndex": 0,
84 | "PersistMetaDataIDKey": false,
85 | "Properties": [
86 | {
87 | "Category": "Design",
88 | "PropertyName": "Width",
89 | "RuleProviderType": "Unknown"
90 | },
91 | {
92 | "Category": "Design",
93 | "PropertyName": "Height",
94 | "RuleProviderType": "Unknown"
95 | },
96 | {
97 | "Category": "Design",
98 | "PropertyName": "ImagePosition",
99 | "RuleProviderType": "Unknown"
100 | },
101 | {
102 | "Category": "Design",
103 | "PropertyName": "Fill",
104 | "RuleProviderType": "Unknown"
105 | },
106 | {
107 | "Category": "Design",
108 | "PropertyName": "LoadingSpinner",
109 | "RuleProviderType": "Unknown"
110 | },
111 | {
112 | "Category": "Design",
113 | "PropertyName": "LoadingSpinnerColor",
114 | "RuleProviderType": "Unknown"
115 | },
116 | {
117 | "Category": "Design",
118 | "PropertyName": "Size",
119 | "RuleProviderType": "Unknown"
120 | },
121 | {
122 | "Category": "Design",
123 | "PropertyName": "Orientation",
124 | "RuleProviderType": "Unknown"
125 | }
126 | ],
127 | "StyleName": "defaultScreenStyle",
128 | "Type": "ControlInfo"
129 | }
130 | },
131 | "TopParentName": "MainScreen"
132 | }
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/Src/MainScreen.fx.yaml:
--------------------------------------------------------------------------------
1 | MainScreen As screen:
2 |
3 | HelloPCF1 As HelloPCF:
4 | DisplayMode: =DisplayMode.Edit
5 | Height: =200
6 | Width: =200
7 | X: =44
8 | Y: =48
9 | ZIndex: =1
10 |
11 |
--------------------------------------------------------------------------------
/src/CanvasApps/src/dkdt_hellocanvasapp_71e90/pkgs/PcfControlTemplates/HelloPCF_0.0.1.json:
--------------------------------------------------------------------------------
1 | {
2 | "AuthConfigProperties": [
3 | {
4 | "DisplayMode": {
5 | "EnabledForFlyout": false,
6 | "HelperUI": null,
7 | "Hidden": false,
8 | "PropertyGroupName": "",
9 | "PropertyKind": 1,
10 | "SectionIndex": 1,
11 | "SectionName": "design",
12 | "SectionType": null,
13 | "ShowInCanvasInlineActionBar": false,
14 | "Type": 27,
15 | "WizardStep": null
16 | },
17 | "Height": {
18 | "EnabledForFlyout": false,
19 | "HelperUI": null,
20 | "Hidden": false,
21 | "PropertyGroupName": "Size",
22 | "PropertyKind": 2,
23 | "SectionIndex": 1,
24 | "SectionName": "design",
25 | "SectionType": null,
26 | "ShowInCanvasInlineActionBar": false,
27 | "Type": 0,
28 | "WizardStep": null
29 | },
30 | "sampleProperty": {
31 | "EnabledForFlyout": false,
32 | "HelperUI": null,
33 | "Hidden": false,
34 | "PropertyGroupName": "",
35 | "PropertyKind": 1,
36 | "SectionIndex": 0,
37 | "SectionName": "data",
38 | "SectionType": null,
39 | "ShowInCanvasInlineActionBar": false,
40 | "Type": 0,
41 | "WizardStep": null
42 | },
43 | "TabIndex": {
44 | "EnabledForFlyout": false,
45 | "HelperUI": null,
46 | "Hidden": false,
47 | "PropertyGroupName": "",
48 | "PropertyKind": 1,
49 | "SectionIndex": 1,
50 | "SectionName": "design",
51 | "SectionType": null,
52 | "ShowInCanvasInlineActionBar": false,
53 | "Type": 0,
54 | "WizardStep": null
55 | },
56 | "Tooltip": {
57 | "EnabledForFlyout": false,
58 | "HelperUI": null,
59 | "Hidden": false,
60 | "PropertyGroupName": "",
61 | "PropertyKind": 1,
62 | "SectionIndex": 1,
63 | "SectionName": "design",
64 | "SectionType": null,
65 | "ShowInCanvasInlineActionBar": false,
66 | "Type": 0,
67 | "WizardStep": null
68 | },
69 | "Visible": {
70 | "EnabledForFlyout": false,
71 | "HelperUI": null,
72 | "Hidden": false,
73 | "PropertyGroupName": "",
74 | "PropertyKind": 1,
75 | "SectionIndex": 1,
76 | "SectionName": "design",
77 | "SectionType": null,
78 | "ShowInCanvasInlineActionBar": false,
79 | "Type": 0,
80 | "WizardStep": null
81 | },
82 | "Width": {
83 | "EnabledForFlyout": false,
84 | "HelperUI": null,
85 | "Hidden": false,
86 | "PropertyGroupName": "Size",
87 | "PropertyKind": 2,
88 | "SectionIndex": 1,
89 | "SectionName": "design",
90 | "SectionType": null,
91 | "ShowInCanvasInlineActionBar": false,
92 | "Type": 0,
93 | "WizardStep": null
94 | },
95 | "X": {
96 | "EnabledForFlyout": false,
97 | "HelperUI": null,
98 | "Hidden": false,
99 | "PropertyGroupName": "Position",
100 | "PropertyKind": 2,
101 | "SectionIndex": 1,
102 | "SectionName": "design",
103 | "SectionType": null,
104 | "ShowInCanvasInlineActionBar": false,
105 | "Type": 0,
106 | "WizardStep": null
107 | },
108 | "Y": {
109 | "EnabledForFlyout": false,
110 | "HelperUI": null,
111 | "Hidden": false,
112 | "PropertyGroupName": "Position",
113 | "PropertyKind": 2,
114 | "SectionIndex": 1,
115 | "SectionName": "design",
116 | "SectionType": null,
117 | "ShowInCanvasInlineActionBar": false,
118 | "Type": 0,
119 | "WizardStep": null
120 | }
121 | }
122 | ],
123 | "CommonEvents": [
124 | {
125 | "Description": "",
126 | "DisplayName": "OnChange",
127 | "Hidden": false,
128 | "IsPrimaryInput": false,
129 | "Name": "OnChange",
130 | "PfxDefaultValue": null
131 | }
132 | ],
133 | "ControlConstructor": "HelloPCF",
134 | "ControlNamespace": "Devkeydet",
135 | "DisplayNameKey": "HelloPCF",
136 | "IncludedProperties": [
137 | {
138 | "Category": "design",
139 | "DefaultValue": "",
140 | "Description": "",
141 | "DescriptionResourceString": "",
142 | "DisplayName": "CC_X",
143 | "DisplayNameResourceString": "CC_X",
144 | "HelperUI": "",
145 | "Hidden": false,
146 | "IsDataSourceProperty": false,
147 | "IsLinkableToParentTheme": false,
148 | "IsPrimaryBehavioral": false,
149 | "IsPrimaryInput": false,
150 | "IsPrimaryOutput": false,
151 | "IsResettable": false,
152 | "IsResettableToManifestDefault": false,
153 | "Name": "X",
154 | "NullDefaultValue": "",
155 | "ParentDataSetName": "",
156 | "PassThroughProperty": "",
157 | "PfxDefaultValue": null,
158 | "PhoneDefaultValue": "",
159 | "Required": false,
160 | "ShouldAutoBind": false,
161 | "Type": 2,
162 | "Usage": 2,
163 | "WebDefaultValue": ""
164 | },
165 | {
166 | "Category": "design",
167 | "DefaultValue": "",
168 | "Description": "",
169 | "DescriptionResourceString": "",
170 | "DisplayName": "CC_Y",
171 | "DisplayNameResourceString": "CC_Y",
172 | "HelperUI": "",
173 | "Hidden": false,
174 | "IsDataSourceProperty": false,
175 | "IsLinkableToParentTheme": false,
176 | "IsPrimaryBehavioral": false,
177 | "IsPrimaryInput": false,
178 | "IsPrimaryOutput": false,
179 | "IsResettable": false,
180 | "IsResettableToManifestDefault": false,
181 | "Name": "Y",
182 | "NullDefaultValue": "",
183 | "ParentDataSetName": "",
184 | "PassThroughProperty": "",
185 | "PfxDefaultValue": null,
186 | "PhoneDefaultValue": "",
187 | "Required": false,
188 | "ShouldAutoBind": false,
189 | "Type": 2,
190 | "Usage": 2,
191 | "WebDefaultValue": ""
192 | },
193 | {
194 | "Category": "design",
195 | "DefaultValue": "200",
196 | "Description": "",
197 | "DescriptionResourceString": "",
198 | "DisplayName": "Width",
199 | "DisplayNameResourceString": "Width",
200 | "HelperUI": "",
201 | "Hidden": false,
202 | "IsDataSourceProperty": false,
203 | "IsLinkableToParentTheme": false,
204 | "IsPrimaryBehavioral": false,
205 | "IsPrimaryInput": false,
206 | "IsPrimaryOutput": false,
207 | "IsResettable": false,
208 | "IsResettableToManifestDefault": false,
209 | "Name": "Width",
210 | "NullDefaultValue": "0",
211 | "ParentDataSetName": "",
212 | "PassThroughProperty": "",
213 | "PfxDefaultValue": null,
214 | "PhoneDefaultValue": "350",
215 | "Required": false,
216 | "ShouldAutoBind": false,
217 | "Type": 2,
218 | "Usage": 2,
219 | "WebDefaultValue": "112"
220 | },
221 | {
222 | "Category": "design",
223 | "DefaultValue": "200",
224 | "Description": "",
225 | "DescriptionResourceString": "",
226 | "DisplayName": "Height",
227 | "DisplayNameResourceString": "Height",
228 | "HelperUI": "",
229 | "Hidden": false,
230 | "IsDataSourceProperty": false,
231 | "IsLinkableToParentTheme": false,
232 | "IsPrimaryBehavioral": false,
233 | "IsPrimaryInput": false,
234 | "IsPrimaryOutput": false,
235 | "IsResettable": false,
236 | "IsResettableToManifestDefault": false,
237 | "Name": "Height",
238 | "NullDefaultValue": "0",
239 | "ParentDataSetName": "",
240 | "PassThroughProperty": "",
241 | "PfxDefaultValue": null,
242 | "PhoneDefaultValue": "350",
243 | "Required": false,
244 | "ShouldAutoBind": false,
245 | "Type": 2,
246 | "Usage": 2,
247 | "WebDefaultValue": "112"
248 | },
249 | {
250 | "Category": "design",
251 | "DefaultValue": "true",
252 | "Description": "",
253 | "DescriptionResourceString": "",
254 | "DisplayName": "Visible",
255 | "DisplayNameResourceString": "Visible",
256 | "HelperUI": "",
257 | "Hidden": false,
258 | "IsDataSourceProperty": false,
259 | "IsLinkableToParentTheme": false,
260 | "IsPrimaryBehavioral": false,
261 | "IsPrimaryInput": false,
262 | "IsPrimaryOutput": false,
263 | "IsResettable": false,
264 | "IsResettableToManifestDefault": false,
265 | "Name": "Visible",
266 | "NullDefaultValue": "",
267 | "ParentDataSetName": "",
268 | "PassThroughProperty": "",
269 | "PfxDefaultValue": null,
270 | "PhoneDefaultValue": "",
271 | "Required": false,
272 | "ShouldAutoBind": false,
273 | "Type": 4,
274 | "Usage": 2,
275 | "WebDefaultValue": ""
276 | },
277 | {
278 | "Category": "design",
279 | "DefaultValue": "",
280 | "Description": "",
281 | "DescriptionResourceString": "",
282 | "DisplayName": "DisplayMode",
283 | "DisplayNameResourceString": "DisplayMode",
284 | "HelperUI": "",
285 | "Hidden": false,
286 | "IsDataSourceProperty": false,
287 | "IsLinkableToParentTheme": false,
288 | "IsPrimaryBehavioral": false,
289 | "IsPrimaryInput": false,
290 | "IsPrimaryOutput": false,
291 | "IsResettable": false,
292 | "IsResettableToManifestDefault": false,
293 | "Name": "DisplayMode",
294 | "NullDefaultValue": "",
295 | "ParentDataSetName": "",
296 | "PassThroughProperty": "",
297 | "PfxDefaultValue": null,
298 | "PhoneDefaultValue": "",
299 | "Required": false,
300 | "ShouldAutoBind": false,
301 | "Type": 27,
302 | "Usage": 2,
303 | "WebDefaultValue": ""
304 | },
305 | {
306 | "Category": "design",
307 | "DefaultValue": "0",
308 | "Description": "",
309 | "DescriptionResourceString": "",
310 | "DisplayName": "TabIndex",
311 | "DisplayNameResourceString": "TabIndex",
312 | "HelperUI": "",
313 | "Hidden": false,
314 | "IsDataSourceProperty": false,
315 | "IsLinkableToParentTheme": false,
316 | "IsPrimaryBehavioral": false,
317 | "IsPrimaryInput": false,
318 | "IsPrimaryOutput": false,
319 | "IsResettable": false,
320 | "IsResettableToManifestDefault": false,
321 | "Name": "TabIndex",
322 | "NullDefaultValue": "",
323 | "ParentDataSetName": "",
324 | "PassThroughProperty": "",
325 | "PfxDefaultValue": null,
326 | "PhoneDefaultValue": "",
327 | "Required": false,
328 | "ShouldAutoBind": false,
329 | "Type": 2,
330 | "Usage": 0,
331 | "WebDefaultValue": ""
332 | },
333 | {
334 | "Category": "design",
335 | "DefaultValue": "HelloPCF description",
336 | "Description": "",
337 | "DescriptionResourceString": "",
338 | "DisplayName": "Tooltip",
339 | "DisplayNameResourceString": "Tooltip",
340 | "HelperUI": "",
341 | "Hidden": false,
342 | "IsDataSourceProperty": false,
343 | "IsLinkableToParentTheme": false,
344 | "IsPrimaryBehavioral": false,
345 | "IsPrimaryInput": false,
346 | "IsPrimaryOutput": false,
347 | "IsResettable": false,
348 | "IsResettableToManifestDefault": false,
349 | "Name": "Tooltip",
350 | "NullDefaultValue": "",
351 | "ParentDataSetName": "",
352 | "PassThroughProperty": "",
353 | "PfxDefaultValue": null,
354 | "PhoneDefaultValue": "",
355 | "Required": false,
356 | "ShouldAutoBind": false,
357 | "Type": 3,
358 | "Usage": 0,
359 | "WebDefaultValue": ""
360 | }
361 | ],
362 | "Name": "HelloPCF",
363 | "Properties": [
364 | {
365 | "Category": "data",
366 | "DefaultValue": "",
367 | "Description": "Property_Desc_Key",
368 | "DescriptionResourceString": "Property_Desc_Key",
369 | "DisplayName": "Property_Display_Key",
370 | "DisplayNameResourceString": "Property_Display_Key",
371 | "EnumValues": [],
372 | "HelperUI": "",
373 | "Hidden": false,
374 | "IsDataSourceProperty": false,
375 | "IsLinkableToParentTheme": false,
376 | "IsPrimaryBehavioral": false,
377 | "IsPrimaryInput": false,
378 | "IsPrimaryOutput": false,
379 | "IsResettable": false,
380 | "IsResettableToManifestDefault": false,
381 | "Name": "sampleProperty",
382 | "ParentDataSetName": "",
383 | "PassThroughProperty": "",
384 | "PfxDefaultValue": "",
385 | "PhoneDefaultValue": "",
386 | "Required": false,
387 | "ShouldAutoBind": false,
388 | "Type": 6,
389 | "Usage": 2,
390 | "WebDefaultValue": ""
391 | },
392 | {
393 | "Category": "design",
394 | "DefaultValue": "",
395 | "Description": "",
396 | "DescriptionResourceString": "",
397 | "DisplayName": "PCFTeamsTheme",
398 | "DisplayNameResourceString": "",
399 | "HelperUI": "",
400 | "Hidden": true,
401 | "IsDataSourceProperty": false,
402 | "IsLinkableToParentTheme": false,
403 | "IsPrimaryBehavioral": false,
404 | "IsPrimaryInput": false,
405 | "IsPrimaryOutput": false,
406 | "IsResettable": false,
407 | "IsResettableToManifestDefault": false,
408 | "Name": "PCFTeamsTheme",
409 | "NullDefaultValue": "",
410 | "ParentDataSetName": "",
411 | "PassThroughProperty": "",
412 | "PfxDefaultValue": "",
413 | "PhoneDefaultValue": "",
414 | "Required": false,
415 | "ShouldAutoBind": false,
416 | "Type": 3,
417 | "Usage": 0,
418 | "WebDefaultValue": ""
419 | }
420 | ],
421 | "Resources": [
422 | {
423 | "IsControlSpecific": false,
424 | "LoadingOrder": 1,
425 | "ModifiedPath": "",
426 | "Path": "/PCF/prop-types.js",
427 | "Type": 0
428 | },
429 | {
430 | "IsControlSpecific": false,
431 | "LoadingOrder": 2,
432 | "ModifiedPath": "",
433 | "Path": "/PCF/react-fela.js",
434 | "Type": 0
435 | },
436 | {
437 | "IsControlSpecific": false,
438 | "LoadingOrder": 3,
439 | "ModifiedPath": "",
440 | "Path": "/PCF/fela.js",
441 | "Type": 0
442 | },
443 | {
444 | "IsControlSpecific": false,
445 | "LoadingOrder": 4,
446 | "ModifiedPath": "",
447 | "Path": "/PCF/fela-dom.js",
448 | "Type": 0
449 | },
450 | {
451 | "IsControlSpecific": false,
452 | "LoadingOrder": 5,
453 | "ModifiedPath": "",
454 | "Path": "/ctrllib/common/js/container.js",
455 | "Type": 0
456 | },
457 | {
458 | "IsControlSpecific": false,
459 | "LoadingOrder": 6,
460 | "ModifiedPath": "",
461 | "Path": "/ctrllib/PCFControls/js/PCFControlWrapper.js",
462 | "Type": 0
463 | },
464 | {
465 | "IsControlSpecific": false,
466 | "LoadingOrder": 7,
467 | "ModifiedPath": "",
468 | "Path": "/ctrllib/PcfControlProxy/js/PcfControlProxy.js",
469 | "Type": 0
470 | },
471 | {
472 | "IsControlSpecific": false,
473 | "LoadingOrder": 8,
474 | "ModifiedPath": "",
475 | "Path": "{\"Id\":\"ManifestTemplate\",\"Data\":{\"ConstructorName\":\"Devkeydet.HelloPCF\",\"CustomControlId\":\"Devkeydet.HelloPCF\",\"IsVirtual\":true,\"Properties\":{\"Resources\":[{\"Name\":\"/PCF/prop-types.js\",\"LoadOrder\":1,\"Type\":0,\"LibraryName\":null},{\"Name\":\"/PCF/react-fela.js\",\"LoadOrder\":2,\"Type\":0,\"LibraryName\":null},{\"Name\":\"/PCF/fela.js\",\"LoadOrder\":3,\"Type\":0,\"LibraryName\":null},{\"Name\":\"/PCF/fela-dom.js\",\"LoadOrder\":4,\"Type\":0,\"LibraryName\":null},{\"Name\":\"/ctrllib/common/js/container.js\",\"LoadOrder\":5,\"Type\":0,\"LibraryName\":null},{\"Name\":\"/ctrllib/PCFControls/js/PCFControlWrapper.js\",\"LoadOrder\":6,\"Type\":0,\"LibraryName\":null},{\"Name\":\"/ctrllib/PcfControlProxy/js/PcfControlProxy.js\",\"LoadOrder\":7,\"Type\":0,\"LibraryName\":null}],\"GroupDefinitions\":null,\"DataSetDefinitions\":{},\"Properties\":{\"sampleProperty\":{\"Required\":true,\"Usage\":0,\"DefaultValue\":\"\"}},\"FeatureUsage\":null},\"Events\":null,\"CommonEvents\":null,\"DesignMap\":null,\"PropertyDependencies\":[],\"Children\":null}}",
476 | "Type": 3
477 | },
478 | {
479 | "IsControlSpecific": false,
480 | "LoadingOrder": 9,
481 | "ModifiedPath": "",
482 | "Path": "{\"Id\":\"ManifestPropertyTypes\",\"Data\":{\"Properties\":[{\"Name\":\"sampleProperty\",\"Type\":\"SingleLine_Text\",\"ComplexType\":\"None\",\"IsPrimary\":false,\"IsIncluded\":false},{\"Name\":\"PCFTeamsTheme\",\"Type\":\"String\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"X\",\"Type\":\"Number\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"Y\",\"Type\":\"Number\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"Width\",\"Type\":\"Number\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"Height\",\"Type\":\"Number\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"Visible\",\"Type\":\"Boolean\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"DisplayMode\",\"Type\":\"DisplayMode\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"TabIndex\",\"Type\":\"Number\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true},{\"Name\":\"Tooltip\",\"Type\":\"String\",\"ComplexType\":\"\",\"IsPrimary\":false,\"IsIncluded\":true}]}}",
483 | "Type": 3
484 | },
485 | {
486 | "IsControlSpecific": false,
487 | "LoadingOrder": 10,
488 | "ModifiedPath": "",
489 | "Path": "{\"Id\":\"PowerAppsControlInfo\",\"Data\":{\"TemplateVersion\":1,\"Version\":\"0.0.1\",\"IsFirstParty\":false}}",
490 | "Type": 3
491 | },
492 | {
493 | "IsControlSpecific": true,
494 | "LoadingOrder": 11,
495 | "ModifiedPath": "https://docserverpwaprodeus.blob.core.windows.net/c555f268-2d8e-48ef-8693-46a55ab7eda4-1/appdynamicresources/D%253a0SvcFab0_App0PowerApps.WebAuthoringType_App980work03phz5gfs.ml4020S0Resources0Controls0Devkeydet.HelloPCF.bundle.js?skoid=58690ece-ec83-4ce2-9ce8-883d4d6a54ee&sktid=975f013f-7f24-47e8-a7d3-abc4752bf346&skt=2024-03-12T00%3A47%3A09Z&ske=2024-03-13T01%3A02%3A09Z&sks=b&skv=2022-11-02&sv=2022-11-02&spr=https&se=2024-03-13T01%3A02%3A09Z&sr=b&sp=r&sig=gH6VzYZ03a29AAoLLvRBDXyoSmi1rfNNp6d9TRy6RRE%3D",
496 | "Path": "/PCFControls/dkdt_Devkeydet.HelloPCF/Devkeydet.HelloPCF.bundle.js",
497 | "Type": 0
498 | },
499 | {
500 | "IsControlSpecific": false,
501 | "LoadingOrder": 12,
502 | "ModifiedPath": "",
503 | "Path": "{\"Id\":\"FormattingData\",\"Data\":{\"timeZoneUtcOffsetMinutes\":0,\"dateTimeFormatInfo\":{\"AMDesignator\":\"AM\",\"Calendar\":{\"MinSupportedDateTime\":\"0001-01-01T00:00:00\",\"MaxSupportedDateTime\":\"9999-12-31T23:59:59.9999999\",\"AlgorithmType\":1,\"CalendarType\":1,\"Eras\":[1],\"TwoDigitYearMax\":2049,\"IsReadOnly\":false},\"DateSeparator\":\"/\",\"FirstDayOfWeek\":0,\"CalendarWeekRule\":0,\"FullDateTimePattern\":\"dddd, MMMM d, yyyy h:mm:ss tt\",\"LongDatePattern\":\"dddd, MMMM d, yyyy\",\"LongTimePattern\":\"h:mm:ss tt\",\"MonthDayPattern\":\"MMMM d\",\"PMDesignator\":\"PM\",\"RFC1123Pattern\":\"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'\",\"ShortDatePattern\":\"M/d/yyyy\",\"ShortTimePattern\":\"h:mm tt\",\"SortableDateTimePattern\":\"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\"TimeSeparator\":\":\",\"UniversalSortableDateTimePattern\":\"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\",\"YearMonthPattern\":\"MMMM yyyy\",\"AbbreviatedDayNames\":[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],\"ShortestDayNames\":[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],\"DayNames\":[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],\"AbbreviatedMonthNames\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"\"],\"MonthNames\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"\"],\"IsReadOnly\":false,\"NativeCalendarName\":\"Gregorian Calendar\",\"AbbreviatedMonthGenitiveNames\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"\"],\"MonthGenitiveNames\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"\"]},\"numberFormatInfo\":{\"CurrencyDecimalDigits\":2,\"CurrencyDecimalSeparator\":\".\",\"IsReadOnly\":false,\"CurrencyGroupSizes\":[3],\"NumberGroupSizes\":[3],\"PercentGroupSizes\":[3],\"CurrencyGroupSeparator\":\",\",\"CurrencySymbol\":\"$\",\"NaNSymbol\":\"NaN\",\"CurrencyNegativePattern\":0,\"NumberNegativePattern\":1,\"PercentPositivePattern\":1,\"PercentNegativePattern\":1,\"NegativeInfinitySymbol\":\"-∞\",\"NegativeSign\":\"-\",\"NumberDecimalDigits\":2,\"NumberDecimalSeparator\":\".\",\"NumberGroupSeparator\":\",\",\"CurrencyPositivePattern\":0,\"PositiveInfinitySymbol\":\"∞\",\"PositiveSign\":\"+\",\"PercentDecimalDigits\":2,\"PercentDecimalSeparator\":\".\",\"PercentGroupSeparator\":\",\",\"PercentSymbol\":\"%\",\"PerMilleSymbol\":\"‰\",\"NativeDigits\":[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],\"DigitSubstitution\":1},\"timeZoneAdjusters\":[],\"formatInfoCultureName\":\"en-US\",\"formatter\":null,\"languagesByCode\":{\"1033\":\"English (United States)\",\"-1\":\"All Languages\"}}}",
504 | "Type": 3
505 | },
506 | {
507 | "IsControlSpecific": false,
508 | "LoadingOrder": 5,
509 | "ModifiedPath": "",
510 | "Path": "/PCF/fluentui-react.js",
511 | "Type": 0
512 | },
513 | {
514 | "IsControlSpecific": false,
515 | "LoadingOrder": 0,
516 | "ModifiedPath": "",
517 | "Path": "React/16.8.6/16.8.6",
518 | "Type": 4
519 | },
520 | {
521 | "IsControlSpecific": false,
522 | "LoadingOrder": 0,
523 | "ModifiedPath": "",
524 | "Path": "Fluent/8.29.0/8.29.0",
525 | "Type": 4
526 | }
527 | ],
528 | "Version": "0.0.1"
529 | }
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/FormXml/card/{25b3ccbb-4943-4a93-afde-fd48cfe8a1ee}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {25b3ccbb-4943-4a93-afde-fd48cfe8a1ee}
5 | 1.0
6 | 1
7 | 1
8 |
103 | 1
104 | 1
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/FormXml/card/{25b3ccbb-4943-4a93-afde-fd48cfe8a1ee}_managed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {25b3ccbb-4943-4a93-afde-fd48cfe8a1ee}
5 | 1.0
6 | 1
7 | 1
8 |
103 | 1
104 | 1
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/FormXml/main/{331cdb0e-d1c4-4534-87b8-233dfb46aa0c}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {331cdb0e-d1c4-4534-87b8-233dfb46aa0c}
5 | 1.0
6 | 1
7 | 1
8 |
101 | 1
102 | 1
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/FormXml/main/{331cdb0e-d1c4-4534-87b8-233dfb46aa0c}_managed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {331cdb0e-d1c4-4534-87b8-233dfb46aa0c}
5 | 1.0
6 | 1
7 | 1
8 |
101 | 1
102 | 1
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/FormXml/quick/{e837c91b-abc6-4588-92bc-ac88d8739520}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {e837c91b-abc6-4588-92bc-ac88d8739520}
5 | 1.0
6 | 1
7 | 1
8 |
46 | 1
47 | 1
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/FormXml/quick/{e837c91b-abc6-4588-92bc-ac88d8739520}_managed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {e837c91b-abc6-4588-92bc-ac88d8739520}
5 | 1.0
6 | 1
7 | 1
8 |
46 | 1
47 | 1
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/RibbonDiff.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/SavedQueries/{2175ac42-aa67-4973-9e72-2d37020dff35}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 0
6 | 0
7 | 0
8 | 1
9 | {2175ac42-aa67-4973-9e72-2d37020dff35}
10 |
11 |
12 |
13 | |
14 | |
15 |
16 |
17 |
18 | 1
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | 1.0
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/SavedQueries/{2ec65e61-6de0-ee11-904d-000d3a5c4369}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 1
6 | 0
7 | 0
8 | 1
9 | {2ec65e61-6de0-ee11-904d-000d3a5c4369}
10 | 8192
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 1.0
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/SavedQueries/{5144ea36-feea-4311-90a5-da462d77b8e2}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 0
6 | 0
7 | 0
8 | 1
9 | {5144ea36-feea-4311-90a5-da462d77b8e2}
10 |
11 |
12 |
13 | |
14 | |
15 |
16 |
17 |
18 | 64
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | 1.0
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/SavedQueries/{824c0132-f517-4a15-8767-265a8fcacaec}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 0
6 | 0
7 | 0
8 | 0
9 | {824c0132-f517-4a15-8767-265a8fcacaec}
10 |
11 |
12 |
13 | |
14 | |
15 |
16 |
17 |
18 | 0
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 1.0
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/SavedQueries/{90dff77a-68a1-4d05-b541-ceec278de7ba}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 0
6 | 0
7 | 0
8 | 1
9 | {90dff77a-68a1-4d05-b541-ceec278de7ba}
10 |
11 |
12 |
13 | |
14 | |
15 |
16 |
17 |
18 | 2
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 1.0
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/SavedQueries/{b3aabf42-eb48-4354-a9c4-8cf4a8030921}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 0
6 | 0
7 | 0
8 | 1
9 | {b3aabf42-eb48-4354-a9c4-8cf4a8030921}
10 |
11 |
12 |
13 | |
14 | |
15 |
16 |
17 |
18 | 0
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 1.0
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/Entities/dkdt_HelloFusionDevTable/SavedQueries/{d751ed18-9c61-4302-8c66-1ae5272f3467}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 0
6 | 1
7 | 0
8 | 1
9 | {d751ed18-9c61-4302-8c66-1ae5272f3467}
10 |
11 |
12 |
13 | |
14 | |
15 |
16 |
17 |
18 | 4
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | 1.0
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/Other/Customizations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | 1033
22 |
23 |
--------------------------------------------------------------------------------
/src/Other/Relationships.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Other/Relationships/BusinessUnit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | OneToMany
5 | 1
6 | 1.0
7 | 0
8 | dkdt_HelloFusionDevTable
9 | BusinessUnit
10 | NoCascade
11 | Restrict
12 | NoCascade
13 | NoCascade
14 | NoCascade
15 | NoCascade
16 | OwningBusinessUnit
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/Other/Relationships/Owner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | OneToMany
5 | 1
6 | 1.0
7 | 0
8 | dkdt_HelloFusionDevTable
9 | Owner
10 | NoCascade
11 | NoCascade
12 | NoCascade
13 | NoCascade
14 | NoCascade
15 | NoCascade
16 | OwnerId
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/Other/Relationships/SystemUser.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | OneToMany
5 | 1
6 | 1.0
7 | 0
8 | dkdt_HelloFusionDevTable
9 | SystemUser
10 | NoCascade
11 | NoCascade
12 | NoCascade
13 | NoCascade
14 | NoCascade
15 | NoCascade
16 | CreatedBy
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | OneToMany
25 | 1
26 | 1.0
27 | 0
28 | dkdt_HelloFusionDevTable
29 | SystemUser
30 | NoCascade
31 | NoCascade
32 | NoCascade
33 | NoCascade
34 | NoCascade
35 | NoCascade
36 | ModifiedBy
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | OneToMany
45 | 1
46 | 1.0
47 | 0
48 | dkdt_HelloFusionDevTable
49 | SystemUser
50 | NoCascade
51 | NoCascade
52 | NoCascade
53 | NoCascade
54 | NoCascade
55 | NoCascade
56 | OwningUser
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/src/Other/Relationships/Team.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | OneToMany
5 | 1
6 | 1.0
7 | 0
8 | dkdt_HelloFusionDevTable
9 | Team
10 | NoCascade
11 | NoCascade
12 | NoCascade
13 | NoCascade
14 | NoCascade
15 | NoCascade
16 | OwningTeam
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/Other/Solution.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | HelloFusionDev
5 |
6 |
7 |
8 |
9 | 1.0.0.0
10 | 2
11 |
12 | devkeydet
13 |
14 |
15 |
16 |
17 |
18 |
19 | dkdt
20 | 40055
21 |
22 |
23 | 1
24 | 1
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | 1
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | 2
52 | 1
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | 1
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/src/PluginAssemblies/HelloPluginAssembly-07EE5081-D1D6-4554-88EF-1E56DDD5831A/HelloPluginAssembly.dll.data.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2
4 | 0
5 | 1.0
6 | /PluginAssemblies/HelloPluginAssembly-07EE5081-D1D6-4554-88EF-1E56DDD5831A/HelloPluginAssembly.dll
7 |
8 |
9 | 4b2eadf0-656f-4321-8715-0cb6c28aa08f
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/SdkMessageProcessingSteps/{54ab59e2-0be0-ee11-904c-000d3a35ff1d}.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 9ebdbb1b-ea3e-db11-86a7-000a3a5473e8
4 | HelloPluginAssembly.Plugin1, HelloPluginAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d48a0241567f1680
5 | 1289988f-0217-41ab-8e40-19cc6b1d10e7
6 | account
7 | 0
8 | HelloPluginAssembly.Plugin1: Create of account
9 |
10 | 0
11 | 0
12 | 1
13 | 4602
14 | 10
15 | 1
16 | 0
17 | 0
18 | 1.0
19 |
20 |
--------------------------------------------------------------------------------
/src/WebResources/dkdt_/HelloFusionDev/js/wr-bundle.js.data.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {ad720529-6fe0-ee11-904c-000d3a35ff1d}
4 | dkdt_/HelloFusionDev/js/wr-bundle.js
5 | dkdt_/HelloFusionDev/js/wr-bundle.js
6 | 0
7 | 3
8 | 1.0.0.0
9 | 0
10 | 0
11 | 1
12 | 1
13 | 0
14 | /WebResources/dkdt_HelloFusionDevjswr-bundlejsAD720529-6FE0-EE11-904C-000D3A35FF1D
15 |
--------------------------------------------------------------------------------
/webresource-src/HelloFusionDevForm.ts:
--------------------------------------------------------------------------------
1 | export class HelloFusionDevForm {
2 | static readonly nameColumn = "dkdt_name";
3 |
4 | static async onLoad(context: Xrm.Events.EventContext): Promise {
5 | context.getFormContext().getAttribute(HelloFusionDevForm.nameColumn).addOnChange(HelloFusionDevForm.onNameChanged);
6 | }
7 |
8 | static onNameChanged(context: Xrm.Events.EventContext): void {
9 | const formContext = context.getFormContext();
10 | const nameAttribute = formContext.getAttribute(HelloFusionDevForm.nameColumn);
11 | alert(nameAttribute.getValue());
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/webresource-src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './HelloFusionDevForm';
--------------------------------------------------------------------------------
/webresource-src/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ts",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "author": "",
7 | "license": "ISC",
8 | "devDependencies": {
9 | "@types/node": "^20.11.25",
10 | "@types/xrm": "^9.0.78",
11 | "clean-webpack-plugin": "^4.0.0",
12 | "ts-loader": "^9.5.1",
13 | "typescript": "^5.4.2",
14 | "webpack": "^5.90.3",
15 | "webpack-cli": "^5.1.4",
16 | "webpack-merge": "^5.10.0"
17 | },
18 | "scripts": {
19 | "build": "webpack --config webpack.dev.js",
20 | "start": "webpack --config webpack.dev.js --watch",
21 | "prod": "webpack --config webpack.prod.js"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/webresource-src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES6",
4 | "module": "commonjs",
5 | "esModuleInterop": true,
6 | "forceConsistentCasingInFileNames": true,
7 | "strict": true,
8 | "skipLibCheck": true,
9 | "sourceMap": true,
10 | "lib": ["es2016", "dom"],
11 | "moduleResolution": "node"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/webresource-src/webpack.common.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const { CleanWebpackPlugin } = require("clean-webpack-plugin");
3 |
4 | // module.exports = (env, argv) => {
5 | // console.log("argv.mode: " + argv.mode);
6 | // }
7 |
8 | module.exports = {
9 | entry: "./index.ts",
10 | module: {
11 | rules: [{
12 | test: /\.tsx?$/,
13 | use: "ts-loader",
14 | exclude: /node_modules/,
15 | },],
16 | },
17 | resolve: {
18 | extensions: [".tsx", ".ts", ".js"],
19 | },
20 | output: {
21 | filename: "wr-bundle.js",
22 | library: ["Devkeydet", "HelloFusionDev"],
23 | libraryTarget: "var"
24 | },
25 | plugins: [new CleanWebpackPlugin()]
26 | };
--------------------------------------------------------------------------------
/webresource-src/webpack.dev.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const { merge } = require('webpack-merge');
3 | const common = require('./webpack.common.js');
4 |
5 | module.exports = merge(common, {
6 | mode: 'development',
7 | devtool: 'eval-source-map',
8 | output: {
9 | path: path.resolve("../obj/debug", "webresource-src")
10 | }
11 | });
--------------------------------------------------------------------------------
/webresource-src/webpack.prod.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const { merge } = require("webpack-merge");
3 | const common = require("./webpack.common.js");
4 |
5 | module.exports = merge(common, {
6 | mode: "production",
7 | output: {
8 | path: path.resolve("../obj/release", "webresource-src")
9 | }
10 | });
--------------------------------------------------------------------------------