@mikezimm/fps-library-v2 1.0.31 → 1.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/lib/banner/FPSWebPartClass/BuildBannerPropsX2.js +1 -1
  3. package/lib/banner/FPSWebPartClass/BuildBannerPropsX2.js.map +1 -1
  4. package/lib/banner/FPSWebPartClass/runOnPropChange.d.ts.map +1 -1
  5. package/lib/banner/FPSWebPartClass/runOnPropChange.js +25 -0
  6. package/lib/banner/FPSWebPartClass/runOnPropChange.js.map +1 -1
  7. package/lib/banner/components/EasyPages/functions.d.ts +1 -1
  8. package/lib/banner/components/EasyPages/functions.d.ts.map +1 -1
  9. package/lib/banner/components/SpecialBanner/component.d.ts +1 -1
  10. package/lib/banner/components/SpecialBanner/component.d.ts.map +1 -1
  11. package/lib/banner/features/Expando/functions.d.ts +1 -1
  12. package/lib/banner/features/Expando/functions.d.ts.map +1 -1
  13. package/lib/banner/features/FPSDOM/FPSEnviro.js +2 -2
  14. package/lib/banner/features/FPSDOM/FPSEnviro.js.map +1 -1
  15. package/lib/banner/features/PageStyle/minimzeToolbar.d.ts +2 -2
  16. package/lib/banner/features/PageStyle/minimzeToolbar.d.ts.map +1 -1
  17. package/lib/banner/features/PageStyle/setAllSectionStyles.d.ts +1 -1
  18. package/lib/banner/features/PageStyle/setAllSectionStyles.d.ts.map +1 -1
  19. package/lib/banner/features/PinMe/FPSPinMenu.d.ts +1 -1
  20. package/lib/banner/features/PinMe/FPSPinMenu.d.ts.map +1 -1
  21. package/lib/banner/mainReact/IWebpartBannerProps.d.ts +1 -1
  22. package/lib/banner/mainReact/IWebpartBannerProps.d.ts.map +1 -1
  23. package/lib/banner/propPane/controls.d.ts +1 -1
  24. package/lib/banner/propPane/controls.d.ts.map +1 -1
  25. package/lib/common/interfaces/openSource/spfxControlsReact/@3.7.2/IViewField.d.ts +139 -0
  26. package/lib/common/interfaces/openSource/spfxControlsReact/@3.7.2/IViewField.d.ts.map +1 -0
  27. package/lib/common/interfaces/openSource/spfxControlsReact/@3.7.2/IViewField.js +2 -0
  28. package/lib/common/interfaces/openSource/spfxControlsReact/@3.7.2/IViewField.js.map +1 -0
  29. package/lib/components/atoms/Elements/basic.d.ts +1 -1
  30. package/lib/components/atoms/Elements/basic.d.ts.map +1 -1
  31. package/lib/components/molecules/Accordion/Accordion.d.ts +24 -0
  32. package/lib/components/molecules/Accordion/Accordion.d.ts.map +1 -0
  33. package/lib/components/molecules/Accordion/Accordion.js +55 -0
  34. package/lib/components/molecules/Accordion/Accordion.js.map +1 -0
  35. package/lib/components/molecules/Arrows/PageArrows.d.ts +44 -0
  36. package/lib/components/molecules/Arrows/PageArrows.d.ts.map +1 -0
  37. package/lib/components/molecules/Arrows/PageArrows.js +134 -0
  38. package/lib/components/molecules/Arrows/PageArrows.js.map +1 -0
  39. package/lib/components/molecules/Performance/tables.d.ts +1 -1
  40. package/lib/components/molecules/Performance/tables.d.ts.map +1 -1
  41. package/lib/components/molecules/PropPaneCols/PropPaneCols.module.scss.d.ts +3 -0
  42. package/lib/components/molecules/PropPaneCols/PropPaneCols.module.scss.d.ts.map +1 -0
  43. package/lib/components/molecules/PropPaneCols/PropPaneCols.module.scss.js +6 -0
  44. package/lib/components/molecules/PropPaneCols/PropPaneCols.module.scss.js.map +1 -0
  45. package/lib/components/molecules/PropPaneCols/PropPaneColsClass.d.ts +42 -0
  46. package/lib/components/molecules/PropPaneCols/PropPaneColsClass.d.ts.map +1 -0
  47. package/lib/components/molecules/PropPaneCols/PropPaneColsClass.js +240 -0
  48. package/lib/components/molecules/PropPaneCols/PropPaneColsClass.js.map +1 -0
  49. package/lib/components/molecules/PropPaneCols/PropPaneColsHook.d.ts +1 -0
  50. package/lib/components/molecules/PropPaneCols/PropPaneColsHook.d.ts.map +1 -0
  51. package/lib/components/molecules/PropPaneCols/PropPaneColsHook.js +135 -0
  52. package/lib/components/molecules/PropPaneCols/PropPaneColsHook.js.map +1 -0
  53. package/lib/components/molecules/PropPaneCols/components/FieldPanel.d.ts +10 -0
  54. package/lib/components/molecules/PropPaneCols/components/FieldPanel.d.ts.map +1 -0
  55. package/lib/components/molecules/PropPaneCols/components/FieldPanel.js +43 -0
  56. package/lib/components/molecules/PropPaneCols/components/FieldPanel.js.map +1 -0
  57. package/lib/components/molecules/PropPaneCols/components/IPropPaneColsProps.d.ts +87 -0
  58. package/lib/components/molecules/PropPaneCols/components/IPropPaneColsProps.d.ts.map +1 -0
  59. package/lib/components/molecules/PropPaneCols/components/IPropPaneColsProps.js +2 -0
  60. package/lib/components/molecules/PropPaneCols/components/IPropPaneColsProps.js.map +1 -0
  61. package/lib/components/molecules/PropPaneCols/components/OnClickHelpers.d.ts +18 -0
  62. package/lib/components/molecules/PropPaneCols/components/OnClickHelpers.d.ts.map +1 -0
  63. package/lib/components/molecules/PropPaneCols/components/OnClickHelpers.js +120 -0
  64. package/lib/components/molecules/PropPaneCols/components/OnClickHelpers.js.map +1 -0
  65. package/lib/components/molecules/PropPaneCols/components/command/Accordion.d.ts +17 -0
  66. package/lib/components/molecules/PropPaneCols/components/command/Accordion.d.ts.map +1 -0
  67. package/lib/components/molecules/PropPaneCols/components/command/Accordion.js +229 -0
  68. package/lib/components/molecules/PropPaneCols/components/command/Accordion.js.map +1 -0
  69. package/lib/components/molecules/PropPaneCols/components/command/IAccordion.d.ts +69 -0
  70. package/lib/components/molecules/PropPaneCols/components/command/IAccordion.d.ts.map +1 -0
  71. package/lib/components/molecules/PropPaneCols/components/command/IAccordion.js +73 -0
  72. package/lib/components/molecules/PropPaneCols/components/command/IAccordion.js.map +1 -0
  73. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign copy.d.ts +9 -0
  74. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign copy.d.ts.map +1 -0
  75. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign copy.js +61 -0
  76. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign copy.js.map +1 -0
  77. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign.d.ts +10 -0
  78. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign.d.ts.map +1 -0
  79. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign.js +66 -0
  80. package/lib/components/molecules/PropPaneCols/components/command/SampleDesign.js.map +1 -0
  81. package/lib/components/molecules/PropPaneCols/components/command/createLogic.d.ts +13 -0
  82. package/lib/components/molecules/PropPaneCols/components/command/createLogic.d.ts.map +1 -0
  83. package/lib/components/molecules/PropPaneCols/components/command/createLogic.js +397 -0
  84. package/lib/components/molecules/PropPaneCols/components/command/createLogic.js.map +1 -0
  85. package/lib/components/molecules/PropPaneCols/components/command/helpers.d.ts +2 -0
  86. package/lib/components/molecules/PropPaneCols/components/command/helpers.d.ts.map +1 -0
  87. package/lib/components/molecules/PropPaneCols/components/command/helpers.js +2 -0
  88. package/lib/components/molecules/PropPaneCols/components/command/helpers.js.map +1 -0
  89. package/lib/components/molecules/PropPaneCols/components/command/tableRows.d.ts +5 -0
  90. package/lib/components/molecules/PropPaneCols/components/command/tableRows.d.ts.map +1 -0
  91. package/lib/components/molecules/PropPaneCols/components/command/tableRows.js +25 -0
  92. package/lib/components/molecules/PropPaneCols/components/command/tableRows.js.map +1 -0
  93. package/lib/components/molecules/PropPaneCols/components/common.d.ts +4 -0
  94. package/lib/components/molecules/PropPaneCols/components/common.d.ts.map +1 -0
  95. package/lib/components/molecules/PropPaneCols/components/common.js +16 -0
  96. package/lib/components/molecules/PropPaneCols/components/common.js.map +1 -0
  97. package/lib/components/molecules/PropPaneCols/components/fetch/Pane.d.ts +11 -0
  98. package/lib/components/molecules/PropPaneCols/components/fetch/Pane.d.ts.map +1 -0
  99. package/lib/components/molecules/PropPaneCols/components/fetch/Pane.js +51 -0
  100. package/lib/components/molecules/PropPaneCols/components/fetch/Pane.js.map +1 -0
  101. package/lib/components/molecules/PropPaneCols/components/fetch/funcions.d.ts +3 -0
  102. package/lib/components/molecules/PropPaneCols/components/fetch/funcions.d.ts.map +1 -0
  103. package/lib/components/molecules/PropPaneCols/components/fetch/funcions.js +96 -0
  104. package/lib/components/molecules/PropPaneCols/components/fetch/funcions.js.map +1 -0
  105. package/lib/components/molecules/PropPaneCols/components/main/FieldTable.d.ts +14 -0
  106. package/lib/components/molecules/PropPaneCols/components/main/FieldTable.d.ts.map +1 -0
  107. package/lib/components/molecules/PropPaneCols/components/main/FieldTable.js +68 -0
  108. package/lib/components/molecules/PropPaneCols/components/main/FieldTable.js.map +1 -0
  109. package/lib/components/molecules/PropPaneCols/components/main/Pane.d.ts +13 -0
  110. package/lib/components/molecules/PropPaneCols/components/main/Pane.d.ts.map +1 -0
  111. package/lib/components/molecules/PropPaneCols/components/main/Pane.js +87 -0
  112. package/lib/components/molecules/PropPaneCols/components/main/Pane.js.map +1 -0
  113. package/lib/components/molecules/PropPaneCols/components/selected/TableHook.d.ts +9 -0
  114. package/lib/components/molecules/PropPaneCols/components/selected/TableHook.d.ts.map +1 -0
  115. package/lib/components/molecules/PropPaneCols/components/selected/TableHook.js +63 -0
  116. package/lib/components/molecules/PropPaneCols/components/selected/TableHook.js.map +1 -0
  117. package/lib/components/molecules/PropPaneCols/components/selected/functions.d.ts +5 -0
  118. package/lib/components/molecules/PropPaneCols/components/selected/functions.d.ts.map +1 -0
  119. package/lib/components/molecules/PropPaneCols/components/selected/functions.js +59 -0
  120. package/lib/components/molecules/PropPaneCols/components/selected/functions.js.map +1 -0
  121. package/lib/components/molecules/PropPaneCols/components/views/Accordion.d.ts +12 -0
  122. package/lib/components/molecules/PropPaneCols/components/views/Accordion.d.ts.map +1 -0
  123. package/lib/components/molecules/PropPaneCols/components/views/Accordion.js +29 -0
  124. package/lib/components/molecules/PropPaneCols/components/views/Accordion.js.map +1 -0
  125. package/lib/components/molecules/PropPaneCols/components/views/functions.d.ts +5 -0
  126. package/lib/components/molecules/PropPaneCols/components/views/functions.d.ts.map +1 -0
  127. package/lib/components/molecules/PropPaneCols/components/views/functions.js +133 -0
  128. package/lib/components/molecules/PropPaneCols/components/views/functions.js.map +1 -0
  129. package/lib/logic/Errors/friendly.d.ts +1 -1
  130. package/lib/logic/Errors/friendly.d.ts.map +1 -1
  131. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropPaneColsHook.js","sourceRoot":"","sources":["../../../../src/components/molecules/PropPaneCols/PropPaneColsHook.tsx"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,+CAA+C;AAE/C,+DAA+D;AAE/D,yBAAyB;AACzB,yCAAyC;AAEzC,oFAAoF;AAEpF,iEAAiE;AACjE,yEAAyE;AAEzE,oKAAoK;AAEpK,4DAA4D;AAE5D,iDAAiD;AAEjD,gNAAgN;AAEhN,0CAA0C;AAE1C,kDAAkD;AAElD,IAAI;AAEJ,sCAAsC;AACtC,oBAAoB;AACpB,uBAAuB;AACvB,uIAAuI;AACvI,sEAAsE;AACtE,oIAAoI;AACpI,mEAAmE;AACnE,IAAI;AAEJ,oEAAoE;AAEpE,YAAY;AACZ,kBAAkB;AAClB,eAAe;AACf,eAAe;AAEf,mFAAmF;AAEnF,+DAA+D;AAC/D,0DAA0D;AAC1D,qEAAqE;AAErE,sBAAsB;AACtB,sBAAsB;AACtB,gCAAgC;AAChC,8EAA8E;AAC9E,gBAAgB;AAChB,yCAAyC;AACzC,iFAAiF;AACjF,4EAA4E;AAC5E,2CAA2C;AAC3C,+DAA+D;AAC/D,iIAAiI;AACjI,uGAAuG;AACvG,8CAA8C;AAC9C,+CAA+C;AAE/C,sBAAsB;AACtB,oDAAoD;AACpD,cAAc;AAEd,wBAAwB;AACxB,4DAA4D;AAC5D,4CAA4C;AAC5C,YAAY;AAEZ,mEAAmE;AACnE,UAAU;AACV,UAAU;AAEV,qEAAqE;AAErE,mCAAmC;AAEnC,mCAAmC;AACnC,uBAAuB;AACvB,aAAa;AACb,wBAAwB;AACxB,yBAAyB;AACzB,gCAAgC;AAChC,+BAA+B;AAC/B,cAAc;AACd,SAAS;AAET,gDAAgD;AAChD,yBAAyB;AACzB,2CAA2C;AAC3C,iCAAiC;AACjC,wCAAwC;AACxC,uCAAuC;AACvC,eAAe;AACf,+BAA+B;AAE/B,UAAU;AACV,MAAM;AAEN,uCAAuC;AACvC,kDAAkD;AAClD,OAAO;AAEP,aAAa;AAEb,+DAA+D;AAC/D,0CAA0C;AAC1C,mEAAmE;AACnE,gCAAgC;AAChC,eAAe;AAEf,gBAAgB;AAChB,wBAAwB;AACxB,iBAAiB;AACjB,aAAa;AACb,OAAO;AACP,IAAI;AAGJ,qKAAqK;AACrK,mJAAmJ;AAEnJ,yDAAyD;AAEzD,2CAA2C;AAE3C,mDAAmD;AACnD,2GAA2G;AAC3G,yEAAyE;AAEzE,2BAA2B;AAE3B,kBAAkB;AAClB,uCAAuC;AACvC,+CAA+C;AAC/C,kHAAkH;AAClH,+EAA+E;AAE/E,gBAAgB;AAChB,0BAA0B;AAC1B,oHAAoH;AAEpH,cAAc;AAEd,oFAAoF;AAEpF,OAAO;AAIP,2EAA2E;AAC3E,iGAAiG;AACjG,sCAAsC;AAEtC,wBAAwB;AACxB,cAAc;AACd,yBAAyB;AACzB,0BAA0B;AAC1B,iCAAiC;AACjC,gCAAgC;AAChC,eAAe;AAEf,SAAS;AACT,6CAA6C;AAC7C,0BAA0B;AAC1B,4CAA4C;AAC5C,kCAAkC;AAClC,yCAAyC;AACzC,wCAAwC;AACxC,gBAAgB;AAEhB,gCAAgC;AAEhC,WAAW;AAEX,yBAAyB;AAEzB,OAAO;AAEP,iCAAiC"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { IMinField } from "./IPropPaneColsProps";
3
+ export interface IPanelItemProps {
4
+ panelItem: IMinField;
5
+ searchText: string;
6
+ onClosePanel: any;
7
+ }
8
+ declare const SelectedItemPanelHook: React.FC<IPanelItemProps>;
9
+ export default SelectedItemPanelHook;
10
+ //# sourceMappingURL=FieldPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldPanel.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/PropPaneCols/components/FieldPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAE;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;CAEnB;AAED,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsDpD,CAAA;AAED,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import * as React from 'react';
2
+ import { useState } from 'react';
3
+ import { Panel, PanelType } from 'office-ui-fabric-react/lib/Panel';
4
+ import ReactJson from 'react-json-view';
5
+ import { panelActionToggles } from './common';
6
+ import { getHighlightedText } from '../../../atoms/Elements/HighlightedText';
7
+ const randomColors = ['black', 'red', 'blue', 'purple', 'brown', 'darkgreen', 'orange',];
8
+ const SelectedItemPanelHook = (props) => {
9
+ const { panelItem, searchText, onClosePanel } = props; //onClosePanel
10
+ const [type, setSide] = useState(PanelType.custom);
11
+ const [blocking, setBlock] = useState(true);
12
+ const panelItemAny = panelItem;
13
+ function fieldRow(prop, idx) {
14
+ const color = randomColors[(idx + randomColors.length) % randomColors.length];
15
+ return panelItemAny[prop] === undefined || panelItemAny[prop] === '' || panelItemAny[prop] === null ? null :
16
+ React.createElement("li", { key: prop, style: { marginBottom: '3px' } },
17
+ prop,
18
+ " : ",
19
+ React.createElement("span", { style: { fontWeight: 500, color: color } }, JSON.stringify(panelItemAny[prop])));
20
+ }
21
+ // const IconStyles: React.CSSProperties = { cursor: 'pointer', fontSize: 'x-large', marginLeft: '20px' };
22
+ const AttachPanel = !panelItem ? null :
23
+ React.createElement(Panel, { isOpen: panelItem ? true : false, type: type, isBlocking: blocking,
24
+ // onDismiss={ onClosePanel }
25
+ onDismiss: () => onClosePanel(), headerText: `${panelItem.Title} - ${panelItem.InternalName}`, closeButtonAriaLabel: "Close", isLightDismiss: true, customWidth: '700px' },
26
+ panelActionToggles(type, blocking, setSide, setBlock),
27
+ React.createElement("ul", { style: { marginBottom: '30px', fontSize: 'larger' } }, ['Description', 'TypeAsString', 'Group', 'FillInChoice', 'Choices', 'Formula', 'DefaultValue'].map((prop, idx) => {
28
+ return fieldRow(prop, idx);
29
+ })),
30
+ React.createElement("ul", { style: { marginBottom: '30px', fontSize: 'larger' } }, ['Required', 'EnforceUniqueValues', 'ReadOnlyField', 'Indexed', 'IndexStatus',].map((prop, idx) => {
31
+ return fieldRow(prop, idx);
32
+ })),
33
+ React.createElement("ul", { style: { fontSize: 'larger' } }, ['searchTextLC',].map((prop, idx) => {
34
+ return React.createElement("li", { key: prop },
35
+ prop,
36
+ " : ",
37
+ React.createElement("span", { style: { color: 'purple' } }, getHighlightedText(JSON.stringify(panelItemAny[prop]), searchText.toLowerCase())));
38
+ })),
39
+ React.createElement(ReactJson, { src: panelItem, name: 'Field Details', collapsed: false, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, style: { padding: '20px 0px' }, theme: 'rjv-default', indentWidth: 2 }));
40
+ return (AttachPanel);
41
+ };
42
+ export default SelectedItemPanelHook;
43
+ //# sourceMappingURL=FieldPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldPanel.js","sourceRoot":"","sources":["../../../../../src/components/molecules/PropPaneCols/components/FieldPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { DisplayMode } from '@microsoft/sp-core-library';
2
+ import { IFieldInfo } from "@pnp/sp/presets/all";
3
+ export type IValidTemplate = 100 | 101;
4
+ export interface IMinListProps {
5
+ webURL: string;
6
+ listTitle: string;
7
+ }
8
+ export interface IFieldPanelProps {
9
+ displayMode: DisplayMode;
10
+ lists: IMinListProps[];
11
+ disableDesign?: boolean;
12
+ tryCommands?: any;
13
+ saveCommands?: any;
14
+ tryViews?: any;
15
+ saveViews?: any;
16
+ }
17
+ /**
18
+ * IFieldPanelFetchState was split off to easily return back object from the fetch
19
+ */
20
+ export interface IFieldPanelFetchState {
21
+ listFields: IMinField[];
22
+ filtered: IMinField[];
23
+ selected: IMinField[];
24
+ status: string;
25
+ fetched: boolean;
26
+ searchText: string;
27
+ searchProp: string;
28
+ errMessage: string;
29
+ }
30
+ export interface IFieldPanelState extends IFieldPanelFetchState {
31
+ listIdx: number;
32
+ designMode: boolean;
33
+ fullDesign: boolean;
34
+ panelItem: IMinField;
35
+ }
36
+ export declare const IsEditable: string;
37
+ /**
38
+ * MEMO TO SELF... IMinFieldCmds Interface keys ARE TIED DIRECTLY TO THE IAllActionTypes types in CommandAccordion.tsx .
39
+ *
40
+ * If you add one here, you need to also update that interface by hand.
41
+ *
42
+ */
43
+ export interface IMinFieldCmds {
44
+ showToUser?: boolean;
45
+ hideFromUser?: boolean;
46
+ setUser?: boolean;
47
+ addUser?: boolean;
48
+ removeUser?: boolean;
49
+ clearUsers?: boolean;
50
+ showOnTrue?: boolean;
51
+ showOnFalse?: boolean;
52
+ showOnNull?: boolean;
53
+ setTrue?: boolean;
54
+ setFalse?: boolean;
55
+ setToggle?: boolean;
56
+ perChoice?: boolean;
57
+ promoteChoice?: boolean;
58
+ demoteChoice?: boolean;
59
+ bracketChoice?: boolean;
60
+ rejectLast?: boolean;
61
+ clearDate?: boolean;
62
+ setToday?: boolean;
63
+ set1Week?: boolean;
64
+ set1Month?: boolean;
65
+ depends?: boolean;
66
+ showIfPast?: boolean;
67
+ showIfFuture?: boolean;
68
+ replaceText?: boolean;
69
+ promptText?: boolean;
70
+ captcha?: boolean;
71
+ appendNote?: boolean;
72
+ replaceNote?: boolean;
73
+ }
74
+ export interface IMinField extends IFieldInfo {
75
+ idx: number;
76
+ searchTextLC: string;
77
+ isSelected: boolean;
78
+ isKeeper: boolean;
79
+ commands: IMinFieldCmds;
80
+ Choices?: string[];
81
+ DisplayFormat?: 0 | 1;
82
+ Formula?: string;
83
+ NumberOfLines?: number;
84
+ MaxLength?: number;
85
+ FileLeafRef?: string;
86
+ }
87
+ //# sourceMappingURL=IPropPaneColsProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPropPaneColsProps.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/PropPaneCols/components/IPropPaneColsProps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export const IsEditable = 'IsEditable';
2
+ //# sourceMappingURL=IPropPaneColsProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPropPaneColsProps.js","sourceRoot":"","sources":["../../../../../src/components/molecules/PropPaneCols/components/IPropPaneColsProps.ts"],"names":[],"mappings":"AAkDA,MAAM,CAAC,MAAM,UAAU,GAAW,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { IMinField } from "./IPropPaneColsProps";
3
+ export interface ISelectedInfo {
4
+ listFields: IMinField[];
5
+ selected: IMinField[];
6
+ designMode: boolean;
7
+ }
8
+ export declare function getMainSelectedItems(ev: React.MouseEvent<HTMLElement>, listFields: IMinField[], selected: IMinField[]): IMinField[];
9
+ export declare function updateSelectedInfo(ev: React.MouseEvent<HTMLElement>, listFields: IMinField[], selected: IMinField[], searchText: string): ISelectedInfo;
10
+ /**
11
+ * Does not work as desired.... not using now.
12
+ * @param ev
13
+ * @param listFields
14
+ * @param selected
15
+ * @returns
16
+ */
17
+ export declare function selectAllofType(ev: React.MouseEvent<HTMLElement>, listFields: IMinField[], selected: IMinField[]): IMinField[];
18
+ //# sourceMappingURL=OnClickHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnClickHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/PropPaneCols/components/OnClickHelpers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAGD,wBAAiB,oBAAoB,CAAG,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAK,SAAS,EAAG,CAuCzI;AAGD,wBAAiB,kBAAkB,CAAG,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAK,aAAa,CAkB5J;AAED;;;;;;GAMG;AACH,wBAAiB,eAAe,CAAG,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAK,SAAS,EAAG,CAoBpI"}
@@ -0,0 +1,120 @@
1
+ export function getMainSelectedItems(ev, listFields, selected) {
2
+ const target = ev.target;
3
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+ const { altKey, ctrlKey, shiftKey, type } = ev; // type is like 'click'
5
+ const itemName = target.dataset.fieldname;
6
+ let thisSelected = null;
7
+ listFields.map(field => {
8
+ if (field.InternalName === itemName) {
9
+ field.isSelected = field.isSelected === true ? false : true;
10
+ field.isKeeper = true;
11
+ thisSelected = field;
12
+ }
13
+ });
14
+ let selectedIdx = -1;
15
+ selected.map((pick, idx) => {
16
+ if (pick.InternalName === thisSelected.InternalName)
17
+ selectedIdx = idx;
18
+ });
19
+ let newSelected = [];
20
+ if (selectedIdx === -1) { //Add to selected list
21
+ if (ctrlKey === true) {
22
+ newSelected = [...[thisSelected], ...selected];
23
+ }
24
+ else {
25
+ newSelected = [...selected, ...[thisSelected]];
26
+ }
27
+ }
28
+ else { //Remove from selected list
29
+ newSelected = selected.filter((field) => { return field.InternalName !== thisSelected.InternalName; });
30
+ }
31
+ console.log('_onSelectItem:', itemName, target, newSelected);
32
+ return newSelected;
33
+ }
34
+ export function updateSelectedInfo(ev, listFields, selected, searchText) {
35
+ if (searchText) {
36
+ const filteredFields = listFields.filter(field => field.searchTextLC.indexOf(searchText.toLocaleLowerCase()) > -1).map(field => { return field.InternalName; });
37
+ listFields.map(field => {
38
+ if (field.isSelected !== true && filteredFields.indexOf(field.InternalName) > -1) {
39
+ // Question: Does this mutate the state directly? Is it an issue?
40
+ // If so, how would I do this properly? Do I need to stringify/parse all these arrays every time?
41
+ field.isSelected = true;
42
+ selected.push(field); //Add to selected array
43
+ }
44
+ });
45
+ }
46
+ const result = { listFields: listFields, selected: selected, designMode: true };
47
+ return result;
48
+ }
49
+ /**
50
+ * Does not work as desired.... not using now.
51
+ * @param ev
52
+ * @param listFields
53
+ * @param selected
54
+ * @returns
55
+ */
56
+ export function selectAllofType(ev, listFields, selected) {
57
+ const target = ev.target;
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
+ const { altKey, ctrlKey, shiftKey, type } = ev; // type is like 'click'
60
+ const fieldtype = target.dataset.fieldtype;
61
+ listFields.map(field => {
62
+ if (field.TypeAsString.toLocaleLowerCase() === fieldtype) {
63
+ field.isSelected = ctrlKey === true ? true : altKey === true ? false : field.isSelected;
64
+ field.isKeeper = ctrlKey === true ? true : altKey === true ? false : field.isKeeper;
65
+ }
66
+ });
67
+ const newSelected = listFields.filter(field => { return field.isSelected === true; });
68
+ console.log('selectAllofType:', fieldtype, target, newSelected);
69
+ return newSelected;
70
+ }
71
+ // // private _onKeeperClick = ( ev: React.MouseEvent<HTMLElement> ): void => {
72
+ // export function getKeeperClicks ( ev: React.MouseEvent<HTMLElement>, selected: IMinField[] ): IMinField[] {
73
+ // const target: any = ev.target;
74
+ // // eslint-disable-next-line @typescript-eslint/no-unused-vars
75
+ // const { altKey, ctrlKey, shiftKey, type } = ev; // type is like 'click'
76
+ // const itemName: string = target.dataset.fieldname;
77
+ // // let thisSelected : IMinField = null;
78
+ // const newSelected: IMinField [] = [ ];
79
+ // selected.map( field => { //Find selected item
80
+ // if ( field.InternalName === itemName ) {
81
+ // field.isKeeper = field.isKeeper === true ? false : true;
82
+ // }
83
+ // newSelected.push( field );
84
+ // });
85
+ // return newSelected;
86
+ // }
87
+ // export function getDirectionClicks ( ev: React.MouseEvent<HTMLElement>, selected: IMinField[] ): IMinField[] {
88
+ // const target: any = ev.target;
89
+ // // const { altKey, ctrlKey, shiftKey, type } = ev; // type is like 'click'
90
+ // const itemName: string = target.dataset.fieldname;
91
+ // const direction: string = target.dataset.direction;
92
+ // const ctrlKey : boolean = ev.ctrlKey;
93
+ // let idx: number = -1;
94
+ // selected.map( ( field:IMinField, i: number) => { //Find selected item
95
+ // if ( field.InternalName === itemName ) { idx = i; }
96
+ // });
97
+ // const currentPick = selected[idx];
98
+ // let newSelected: IMinField [] = [];
99
+ // if ( idx === - 1 ){
100
+ // alert('Something went wrong :(');
101
+ // } else {
102
+ // if ( ctrlKey === true ) {
103
+ // if ( direction === 'up' ) newSelected.push( currentPick );
104
+ // selected.map( ( field:IMinField, i: number) => { //Find selected item
105
+ // if ( field.InternalName !== itemName ) { newSelected.push( field ) ; }
106
+ // });
107
+ // if ( direction === 'down' ) newSelected.push( currentPick );
108
+ // } else if ( direction === 'up' ) {
109
+ // const part1: IMinField[] = idx === 1 ? [] : selected.slice( 0, idx - 1 );
110
+ // const part2: IMinField[] = idx === selected.length -1 ? [] :selected.slice( idx + 1 );
111
+ // newSelected = [ ...part1, ...[ currentPick ], ...[ selected[ idx - 1 ] ] , ...part2 ];
112
+ // } else {
113
+ // const part1: IMinField[] = idx === 0 ? [] : selected.slice( 0, idx );
114
+ // const part2: IMinField[] = idx === selected.length -2 ? [] : selected.slice( idx + 2 );
115
+ // newSelected = [ ...part1, ...[ selected[ idx + 1 ] ], ...[ currentPick ] , ...part2 ];
116
+ // }
117
+ // }
118
+ // return newSelected;
119
+ // }
120
+ //# sourceMappingURL=OnClickHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnClickHelpers.js","sourceRoot":"","sources":["../../../../../src/components/molecules/PropPaneCols/components/OnClickHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { IMinField, IMinFieldCmds } from "../IPropPaneColsProps";
3
+ import { IAllActionTypes } from './IAccordion';
4
+ import { IIconTableRow } from './IAccordion';
5
+ export interface ICommandBuilderHookProps {
6
+ selected: IMinField[];
7
+ expanded: boolean;
8
+ onExpandRight: any;
9
+ updateSelected: any;
10
+ tryCallback?: any;
11
+ saveCallback?: any;
12
+ }
13
+ declare const CommandBuilderHook: React.FC<ICommandBuilderHookProps>;
14
+ export declare function updateSelectedCommands(ev: React.MouseEvent<HTMLElement>, selected: IMinField[]): IMinField[];
15
+ export declare function updateCommandSet(commands: IMinFieldCmds, role: IAllActionTypes, newVal: boolean, FieldActionIcons: IIconTableRow[]): IMinFieldCmds;
16
+ export default CommandBuilderHook;
17
+ //# sourceMappingURL=Accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/molecules/PropPaneCols/components/command/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAajE,OAAO,EAAE,eAAe,EAA8D,MAAM,cAAc,CAAA;AAE1G,OAAO,EAAE,aAAa,EAAG,MAAM,cAAc,CAAA;AAQ7C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,GAAG,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;CAEpB;AAMD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAgM1D,CAAA;AAED,wBAAgB,sBAAsB,CAAG,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAG,GAAK,SAAS,EAAG,CAiElH;AAED,wBAAgB,gBAAgB,CAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAI,aAAa,CAcpJ;AAGD,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,229 @@
1
+ import * as React from 'react';
2
+ import { useState } from 'react';
3
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+ // import { IGrouping, IViewField } from "@pnp/spfx-controls-react/lib/ListView";
5
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
+ import { FieldTypes } from "@pnp/sp/presets/all";
7
+ import { TextField, } from 'office-ui-fabric-react/lib/TextField';
8
+ import { Icon, } from 'office-ui-fabric-react/lib/Icon';
9
+ import Accordion from '../../../Accordion/Accordion';
10
+ import SelectedItemPanelHook from "../FieldPanel";
11
+ import SampleDesignHook from "./SampleDesign";
12
+ import ReactJson from 'react-json-view';
13
+ // import { filter } from 'lodash';
14
+ // import { IActionProps } from '@pnp/spfx-controls-react';
15
+ import { ChoiceFieldActionIcons, UserFieldActionIcons, YesNoFieldActionIcons, } from './IAccordion';
16
+ import { DateFieldActionIcons, TextFieldActionIcons, NoteFieldActionIcons, } from './IAccordion';
17
+ import { AllActions, ChoiceActions, YesNoActions, UserActions, } from './IAccordion';
18
+ import { DateActions, TextActions, NoteActions } from './IAccordion';
19
+ import { createFieldTableRows } from './tableRows';
20
+ import { buildQuickCommands } from './createLogic';
21
+ require('./command.css');
22
+ // export function createCommandBuilder( selected: IMinField[], onCmdFieldClick : any = null, expanded: boolean, showFieldPanel: any, onExpandRight: any = null ) : JSX.Element { //onCmdFieldClick: any
23
+ const CommandBuilderHook = (props) => {
24
+ const { selected, expanded, onExpandRight, updateSelected, tryCallback, saveCallback } = props;
25
+ // const { selected, expanded, onExpandRight } = props;
26
+ const [showCurrent, setShowCurrent] = useState(false);
27
+ const [showTotal, setShowTotal] = useState(false);
28
+ const [panelItem, setPanelItem] = useState(null);
29
+ const [label, setLabel] = useState('');
30
+ const [secondary, setSecondary] = useState('');
31
+ const [CommandDesign, setCommandDesign] = useState({
32
+ buttons: [],
33
+ summary: [],
34
+ fields: [],
35
+ });
36
+ // const hideSamplePanel = ( ) : void => {
37
+ // setShowCurrent( false );
38
+ // setShowTotal( false );
39
+ // }
40
+ // const updateShowCurrent = ( ) : void => {
41
+ // setShowCurrent( showCurrent !== true ? true : false );
42
+ // }
43
+ // const updateShowTotal = ( ) : void => {
44
+ // setShowTotal( showTotal !== true ? true : false );
45
+ // }
46
+ const updateSecondary = (v) => {
47
+ setSecondary(v);
48
+ };
49
+ const updateLabel = (v) => {
50
+ setLabel(v);
51
+ };
52
+ const showFieldPanel = (item) => {
53
+ setPanelItem(item);
54
+ };
55
+ const onClosePanel = () => {
56
+ setPanelItem(null);
57
+ };
58
+ const onCmdFieldClick = (ev) => {
59
+ const newSelected = updateSelectedCommands(ev, selected);
60
+ // setSelected( newSelected );
61
+ updateSelected(newSelected);
62
+ };
63
+ // const onLabelUpdate = ( input: any, text: string = '' ): void => {
64
+ // const labelText : string = typeof input === 'string' ? input : input && input.target && input.target.value ? input.target.value : '';
65
+ // setLabel( labelText );
66
+ // }
67
+ // const sorted: IMinField[] = sortObjectArrayByStringKey( selected, 'asc', 'Title' );
68
+ const choiceFields = selected.filter(field => field.FieldTypeKind === FieldTypes.Choice);
69
+ const ChoiceTable = createFieldTableRows(null, 'Choice fields', choiceFields, ChoiceFieldActionIcons, onCmdFieldClick, showFieldPanel);
70
+ const userFields = selected.filter(field => field.FieldTypeKind === FieldTypes.User);
71
+ const UserTable = createFieldTableRows(null, 'User fields', userFields, UserFieldActionIcons, onCmdFieldClick, showFieldPanel);
72
+ const yesNoFields = selected.filter(field => field.FieldTypeKind === FieldTypes.Boolean);
73
+ const YesNoTable = createFieldTableRows(null, 'Boolean fields', yesNoFields, YesNoFieldActionIcons, onCmdFieldClick, showFieldPanel);
74
+ // filter out ReadOnlyFields because all functions apply to the field itself which can't be done.
75
+ const dateFields = selected.filter(field => field.FieldTypeKind === FieldTypes.DateTime);
76
+ const DateTable = createFieldTableRows(null, 'Date fields', dateFields, DateFieldActionIcons, onCmdFieldClick, showFieldPanel);
77
+ // filter out ReadOnlyFields because all functions apply to the field itself which can't be done.
78
+ const textFields = selected.filter(field => field.FieldTypeKind === FieldTypes.Text);
79
+ const TextTable = createFieldTableRows(null, 'Text fields', textFields, TextFieldActionIcons, onCmdFieldClick, showFieldPanel);
80
+ // filter out ReadOnlyFields because all functions apply to the field itself which can't be done.
81
+ const noteFields = selected.filter(field => field.FieldTypeKind === FieldTypes.Note);
82
+ const NoteTable = createFieldTableRows(null, 'Note fields', noteFields, NoteFieldActionIcons, onCmdFieldClick, showFieldPanel);
83
+ const expandRightIcon = React.createElement(Icon, { iconName: 'TransitionPop', title: 'Expand right to see button object', style: { float: 'right' }, "data-fieldtype": 'Commands', onClick: onExpandRight, className: 'type-filter-icon' });
84
+ const QuickCommands = buildQuickCommands(selected, label, secondary);
85
+ const addCommandSet = (add) => {
86
+ const TotalCommands = {
87
+ buttons: add === true ? [...CommandDesign.buttons, ...QuickCommands.buttons] : [],
88
+ summary: add === true ? [...CommandDesign.summary, ...QuickCommands.summary] : [],
89
+ fields: add === true ? [...CommandDesign.fields, ...QuickCommands.fields] : [],
90
+ };
91
+ setCommandDesign(TotalCommands);
92
+ };
93
+ // Using this way caused error 310
94
+ // const SampleCommand = showCurrent !== true ? undefined : SampleDesignHook({ CommandDesign: QuickCommands, onClosePanel: updateShowCurrent } ) ;
95
+ // const SampleDesign = showTotal !== true ? undefined : SampleDesignHook({ CommandDesign: CommandDesign, onClosePanel: updateShowTotal } ) ;
96
+ // This fixes error 310 when always calling the SampleDesignHook
97
+ const SampleCommand = SampleDesignHook({ CommandDesign: QuickCommands, onClosePanel: setShowCurrent, showPanel: showCurrent });
98
+ const SampleDesign = SampleDesignHook({ CommandDesign: CommandDesign, onClosePanel: setShowTotal, showPanel: showTotal });
99
+ const showTry = tryCallback && CommandDesign.summary.length > 0 ? true : false;
100
+ const showSave = saveCallback && CommandDesign.summary.length > 0 ? true : false;
101
+ const RightSide = React.createElement("div", { className: 'accordion-design', style: {} },
102
+ React.createElement("div", { className: 'current-title' },
103
+ React.createElement("h2", null, "Command Set Title goes here"),
104
+ React.createElement(TextField, { value: label, description: 'Add label to save this as group of buttons',
105
+ //Modeled after https://github.com/pnp/sp-dev-fx-webparts/blob/b139ba199cb57363a88f070dd9814e5af4fc3cbd/samples/react-teams-personal-app-settings/src/webparts/personalAppSettings/components/settingsPanel/SettingsPanel.tsx#L67
106
+ onChange: (e, v) => { updateLabel(v); } }),
107
+ React.createElement(TextField, { value: secondary, description: 'Additional text in smaller font',
108
+ //Modeled after https://github.com/pnp/sp-dev-fx-webparts/blob/b139ba199cb57363a88f070dd9814e5af4fc3cbd/samples/react-teams-personal-app-settings/src/webparts/personalAppSettings/components/settingsPanel/SettingsPanel.tsx#L67
109
+ onChange: (e, v) => { updateSecondary(v); } })),
110
+ React.createElement("div", { className: 'total-object' },
111
+ React.createElement("div", null,
112
+ React.createElement(Icon, { iconName: "EntryView", className: 'type-filter-icon', onClick: () => setShowCurrent(true), title: 'See sample panel', style: { float: 'right' } }),
113
+ React.createElement("div", null,
114
+ "Dividers: ",
115
+ QuickCommands.summary.filter((summary) => summary.type === 'divider').length),
116
+ React.createElement("div", null,
117
+ "Choice buttons: ",
118
+ QuickCommands.summary.filter((summary) => summary.type === 'choice').length),
119
+ React.createElement("div", null,
120
+ "Regular buttons: ",
121
+ QuickCommands.summary.filter((summary) => summary.type === 'button').length)),
122
+ React.createElement(ReactJson, { src: QuickCommands, name: 'Current', collapsed: false, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, style: { padding: '20px 0px' }, theme: 'rjv-default', indentWidth: 2 })),
123
+ React.createElement("div", { className: 'total-title' },
124
+ React.createElement("div", null,
125
+ React.createElement("h2", null, "Total Command Set"),
126
+ React.createElement(Icon, { iconName: "Download", className: 'type-filter-icon', onClick: () => addCommandSet(true), title: 'Add Command Set here' }),
127
+ React.createElement(Icon, { iconName: "Delete", className: 'type-filter-icon', onClick: () => addCommandSet(false), title: 'Clear Command Set' }),
128
+ React.createElement(Icon, { iconName: "Save", className: 'type-filter-icon', onClick: showSave === true ? () => saveCallback(CommandDesign) : undefined, title: 'Save Command Set', style: { display: showSave === true ? '' : 'none' } }),
129
+ React.createElement(Icon, { iconName: "TestImpactSolid", className: 'type-filter-icon', onClick: showTry === true ? () => tryCallback(CommandDesign) : undefined, title: 'Try Command Set', style: { display: showTry === true ? '' : 'none' } }))),
130
+ React.createElement("div", { className: 'total-object' },
131
+ React.createElement("div", null,
132
+ React.createElement(Icon, { iconName: "EntryView", className: 'type-filter-icon', onClick: () => setShowTotal(true), title: 'See sample panel', style: { float: 'right' } }),
133
+ React.createElement("div", null,
134
+ "Dividers: ",
135
+ CommandDesign.summary.filter((summary) => summary.type === 'divider').length),
136
+ React.createElement("div", null,
137
+ "Choice buttons: ",
138
+ CommandDesign.summary.filter((summary) => summary.type === 'choice').length),
139
+ React.createElement("div", null,
140
+ "Regular buttons: ",
141
+ CommandDesign.summary.filter((summary) => summary.type === 'button').length)),
142
+ React.createElement(ReactJson, { src: CommandDesign, name: 'CommandDesign', collapsed: false, displayDataTypes: false, displayObjectSize: false, enableClipboard: true, style: { padding: '20px 0px' }, theme: 'rjv-default', indentWidth: 2 })));
143
+ const commandElement = React.createElement("div", { className: 'command-tables' },
144
+ React.createElement(SelectedItemPanelHook, { panelItem: panelItem, searchText: '', onClosePanel: onClosePanel.bind(this) }),
145
+ React.createElement("div", { className: 'left-command' },
146
+ expandRightIcon,
147
+ ChoiceTable,
148
+ YesNoTable,
149
+ UserTable,
150
+ DateTable,
151
+ TextTable,
152
+ NoteTable),
153
+ React.createElement("div", { className: expanded === true ? 'right-command' : 'collapse-command' }, RightSide),
154
+ SampleCommand,
155
+ SampleDesign);
156
+ const commandTitle = `Build Commands`;
157
+ const DesignCommands = React.createElement(Accordion, { title: commandTitle, showAccordion: false, animation: 'TopDown', contentStyles: { height: '' }, content: commandElement, componentStyles: { marginBottom: '15px', border: '4px solid #d1d1d1', background: '#f5f5f5', padding: '10px' } });
158
+ return (DesignCommands);
159
+ };
160
+ export function updateSelectedCommands(ev, selected) {
161
+ const target = ev.target;
162
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
163
+ const { altKey, ctrlKey, shiftKey, type } = ev; // type is like 'click'
164
+ const itemName = target.dataset.fieldname;
165
+ const role = target.dataset.role;
166
+ // let thisSelected : IMinField = null;
167
+ const newSelected = [];
168
+ selected.map((field) => {
169
+ if (field.InternalName === itemName) {
170
+ if (AllActions.indexOf(role) > -1) {
171
+ let commands = field.commands;
172
+ const newVal = commands[role] === true ? false : true;
173
+ if (DateActions.indexOf(role) > -1) {
174
+ commands = updateCommandSet(commands, role, newVal, DateFieldActionIcons);
175
+ }
176
+ else if (UserActions.indexOf(role) > -1) {
177
+ commands = updateCommandSet(commands, role, newVal, UserFieldActionIcons);
178
+ }
179
+ else if (TextActions.indexOf(role) > -1) {
180
+ commands = updateCommandSet(commands, role, newVal, TextFieldActionIcons);
181
+ }
182
+ else if (NoteActions.indexOf(role) > -1) {
183
+ commands = updateCommandSet(commands, role, newVal, NoteFieldActionIcons);
184
+ }
185
+ else if (YesNoActions.indexOf(role) > -1) {
186
+ commands = updateCommandSet(commands, role, newVal, YesNoFieldActionIcons);
187
+ /**
188
+ * Put other types above this one since CHOICE HAS SPECIAL CODING LOOP
189
+ * This allows for the UI to only have one field selected for a given command (like can not have more than one perChoice field selected)
190
+ */
191
+ }
192
+ else if (ChoiceActions.indexOf(role) > -1) {
193
+ commands = updateCommandSet(commands, role, newVal, ChoiceFieldActionIcons);
194
+ const ThisAction = ChoiceFieldActionIcons.filter(icon => { return icon.cmd === role; });
195
+ if (ThisAction[0].oneField === true) {
196
+ selected.map((checkField) => {
197
+ if (field.TypeAsString === checkField.TypeAsString && field.InternalName !== checkField.InternalName) {
198
+ checkField.commands[role] = false;
199
+ }
200
+ });
201
+ }
202
+ }
203
+ else {
204
+ commands[role] = newVal;
205
+ }
206
+ field.commands = commands;
207
+ }
208
+ else {
209
+ alert('Opps! Field updating field.commands ~ 166');
210
+ }
211
+ }
212
+ newSelected.push(field);
213
+ });
214
+ return newSelected;
215
+ }
216
+ export function updateCommandSet(commands, role, newVal, FieldActionIcons) {
217
+ //Should get the action for current button press
218
+ const ThisAction = FieldActionIcons.filter(icon => { return icon.cmd === role; });
219
+ FieldActionIcons.map(action => {
220
+ //Loop through all actions in the same group.
221
+ if (action.group === ThisAction[0].group) {
222
+ commands[action.cmd] = false;
223
+ }
224
+ commands[role] = newVal;
225
+ });
226
+ return commands;
227
+ }
228
+ export default CommandBuilderHook;
229
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../../../../src/components/molecules/PropPaneCols/components/command/Accordion.tsx"],"names":[],"mappings":"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"}