@livepreso/content-react 0.7.3 → 1.0.0
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.
- package/.rush/temp/package-deps_build.json +2 -2
- package/.rush/temp/shrinkwrap-deps.json +152 -144
- package/CHANGELOG.json +17 -0
- package/CHANGELOG.md +12 -1
- package/content-react.build.log +4 -0
- package/lib/components/CompanywideJSON.js +17 -7
- package/lib/hooks/cwe-editable.js +82 -0
- package/lib/hooks/index.js +3 -1
- package/lib/hooks/prep-editable.js +74 -0
- package/lib/hooks/use-editable-field-key.js +19 -0
- package/lib/hooks/use-editable-initial-state.js +13 -108
- package/lib/hooks/use-modes.js +4 -1
- package/lib/utils.js +152 -0
- package/package.json +1 -1
- package/.rush/temp/package-deps_test.json +0 -26
- package/lib/hooks/use-prep-editable.js +0 -50
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"content/content-react/lib/hooks/use-shared-state.js": "0d160ddf3e5dec37849f72f4ec2a1d7aac680159",
|
|
20
20
|
"content/content-react/lib/hooks/use-subslides.js": "508ac21b01a4ece811ebc2db9c6a41ef6071e326",
|
|
21
21
|
"content/content-react/lib/hooks/use-transitions.js": "c9cdf3e8af82b8f8a51e99ee670334cc5c7c42c1",
|
|
22
|
-
"content/content-react/package.json": "
|
|
23
|
-
"content/content-react/.rush/temp/shrinkwrap-deps.json": "
|
|
22
|
+
"content/content-react/package.json": "829ec6db57241917d8f143d522ff22d62d4dbcc0",
|
|
23
|
+
"content/content-react/.rush/temp/shrinkwrap-deps.json": "597fd3e1925904d69b27c3bc319a49733033c2b1"
|
|
24
24
|
},
|
|
25
25
|
"arguments": ""
|
|
26
26
|
}
|
|
@@ -1,146 +1,154 @@
|
|
|
1
1
|
{
|
|
2
|
-
"../../content/content-react": "../../content/content-react:
|
|
3
|
-
"/@
|
|
4
|
-
"/@babel/
|
|
5
|
-
"/@babel/
|
|
6
|
-
"/@babel/
|
|
7
|
-
"/@babel/
|
|
8
|
-
"/@babel/
|
|
9
|
-
"/@babel/
|
|
10
|
-
"/@babel/
|
|
11
|
-
"/@babel/
|
|
12
|
-
"/@babel/
|
|
13
|
-
"/@babel/
|
|
14
|
-
"/@babel/
|
|
15
|
-
"/@
|
|
16
|
-
"/@
|
|
17
|
-
"/@
|
|
18
|
-
"/@
|
|
19
|
-
"/@
|
|
20
|
-
"/@
|
|
21
|
-
"/@
|
|
22
|
-
"/@
|
|
23
|
-
"/@
|
|
24
|
-
"/@
|
|
25
|
-
"/@
|
|
26
|
-
"/@
|
|
27
|
-
"/@eslint
|
|
28
|
-
"/@eslint-
|
|
29
|
-
"/@eslint/
|
|
30
|
-
"/@eslint/
|
|
31
|
-
"/@eslint/
|
|
32
|
-
"/@eslint/
|
|
33
|
-
"/@eslint/
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"/
|
|
48
|
-
"/
|
|
49
|
-
"/
|
|
50
|
-
"/
|
|
51
|
-
"/
|
|
52
|
-
"/
|
|
53
|
-
"/
|
|
54
|
-
"/
|
|
55
|
-
"/
|
|
56
|
-
"/
|
|
57
|
-
"/
|
|
58
|
-
"/
|
|
59
|
-
"/
|
|
60
|
-
"/
|
|
61
|
-
"/
|
|
62
|
-
"/
|
|
63
|
-
"/
|
|
64
|
-
"/
|
|
65
|
-
"/
|
|
66
|
-
"/
|
|
67
|
-
"/
|
|
68
|
-
"/
|
|
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
|
-
"/is-
|
|
95
|
-
"/is-
|
|
96
|
-
"/
|
|
97
|
-
"/
|
|
98
|
-
"/
|
|
99
|
-
"/
|
|
100
|
-
"/
|
|
101
|
-
"/
|
|
102
|
-
"/json-
|
|
103
|
-
"/
|
|
104
|
-
"/
|
|
105
|
-
"/
|
|
106
|
-
"/
|
|
107
|
-
"/
|
|
108
|
-
"/lodash.
|
|
109
|
-
"/
|
|
110
|
-
"/
|
|
111
|
-
"/
|
|
112
|
-
"/
|
|
113
|
-
"/
|
|
114
|
-
"/
|
|
115
|
-
"/
|
|
116
|
-
"/
|
|
117
|
-
"/
|
|
118
|
-
"/
|
|
119
|
-
"/
|
|
120
|
-
"/
|
|
121
|
-
"/
|
|
122
|
-
"/
|
|
123
|
-
"/
|
|
124
|
-
"/
|
|
125
|
-
"/
|
|
126
|
-
"/
|
|
127
|
-
"/
|
|
128
|
-
"/react-
|
|
129
|
-
"/react
|
|
130
|
-
"/
|
|
131
|
-
"/
|
|
132
|
-
"/
|
|
133
|
-
"/
|
|
134
|
-
"/
|
|
135
|
-
"/
|
|
136
|
-
"/
|
|
137
|
-
"/
|
|
138
|
-
"/
|
|
139
|
-
"/
|
|
140
|
-
"/
|
|
141
|
-
"/
|
|
142
|
-
"/
|
|
143
|
-
"/
|
|
144
|
-
"/
|
|
145
|
-
"/
|
|
2
|
+
"../../content/content-react": "../../content/content-react:EzqiqRduP5X0d1LxP9lAJ1h2NzQwqXXZ5qngKBr1MMQ=:",
|
|
3
|
+
"/@babel/helper-annotate-as-pure/7.16.7": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==",
|
|
4
|
+
"/@babel/helper-module-imports/7.16.7": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
|
|
5
|
+
"/@babel/helper-plugin-utils/7.16.7": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
|
|
6
|
+
"/@babel/helper-validator-identifier/7.16.7": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
|
|
7
|
+
"/@babel/helper-validator-option/7.16.7": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
|
|
8
|
+
"/@babel/plugin-syntax-jsx/7.16.7": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
|
|
9
|
+
"/@babel/plugin-transform-react-display-name/7.16.7": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==",
|
|
10
|
+
"/@babel/plugin-transform-react-jsx-development/7.16.7": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==",
|
|
11
|
+
"/@babel/plugin-transform-react-jsx/7.17.3": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==",
|
|
12
|
+
"/@babel/plugin-transform-react-pure-annotations/7.16.7": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==",
|
|
13
|
+
"/@babel/preset-react/7.14.5": "sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==",
|
|
14
|
+
"/@babel/types/7.17.0": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
|
|
15
|
+
"/@microsoft/tsdoc-config/0.15.2": "sha512-mK19b2wJHSdNf8znXSMYVShAHktVr/ib0Ck2FA3lsVBSEhSI/TfXT7DJQkAYgcztTuwazGcg58ZjYdk0hTCVrA==",
|
|
16
|
+
"/@microsoft/tsdoc/0.13.2": "sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg==",
|
|
17
|
+
"/@nodelib/fs.scandir/2.1.5": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
|
|
18
|
+
"/@nodelib/fs.stat/2.0.5": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
|
|
19
|
+
"/@nodelib/fs.walk/1.2.8": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
|
|
20
|
+
"/@rushstack/eslint-config/2.4.5": "sha512-MilTlXhJMvJhsud/Sb+otph/JTLuoUQYO/MK6SCiGsoCWlIOgbw+JKUjs4viu6Kocd0VqfbNCXFqWRqCbdq4DA==",
|
|
21
|
+
"/@rushstack/eslint-patch/1.1.0": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==",
|
|
22
|
+
"/@rushstack/eslint-plugin-packlets/0.3.3": "sha512-6fslCsfk1mZho4uBsnywCO5Jzj7I21V1OKt40ZxbLO7LrMccm9orUYJiy5dI3Lx6NQtczuYrtqp8Xqp0ur9KPA==",
|
|
23
|
+
"/@rushstack/eslint-plugin-security/0.2.3": "sha512-OnngkJCx91og1U8a8gus2g+r5OOtkQ8Tpo8jcGrtI6YpIIujqLM6lIe7XM3e+iumYdKnnOAVs3NH14BN9rlIoQ==",
|
|
24
|
+
"/@rushstack/eslint-plugin/0.8.3": "sha512-LUXUv9oUDHghe73HHIqDxJAqCYBsvKcbg+2KRs/aNczNZzoaXKJPLS6YvlCBiuI1XNq/eLEX7L/LPnKfbe+1Yw==",
|
|
25
|
+
"/@rushstack/tree-pattern/0.2.2": "sha512-0KdqI7hGtVIlxobOBLWet0WGiD70V/QoYQr5A2ikACeQmIaN4WT6Fn9BcvgwgaSIMcazEcD8ql7Fb9N4dKdQlA==",
|
|
26
|
+
"/@types/json-schema/7.0.9": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
|
|
27
|
+
"/@typescript-eslint/eslint-plugin/4.31.2_@typescript-eslint+parser@4.31.2": "sha512-w63SCQ4bIwWN/+3FxzpnWrDjQRXVEGiTt9tJTRptRXeFvdZc/wLiz3FQUwNQ2CVoRGI6KUWMNUj/pk63noUfcA==",
|
|
28
|
+
"/@typescript-eslint/experimental-utils/4.31.2": "sha512-3tm2T4nyA970yQ6R3JZV9l0yilE2FedYg8dcXrTar34zC9r6JB7WyBQbpIVongKPlhEMjhQ01qkwrzWy38Bk1Q==",
|
|
29
|
+
"/@typescript-eslint/parser/4.31.2": "sha512-EcdO0E7M/sv23S/rLvenHkb58l3XhuSZzKf6DBvLgHqOYdL6YFMYVtreGFWirxaU2mS1GYDby3Lyxco7X5+Vjw==",
|
|
30
|
+
"/@typescript-eslint/scope-manager/4.31.2": "sha512-2JGwudpFoR/3Czq6mPpE8zBPYdHWFGL6lUNIGolbKQeSNv4EAiHaR5GVDQaLA0FwgcdcMtRk+SBJbFGL7+La5w==",
|
|
31
|
+
"/@typescript-eslint/types/4.31.2": "sha512-kWiTTBCTKEdBGrZKwFvOlGNcAsKGJSBc8xLvSjSppFO88AqGxGNYtF36EuEYG6XZ9vT0xX8RNiHbQUKglbSi1w==",
|
|
32
|
+
"/@typescript-eslint/typescript-estree/4.31.2": "sha512-ieBq8U9at6PvaC7/Z6oe8D3czeW5d//Fo1xkF/s9394VR0bg/UaMYPdARiWyKX+lLEjY3w/FNZJxitMsiWv+wA==",
|
|
33
|
+
"/@typescript-eslint/visitor-keys/4.31.2": "sha512-PrBId7EQq2Nibns7dd/ch6S6/M4/iwLM9McbgeEbCXfxdwRUNxJ4UNreJ6Gh3fI2GNKNrWnQxKL7oCPmngKBug==",
|
|
34
|
+
"/ajv/6.12.6": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
|
35
|
+
"/anylogger/1.0.11": "sha512-sKTWPTG2/d71kLGVmymMJQQslUppxvCz6DN/eODL3/ckmfygZzD0t4P5tRXE3qpM62jI98F/YTHHzFhM12jiJQ==",
|
|
36
|
+
"/array-includes/3.1.4": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
|
|
37
|
+
"/array-union/2.1.0": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
|
|
38
|
+
"/array.prototype.flatmap/1.2.5": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
|
|
39
|
+
"/braces/3.0.2": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
|
40
|
+
"/call-bind/1.0.2": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
|
|
41
|
+
"/call-bind/1.0.7": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
|
|
42
|
+
"/debug/4.3.3": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
|
|
43
|
+
"/define-data-property/1.1.4": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
|
|
44
|
+
"/define-properties/1.1.3": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
|
|
45
|
+
"/dir-glob/3.0.1": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
|
|
46
|
+
"/doctrine/2.1.0": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
|
|
47
|
+
"/es-abstract/1.19.1": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
|
|
48
|
+
"/es-define-property/1.0.0": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
|
49
|
+
"/es-errors/1.3.0": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
|
50
|
+
"/es-to-primitive/1.2.1": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
|
|
51
|
+
"/eslint-plugin-promise/4.2.1": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==",
|
|
52
|
+
"/eslint-plugin-react/7.20.6": "sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg==",
|
|
53
|
+
"/eslint-plugin-tsdoc/0.2.14": "sha512-fJ3fnZRsdIoBZgzkQjv8vAj6NeeOoFkTfgosj6mKsFjX70QV256sA/wq+y/R2+OL4L8E79VVaVWrPeZnKNe8Ng==",
|
|
54
|
+
"/eslint-scope/5.1.1": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
|
|
55
|
+
"/eslint-utils/3.0.0": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
|
|
56
|
+
"/eslint-visitor-keys/2.1.0": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
|
|
57
|
+
"/esrecurse/4.3.0": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
|
|
58
|
+
"/estraverse/4.3.0": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
|
|
59
|
+
"/estraverse/5.3.0": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
|
|
60
|
+
"/esutils/2.0.3": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
|
|
61
|
+
"/fast-deep-equal/3.1.3": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
|
62
|
+
"/fast-glob/3.2.11": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
|
|
63
|
+
"/fast-json-stable-stringify/2.1.0": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
|
64
|
+
"/fastq/1.13.0": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
|
|
65
|
+
"/fill-range/7.0.1": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
|
66
|
+
"/function-bind/1.1.1": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
|
67
|
+
"/function-bind/1.1.2": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
|
68
|
+
"/functional-red-black-tree/1.0.1": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
|
69
|
+
"/get-intrinsic/1.1.1": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
|
|
70
|
+
"/get-intrinsic/1.2.4": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
|
71
|
+
"/get-symbol-description/1.0.0": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
|
|
72
|
+
"/glob-parent/5.1.2": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
|
73
|
+
"/globby/11.1.0": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
|
|
74
|
+
"/gopd/1.0.1": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
|
75
|
+
"/has-bigints/1.0.1": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
|
|
76
|
+
"/has-property-descriptors/1.0.2": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
|
|
77
|
+
"/has-proto/1.0.3": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
|
78
|
+
"/has-symbols/1.0.3": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
|
79
|
+
"/has-tostringtag/1.0.0": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
|
|
80
|
+
"/has-tostringtag/1.0.2": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
|
|
81
|
+
"/has/1.0.3": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
|
82
|
+
"/hasown/2.0.2": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
|
83
|
+
"/ignore/5.2.0": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
|
|
84
|
+
"/internal-slot/1.0.3": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
|
|
85
|
+
"/is-bigint/1.0.4": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
|
|
86
|
+
"/is-boolean-object/1.1.2": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
|
|
87
|
+
"/is-callable/1.2.4": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
|
|
88
|
+
"/is-core-module/2.8.1": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
|
|
89
|
+
"/is-date-object/1.0.5": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
|
|
90
|
+
"/is-extglob/2.1.1": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
|
91
|
+
"/is-glob/4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
|
92
|
+
"/is-negative-zero/2.0.2": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
|
|
93
|
+
"/is-number-object/1.0.6": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
|
|
94
|
+
"/is-number/7.0.0": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
|
95
|
+
"/is-regex/1.1.4": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
|
|
96
|
+
"/is-shared-array-buffer/1.0.1": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
|
|
97
|
+
"/is-string/1.0.7": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
|
|
98
|
+
"/is-symbol/1.0.4": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
|
|
99
|
+
"/is-weakref/1.0.2": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
|
|
100
|
+
"/jju/1.4.0": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=",
|
|
101
|
+
"/js-tokens/4.0.0": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
|
102
|
+
"/json-schema-traverse/0.4.1": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
|
103
|
+
"/jsx-ast-utils/2.4.1": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
|
|
104
|
+
"/kurly/2.0.0-beta.3": "sha512-WXSRkhL2VV9lI/sPomBDV9Xf4oQ1s/RiUqzxKt4slkG7ndCxcDfXJ2ZXdxEYDRfevnkSOxmiVX3etunBlHqTAw==",
|
|
105
|
+
"/lodash.get/4.4.2": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
|
|
106
|
+
"/lodash.isplainobject/4.0.6": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
|
|
107
|
+
"/lodash.set/4.3.2": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==",
|
|
108
|
+
"/lodash.unescape/4.0.1": "sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==",
|
|
109
|
+
"/loose-envify/1.4.0": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
|
|
110
|
+
"/lru-cache/6.0.0": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
|
111
|
+
"/merge2/1.4.1": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
|
|
112
|
+
"/micromatch/4.0.4": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
|
|
113
|
+
"/ms/2.1.2": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
|
114
|
+
"/object-assign/4.1.1": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
|
115
|
+
"/object-inspect/1.12.0": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
|
|
116
|
+
"/object-keys/1.1.1": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
|
|
117
|
+
"/object.assign/4.1.2": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
|
|
118
|
+
"/object.entries/1.1.5": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
|
|
119
|
+
"/object.fromentries/2.0.5": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
|
|
120
|
+
"/object.values/1.1.5": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
|
|
121
|
+
"/path-parse/1.0.7": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
|
122
|
+
"/path-type/4.0.0": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
|
|
123
|
+
"/picomatch/2.3.1": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
|
124
|
+
"/prop-types/15.8.1": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
|
125
|
+
"/punycode/2.1.1": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
|
126
|
+
"/queue-microtask/1.2.3": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
|
|
127
|
+
"/react-dom/18.2.0_react@18.2.0": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
|
|
128
|
+
"/react-is/16.13.1": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
|
129
|
+
"/react/18.2.0": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
|
|
130
|
+
"/regexp.prototype.flags/1.4.1": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==",
|
|
131
|
+
"/regexpp/3.2.0": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
|
|
132
|
+
"/resolve/1.19.0": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
|
|
133
|
+
"/resolve/1.22.0": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
|
|
134
|
+
"/reusify/1.0.4": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
|
|
135
|
+
"/run-parallel/1.2.0": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
|
|
136
|
+
"/scheduler/0.23.0": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
|
|
137
|
+
"/semver/7.3.5": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
|
138
|
+
"/set-function-length/1.2.2": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
|
|
139
|
+
"/side-channel/1.0.4": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
|
|
140
|
+
"/slash/3.0.0": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
|
|
141
|
+
"/string.prototype.matchall/4.0.6": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
|
|
142
|
+
"/string.prototype.trimend/1.0.4": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
|
|
143
|
+
"/string.prototype.trimstart/1.0.4": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
|
|
144
|
+
"/supports-preserve-symlinks-flag/1.0.0": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
|
145
|
+
"/to-fast-properties/2.0.0": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
|
|
146
|
+
"/to-regex-range/5.0.1": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
|
147
|
+
"/tslib/1.14.1": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
|
148
|
+
"/tsutils/3.21.0": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
|
|
149
|
+
"/ulog/2.0.0-beta.19": "sha512-27YIp4dUwaJQTh7ovk60wWjBMVV/AXMZhSVftkU7HMjaPc1t8wO5u6hVVUyBTyGKrLxYmR0v34Iihq8mE26LUg==",
|
|
150
|
+
"/unbox-primitive/1.0.1": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
|
|
151
|
+
"/uri-js/4.4.1": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
|
152
|
+
"/which-boxed-primitive/1.0.2": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
|
|
153
|
+
"/yallist/4.0.0": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
|
146
154
|
}
|
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livepreso/content-react",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"tag": "@livepreso/content-react_v1.0.0",
|
|
7
|
+
"date": "Thu, 08 May 2025 06:12:34 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "Add warning to companywide editable docs about repeated keys"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"major": [
|
|
15
|
+
{
|
|
16
|
+
"comment": "Replace usePrepEditable() hook with usePrepEditableInfo(), add useCWEEditableInfo(), improve editables interactions with new utils."
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
4
21
|
{
|
|
5
22
|
"version": "0.7.3",
|
|
6
23
|
"tag": "@livepreso/content-react_v0.7.3",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
# Change Log - @livepreso/content-react
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Thu, 08 May 2025 06:12:34 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 1.0.0
|
|
6
|
+
Thu, 08 May 2025 06:12:34 GMT
|
|
7
|
+
|
|
8
|
+
### Breaking changes
|
|
9
|
+
|
|
10
|
+
- Replace usePrepEditable() hook with usePrepEditableInfo(), add useCWEEditableInfo(), improve editables interactions with new utils.
|
|
11
|
+
|
|
12
|
+
### Patches
|
|
13
|
+
|
|
14
|
+
- Add warning to companywide editable docs about repeated keys
|
|
4
15
|
|
|
5
16
|
## 0.7.3
|
|
6
17
|
Wed, 23 Apr 2025 22:55:14 GMT
|
|
@@ -1,20 +1,30 @@
|
|
|
1
1
|
import React, { useEffect, useMemo, useRef, useState } from "react";
|
|
2
2
|
|
|
3
|
-
import { CWE_JSON_KEY } from "../constants.js";
|
|
4
3
|
import { CompanywideJSONContext } from "../contexts.js";
|
|
5
4
|
import set from "lodash.set";
|
|
6
5
|
import unescape from "lodash.unescape";
|
|
7
6
|
import { useEditableInitialState } from "../hooks/use-editable-initial-state.js";
|
|
8
7
|
import { useSlide } from "../hooks/use-slide.js";
|
|
8
|
+
import { getCWEJSONKey, testCWEJSONExists } from "../utils.js";
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* IMPORTANT: This component must always wrap RootApp in index.js.
|
|
12
|
+
* We attempted to limit its use to the on-stage / active slide,
|
|
13
|
+
* but that resulted in off-stage slides (ie. previous and next)
|
|
14
|
+
* getting default values instead of latest, resulting in janky animations
|
|
15
|
+
* (and probably more problems too...)
|
|
16
|
+
*/
|
|
10
17
|
export function CompanywideJSON({ children }) {
|
|
11
|
-
const
|
|
18
|
+
const slideState = useSlide();
|
|
19
|
+
const { slideKey } = slideState;
|
|
12
20
|
const editableRef = useRef();
|
|
13
21
|
const [editableValue, editableKey] = useEditableInitialState(
|
|
14
|
-
|
|
22
|
+
getCWEJSONKey(slideKey),
|
|
15
23
|
"{}",
|
|
16
24
|
);
|
|
17
25
|
|
|
26
|
+
const cweJsonExists = testCWEJSONExists(slideState);
|
|
27
|
+
|
|
18
28
|
let initialState = {};
|
|
19
29
|
|
|
20
30
|
try {
|
|
@@ -43,15 +53,15 @@ export function CompanywideJSON({ children }) {
|
|
|
43
53
|
const providerValues = useMemo(
|
|
44
54
|
() => ({
|
|
45
55
|
companyWide: state,
|
|
46
|
-
//
|
|
47
|
-
updateCompanywide:
|
|
56
|
+
// Returns no-op if CWE JSON is not in use on the current slide
|
|
57
|
+
updateCompanywide: cweJsonExists ? updateField : () => {},
|
|
48
58
|
}),
|
|
49
|
-
[state],
|
|
59
|
+
[cweJsonExists, state],
|
|
50
60
|
);
|
|
51
61
|
|
|
52
62
|
return (
|
|
53
63
|
<CompanywideJSONContext.Provider value={providerValues}>
|
|
54
|
-
{
|
|
64
|
+
{cweJsonExists && (
|
|
55
65
|
<div
|
|
56
66
|
data-companywide-editable={editableKey}
|
|
57
67
|
ref={editableRef}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
import { useModes } from "./use-modes";
|
|
4
|
+
import { useSlide } from "./use-slide";
|
|
5
|
+
import { useEditableFieldKey } from "./use-editable-field-key";
|
|
6
|
+
import { getCWEData, getUserTemplateData } from "../utils";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Returns information about a CWE, PresoManager template or user template editable
|
|
10
|
+
* on the current slide. Returns a modified key when the requested editable is found
|
|
11
|
+
* on a user or PM template.
|
|
12
|
+
*
|
|
13
|
+
* Example:
|
|
14
|
+
*
|
|
15
|
+
* useCWEEditable("test");
|
|
16
|
+
* => {
|
|
17
|
+
* key: "test-adjunct-1168",
|
|
18
|
+
* value: "User edited text",
|
|
19
|
+
* hasValue: true
|
|
20
|
+
* }
|
|
21
|
+
*/
|
|
22
|
+
export function useCWEEditableInfo(id) {
|
|
23
|
+
const { isPresomanager } = useModes();
|
|
24
|
+
const { slideID, isUserTemplate } = useSlide();
|
|
25
|
+
|
|
26
|
+
const key = useEditableFieldKey(id);
|
|
27
|
+
|
|
28
|
+
const getValue = useCallback(() => {
|
|
29
|
+
let data;
|
|
30
|
+
|
|
31
|
+
if (isUserTemplate) {
|
|
32
|
+
data = getUserTemplateData(key, slideID);
|
|
33
|
+
} else {
|
|
34
|
+
data = getCWEData(key);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return data?.value || data?.accepted?.value || data?.saved?.value || null;
|
|
38
|
+
}, [key, slideID, isUserTemplate]);
|
|
39
|
+
|
|
40
|
+
const [value, setValue] = useState(getValue);
|
|
41
|
+
|
|
42
|
+
function updateValue() {
|
|
43
|
+
const newValue = getValue();
|
|
44
|
+
|
|
45
|
+
if (value === newValue) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
setValue(newValue);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (isPresomanager) return;
|
|
54
|
+
|
|
55
|
+
function onContextChange() {
|
|
56
|
+
updateValue();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
Bridge.presenter.getPresentation().on("change:context", onContextChange);
|
|
60
|
+
|
|
61
|
+
return () => {
|
|
62
|
+
Bridge.presenter.getPresentation().off("change:context", onContextChange);
|
|
63
|
+
};
|
|
64
|
+
}, [isPresomanager, value, getValue]);
|
|
65
|
+
|
|
66
|
+
// When in Presomanager we cannot use a state (nothing we can watch - yet),
|
|
67
|
+
// in this mode, the latest saved value can be fetched on re-render.
|
|
68
|
+
return {
|
|
69
|
+
key,
|
|
70
|
+
value: isPresomanager ? getValue() : value,
|
|
71
|
+
hasValue: (isPresomanager ? getValue() : value) !== null,
|
|
72
|
+
updateValue,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Returns the current value of a CWE editable on the current slide.
|
|
78
|
+
* (standard slide, PresoManager template or user template)
|
|
79
|
+
*/
|
|
80
|
+
export function useCWEEditableValue(id, defaultValue = null) {
|
|
81
|
+
return useCWEEditableInfo(id).value ?? defaultValue;
|
|
82
|
+
}
|
package/lib/hooks/index.js
CHANGED
|
@@ -7,6 +7,8 @@ export { useCompanywide } from "./use-companywide.js";
|
|
|
7
7
|
export { useSlide } from "./use-slide.js";
|
|
8
8
|
export { useTransitions } from "./use-transitions.js";
|
|
9
9
|
export { useSubslides } from "./use-subslides.js";
|
|
10
|
-
export { usePrepEditable } from "./use-prep-editable.js";
|
|
11
10
|
export { useSlideDone } from "./use-slide-done.js";
|
|
11
|
+
export { useEditableFieldKey } from "./use-editable-field-key.js";
|
|
12
12
|
export { useEditableInitialState } from "./use-editable-initial-state.js";
|
|
13
|
+
export { usePrepEditableInfo, usePrepEditableValue } from "./prep-editable.js";
|
|
14
|
+
export { useCWEEditableInfo, useCWEEditableValue } from "./cwe-editable.js";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
import { useModes } from "./use-modes";
|
|
4
|
+
import { useSlide } from "./use-slide";
|
|
5
|
+
import { useEditableFieldKey } from "./use-editable-field-key";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Returns information about a prep editable on the current slide.
|
|
9
|
+
*
|
|
10
|
+
* If the prep editable field is found on a user or PM template, the key
|
|
11
|
+
* will be adjusted to match the required format.
|
|
12
|
+
*
|
|
13
|
+
* Example:
|
|
14
|
+
*
|
|
15
|
+
* usePrepEditable("test");
|
|
16
|
+
* => {
|
|
17
|
+
* key: "test",
|
|
18
|
+
* value: "User edited text",
|
|
19
|
+
* hasValue: true
|
|
20
|
+
* }
|
|
21
|
+
*/
|
|
22
|
+
export function usePrepEditableInfo(id) {
|
|
23
|
+
const { isPresomanager } = useModes();
|
|
24
|
+
const { slideID } = useSlide();
|
|
25
|
+
|
|
26
|
+
const key = useEditableFieldKey(id, { isPrep: true });
|
|
27
|
+
|
|
28
|
+
const prepKey = `${slideID}--${key}`;
|
|
29
|
+
const keyPath = `_editableContent.${prepKey}.value`;
|
|
30
|
+
|
|
31
|
+
const getValue = useCallback(() => {
|
|
32
|
+
return Bridge.Context.get(keyPath, null);
|
|
33
|
+
}, [keyPath]);
|
|
34
|
+
|
|
35
|
+
const [value, setValue] = useState(getValue());
|
|
36
|
+
|
|
37
|
+
function updateValue() {
|
|
38
|
+
const newValue = getValue();
|
|
39
|
+
|
|
40
|
+
if (value === newValue) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
setValue(newValue);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (isPresomanager) return;
|
|
49
|
+
|
|
50
|
+
function onContextChange() {
|
|
51
|
+
updateValue();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
Bridge.presenter.getPresentation().on("change:context", onContextChange);
|
|
55
|
+
|
|
56
|
+
return () => {
|
|
57
|
+
Bridge.presenter.getPresentation().off("change:context", onContextChange);
|
|
58
|
+
};
|
|
59
|
+
}, [isPresomanager, value, getValue]);
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
key,
|
|
63
|
+
value: value,
|
|
64
|
+
hasValue: value !== null,
|
|
65
|
+
updateValue,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Returns the current value of a prep editable on the current slide.
|
|
71
|
+
*/
|
|
72
|
+
export function usePrepEditableValue(id, defaultValue = null) {
|
|
73
|
+
return usePrepEditableInfo(id).value ?? defaultValue;
|
|
74
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useSlide } from "./use-slide.js";
|
|
2
|
+
import { getPMTemplateFieldKey, getUserTemplateFieldKey } from "../utils.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Takes a base field key, and returns a modified field key depending on the slide type
|
|
6
|
+
* (ie. standard, user template or presomanager template).
|
|
7
|
+
*
|
|
8
|
+
* @param {string} key - The base key of the target field.
|
|
9
|
+
* @returns {string} - The field key modified depending on the slide type.
|
|
10
|
+
*/
|
|
11
|
+
export function useEditableFieldKey(key) {
|
|
12
|
+
const { slideID, isPMTemplate, isUserTemplate } = useSlide();
|
|
13
|
+
const presomanagerTemplateKey = getPMTemplateFieldKey(key, slideID);
|
|
14
|
+
const userTemplateKey = getUserTemplateFieldKey(key, slideID);
|
|
15
|
+
|
|
16
|
+
if (isUserTemplate) return userTemplateKey;
|
|
17
|
+
if (isPMTemplate) return presomanagerTemplateKey;
|
|
18
|
+
return key;
|
|
19
|
+
}
|
|
@@ -1,128 +1,33 @@
|
|
|
1
|
-
import { CWE_JSON_KEY } from "../constants.js";
|
|
2
1
|
import { useSlide } from "./use-slide.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function getSlideNumericID() {
|
|
6
|
-
const { slideID } = useSlide();
|
|
7
|
-
const numericRegex = /-(\d+)(?:-temp)*$/;
|
|
8
|
-
return slideID.match(numericRegex)?.[1];
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Constructs a user template field key based on the provided key and slide details.
|
|
13
|
-
*
|
|
14
|
-
* Note: field keys are prefixed with the slide ID when saved to the Context (_userTemplateCMSvals)
|
|
15
|
-
* however they are not prefixed when used for the data-companywide-editable attribute.
|
|
16
|
-
*
|
|
17
|
-
* Slide ID variations:
|
|
18
|
-
* saved user template: adjunct-template-slide-415
|
|
19
|
-
* unsaved user template: adjunct-template-slide-tempkey-1168
|
|
20
|
-
*
|
|
21
|
-
* Constructed field keys:
|
|
22
|
-
* saved user template: slideID--key-tempkey-415
|
|
23
|
-
* unsaved user template: slideID--key-adjunct-1168
|
|
24
|
-
*
|
|
25
|
-
* @param {string} key - The base key of the target field.
|
|
26
|
-
* @param {boolean} options.isUserCMSVals - If true, prefix the returned key with the slide ID.
|
|
27
|
-
* @returns {string} - The constructed field key for the user template.
|
|
28
|
-
*/
|
|
29
|
-
function getUserTemplateFieldKey(key, { isUserCMSVals = false } = {}) {
|
|
30
|
-
const { slideID } = useSlide();
|
|
31
|
-
const slideNumericID = getSlideNumericID();
|
|
32
|
-
const isUnsavedTemplate = slideID.indexOf("-tempkey") > -1;
|
|
33
|
-
let fieldKey = key;
|
|
34
|
-
|
|
35
|
-
// Add slideID prefix if requested and not included in key
|
|
36
|
-
if (isUserCMSVals && !key.startsWith(`${slideID}--`)) {
|
|
37
|
-
fieldKey = `${slideID}--${key}`;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// unsaved user template adds all this on the end
|
|
41
|
-
if (isUnsavedTemplate) {
|
|
42
|
-
return `${fieldKey}-tempkey-${slideNumericID}`;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return `${fieldKey}-adjunct-${slideNumericID}`;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function getUserTemplateData(fieldKey) {
|
|
49
|
-
const userValues = Bridge.Context.getDict()._userTemplateCMSvals;
|
|
50
|
-
return (
|
|
51
|
-
Object.values(userValues || {})?.find?.((vals) => vals.key === fieldKey) ||
|
|
52
|
-
{}
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Constructs a PM template field key based on the provided key and slide details.
|
|
58
|
-
*
|
|
59
|
-
* Slide ID variations:
|
|
60
|
-
* saved PM template: template-slide-11
|
|
61
|
-
* unsaved PM template: template-slide-1120-temp
|
|
62
|
-
*
|
|
63
|
-
* Constructed field keys:
|
|
64
|
-
* saved PM template: key-autoadjunct-11
|
|
65
|
-
* unsaved PM template: key-autoadjunct-1120-temp
|
|
66
|
-
*
|
|
67
|
-
* @param {string} key - The base key of the target field.
|
|
68
|
-
* @returns {string} - The constructed field key for the PM template.
|
|
69
|
-
*/
|
|
70
|
-
function getPMTemplateFieldKey(key) {
|
|
71
|
-
const { slideID, slideKey } = useSlide();
|
|
72
|
-
const isCWEJSON = key.endsWith(CWE_JSON_KEY);
|
|
73
|
-
const slideNumericID = getSlideNumericID();
|
|
74
|
-
// example: image_plus_text_columns-options-autoadjunct-767-temp
|
|
75
|
-
const isUnsavedTemplate = slideID.indexOf("-temp") > -1;
|
|
76
|
-
// "template-" is added to the start of the slideKey of PM templates
|
|
77
|
-
// this is not included in CWE field keys and needs to be removed if
|
|
78
|
-
// slideKey was used to generate the field key request.
|
|
79
|
-
// NOTE: CWE JSON field keys require the "template-" prefix
|
|
80
|
-
const fieldKey =
|
|
81
|
-
!isCWEJSON && key.startsWith(slideKey) && key.startsWith("template-")
|
|
82
|
-
? key.replace("template-", "")
|
|
83
|
-
: key;
|
|
84
|
-
|
|
85
|
-
if (isUnsavedTemplate) {
|
|
86
|
-
return `${fieldKey}-autoadjunct-${slideNumericID}-temp`;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return `${fieldKey}-autoadjunct-${slideNumericID}`;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function getCWEData(fieldKey) {
|
|
93
|
-
// PM template or standard slide companywide editable field
|
|
94
|
-
const cweVals = Bridge.Companywide.getWithKeys([fieldKey]);
|
|
95
|
-
return cweVals.find((vals) => vals.key === fieldKey) || {};
|
|
96
|
-
}
|
|
2
|
+
import { useEditableFieldKey } from "./use-editable-field-key.js";
|
|
3
|
+
import { getCWEData, getUserTemplateData } from "../utils.js";
|
|
97
4
|
|
|
98
5
|
/**
|
|
99
6
|
* Retrieves the key and value of a requested slide CWE, PM template or user template field.
|
|
100
7
|
* Adjusts the field key as required for user and PM templates.
|
|
101
8
|
*
|
|
9
|
+
* Note: This hook is not tied to a state, as such it will not update when changes are made
|
|
10
|
+
* to the requested editable field. This hook will only return a new value when re-run.
|
|
11
|
+
*
|
|
102
12
|
* @param {string} key - The base key of the field to retrieve.
|
|
103
13
|
* @param {string} [defaultValue=''] - The default value to use if the field is not found.
|
|
104
14
|
* @returns {Array} - An array containing the value of the field and the adjusted field key.
|
|
105
15
|
*/
|
|
106
|
-
export function useEditableInitialState(
|
|
107
|
-
const {
|
|
108
|
-
|
|
16
|
+
export function useEditableInitialState(id, defaultValue = "") {
|
|
17
|
+
const { slideID, isUserTemplate } = useSlide();
|
|
18
|
+
|
|
19
|
+
const key = useEditableFieldKey(id);
|
|
20
|
+
|
|
109
21
|
let data;
|
|
110
22
|
|
|
111
23
|
if (isUserTemplate) {
|
|
112
|
-
|
|
113
|
-
const dataKey = getUserTemplateFieldKey(key, {
|
|
114
|
-
isUserCMSVals: true,
|
|
115
|
-
});
|
|
116
|
-
data = getUserTemplateData(dataKey);
|
|
117
|
-
} else if (isPMTemplate) {
|
|
118
|
-
fieldKey = getPMTemplateFieldKey(key);
|
|
119
|
-
data = getCWEData(fieldKey);
|
|
24
|
+
data = getUserTemplateData(key, slideID);
|
|
120
25
|
} else {
|
|
121
|
-
data = getCWEData(
|
|
26
|
+
data = getCWEData(key);
|
|
122
27
|
}
|
|
123
28
|
|
|
124
29
|
const value =
|
|
125
30
|
data?.value || data?.accepted?.value || data?.saved?.value || defaultValue;
|
|
126
31
|
|
|
127
|
-
return [value,
|
|
32
|
+
return [value, key];
|
|
128
33
|
}
|
package/lib/hooks/use-modes.js
CHANGED
|
@@ -12,7 +12,10 @@ export function useModes() {
|
|
|
12
12
|
const isPreview = bodyClasses.includes("preview");
|
|
13
13
|
const isPresent = bodyClasses.includes("present");
|
|
14
14
|
const isReview = bodyClasses.includes("review");
|
|
15
|
-
|
|
15
|
+
// Editing user templates in prep results in both the 'preview' and 'edit-mode'
|
|
16
|
+
// classes being added to the body. In order to detect if we are truly on the
|
|
17
|
+
// PresoManager page in the app, we need to ignore the 'preview' class.
|
|
18
|
+
const isPresomanager = bodyClasses.includes("edit-mode") && !isPreview;
|
|
16
19
|
const isEmptyPreview = bodyClasses.includes("empty-preview");
|
|
17
20
|
const isRemote = isOnline && isClient && !isShareOnline;
|
|
18
21
|
const isCdk = typeof window.__cdk_version__ !== "undefined";
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { CWE_JSON_KEY } from "./constants";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates the base key for a CWE JSON field.
|
|
5
|
+
* Note: This does not apply any modifications required by the PM template
|
|
6
|
+
* and user template uses of CWE JSON. For those, you will need to run the
|
|
7
|
+
* return value of this key through `getPMTemplateFieldKey` or `getUserTemplateFieldKey`.
|
|
8
|
+
*
|
|
9
|
+
* @param {String} slideKey
|
|
10
|
+
* @returns {String} - Composed base key used for CWE JSON (aka. Companywide JSON)
|
|
11
|
+
*/
|
|
12
|
+
export function getCWEJSONKey(slideKey) {
|
|
13
|
+
if (!slideKey) {
|
|
14
|
+
throw new Error("'slideKey' is required");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return `${slideKey}-${CWE_JSON_KEY}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Checks CWE keys for the current slide for the relevant CWE key.
|
|
22
|
+
* CWE JSON key is modified as required for PM template and user template.
|
|
23
|
+
*
|
|
24
|
+
* @param {Object} slideState - slide details returned by `useSlide()` hook.
|
|
25
|
+
* @param {String} slideState.slideID
|
|
26
|
+
* @param {String} slideState.slideKey
|
|
27
|
+
* @param {Boolean} slideState.isPMTemplate
|
|
28
|
+
* @param {Boolean} slideState.isUserTemplate
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export function testCWEJSONExists({
|
|
32
|
+
slideID,
|
|
33
|
+
slideKey,
|
|
34
|
+
isPMTemplate,
|
|
35
|
+
isUserTemplate,
|
|
36
|
+
} = {}) {
|
|
37
|
+
const key = getCWEJSONKey(slideKey);
|
|
38
|
+
const cweKeys = window.Bridge.Companywide?.getSlideKeys?.() || [];
|
|
39
|
+
|
|
40
|
+
const presomanagerTemplateKey = getPMTemplateFieldKey(key, slideID);
|
|
41
|
+
const userTemplateKey = getUserTemplateFieldKey(key, slideID);
|
|
42
|
+
|
|
43
|
+
if (isUserTemplate) return cweKeys.includes(userTemplateKey);
|
|
44
|
+
if (isPMTemplate) return cweKeys.includes(presomanagerTemplateKey);
|
|
45
|
+
return cweKeys.includes(key);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Captures all the digits within the slide name,
|
|
50
|
+
* prefaced by a hyphen and optional trailed by -temp.
|
|
51
|
+
*
|
|
52
|
+
* Results are used when composing field keys for PM templates
|
|
53
|
+
* and user templates, eg. getPMTemplateFieldKey() and getUserTemplateFieldKey().
|
|
54
|
+
*/
|
|
55
|
+
function getSlideNumericID(slideID) {
|
|
56
|
+
const numericRegex = /-(\d+)(?:-temp)*$/;
|
|
57
|
+
return slideID.match(numericRegex)?.[1];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Constructs a PM template field key based on the provided key and slide details.
|
|
62
|
+
*
|
|
63
|
+
* Slide ID variations:
|
|
64
|
+
* saved PM template: template-slide-11
|
|
65
|
+
* unsaved PM template: template-slide-1120-temp
|
|
66
|
+
*
|
|
67
|
+
* Constructed field keys:
|
|
68
|
+
* saved PM template: key-autoadjunct-11
|
|
69
|
+
* unsaved PM template: key-autoadjunct-1120-temp
|
|
70
|
+
*
|
|
71
|
+
* @param {string} key - The base key of the target field.
|
|
72
|
+
* @returns {string} - The constructed field key for the PM template.
|
|
73
|
+
*/
|
|
74
|
+
export function getPMTemplateFieldKey(key, slideID) {
|
|
75
|
+
const slideNumericID = getSlideNumericID(slideID);
|
|
76
|
+
// example: image_plus_text_columns-options-autoadjunct-767-temp
|
|
77
|
+
const isUnsavedTemplate = slideID.indexOf("-temp") > -1;
|
|
78
|
+
const templateFieldKey = `${key}-autoadjunct-${slideNumericID}`;
|
|
79
|
+
|
|
80
|
+
if (isUnsavedTemplate) {
|
|
81
|
+
return `${templateFieldKey}-temp`;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return templateFieldKey;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Constructs a user template field key based on the provided key and slide details.
|
|
89
|
+
*
|
|
90
|
+
* Slide ID variations:
|
|
91
|
+
* saved user template: adjunct-template-slide-415
|
|
92
|
+
* unsaved user template: adjunct-template-slide-tempkey-1168
|
|
93
|
+
*
|
|
94
|
+
* Constructed field keys:
|
|
95
|
+
* saved user template: key-tempkey-11
|
|
96
|
+
* unsaved user template: key-adjunct-1120
|
|
97
|
+
*
|
|
98
|
+
* @param {string} key - The base key of the target field.
|
|
99
|
+
* @returns {string} - The constructed field key for the user template.
|
|
100
|
+
*/
|
|
101
|
+
export function getUserTemplateFieldKey(key, slideID) {
|
|
102
|
+
const slideNumericID = getSlideNumericID(slideID);
|
|
103
|
+
const isUnsavedTemplate = slideID.indexOf("-tempkey") > -1;
|
|
104
|
+
|
|
105
|
+
if (isUnsavedTemplate) {
|
|
106
|
+
return `${key}-tempkey-${slideNumericID}`;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return `${key}-adjunct-${slideNumericID}`;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Returns PM template or standard slide companywide editable data.
|
|
114
|
+
*
|
|
115
|
+
* @param {string} fieldKey
|
|
116
|
+
* @returns {object} - Saved PM editable field data
|
|
117
|
+
*/
|
|
118
|
+
export function getCWEData(fieldKey) {
|
|
119
|
+
const cweVals = window.Bridge.Companywide?.getWithKeys([fieldKey]) || [];
|
|
120
|
+
return cweVals.find((vals) => vals.key === fieldKey) || {};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Finds value saved to requested user template field. This function expects the supplied
|
|
125
|
+
* key to have been generated by the useEditableFieldKey() hook, this is to ensure the correct
|
|
126
|
+
* parent slide information has been included in the key.
|
|
127
|
+
*
|
|
128
|
+
* Note: field keys are prefixed with the slide ID when saved to the Context (_userTemplateCMSvals)
|
|
129
|
+
* however they are not prefixed when used for the data-companywide-editable attribute.
|
|
130
|
+
*
|
|
131
|
+
* Constructed field keys:
|
|
132
|
+
* saved user template: slideID--key-tempkey-415
|
|
133
|
+
* unsaved user template: slideID--key-adjunct-1168
|
|
134
|
+
*
|
|
135
|
+
* @param {string} key - The base key of the target field.
|
|
136
|
+
* @returns {object} - information saved to the requested user template field.
|
|
137
|
+
*/
|
|
138
|
+
export function getUserTemplateData(key, slideID) {
|
|
139
|
+
let fieldKey = key;
|
|
140
|
+
|
|
141
|
+
// Add slideID prefix if not included in key
|
|
142
|
+
if (!fieldKey.startsWith(`${slideID}--`)) {
|
|
143
|
+
fieldKey = `${slideID}--${key}`;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const userValues =
|
|
147
|
+
window.Bridge.Context?.getDict()._userTemplateCMSvals || {};
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
Object.values(userValues)?.find?.((vals) => vals.key === fieldKey) || {}
|
|
151
|
+
);
|
|
152
|
+
}
|
package/package.json
CHANGED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"files": {
|
|
3
|
-
"content/content-react/.rush/temp/shrinkwrap-deps.json": "4645c4e5204fbf6e4b13573ceeacb3c093ff7a90",
|
|
4
|
-
"content/content-react/.eslintrc.js": "6245fc28bbe1102d1b4c2a1db96a508e6221f6bd",
|
|
5
|
-
"content/content-react/.stylelintrc": "5c129c044fdf8b0dfd92da7860ea25f60bcde085",
|
|
6
|
-
"content/content-react/CHANGELOG.json": "001e63a228a710a99d8534c5bc38ddf662946eed",
|
|
7
|
-
"content/content-react/CHANGELOG.md": "b5932d45a8c6fcebf4267435c93a9d98a153242e",
|
|
8
|
-
"content/content-react/index.js": "826cec91ed8d4b018b33a847b4df6a3e8631d220",
|
|
9
|
-
"content/content-react/lib/components/ScrollableArea.js": "ee97a6ce605c2071f879382d1f347fe4fed83ee4",
|
|
10
|
-
"content/content-react/lib/components/ScrollableArea.module.scss": "74543f283eb2db0b67d70ffe0d068e03a1131573",
|
|
11
|
-
"content/content-react/lib/components/Subslide.js": "ddec8751b9a86d0cc5f587ec31d7d426f42648c5",
|
|
12
|
-
"content/content-react/lib/components/Subslides.js": "764d5901525bab61b8f72dc4fe399a356b185e12",
|
|
13
|
-
"content/content-react/lib/components/index.js": "f233f0e270fc648dc9c8ae2abfa93bd9e8ccdc01",
|
|
14
|
-
"content/content-react/lib/contexts.js": "59a0173397a32c788c0d61ee317741fe0a9c9bee",
|
|
15
|
-
"content/content-react/lib/hooks/index.js": "6fcf567354b94f0ab3fb0e2c4bf502cd5a81429e",
|
|
16
|
-
"content/content-react/lib/hooks/use-async-reference.js": "23e3eeff2b87b530d40129a049996a5fe76e34c6",
|
|
17
|
-
"content/content-react/lib/hooks/use-context.js": "3f697379e6ee9790ba6b4ae96ad6d6c2ba20a669",
|
|
18
|
-
"content/content-react/lib/hooks/use-modes.js": "ad8e27b3659b0fcf6fbe79333ccec86d690ed983",
|
|
19
|
-
"content/content-react/lib/hooks/use-root-slide.js": "98ce55032605df9507467b32f7969355318330f4",
|
|
20
|
-
"content/content-react/lib/hooks/use-shared-state.js": "0d160ddf3e5dec37849f72f4ec2a1d7aac680159",
|
|
21
|
-
"content/content-react/lib/hooks/use-subslides.js": "508ac21b01a4ece811ebc2db9c6a41ef6071e326",
|
|
22
|
-
"content/content-react/lib/hooks/use-transitions.js": "c9cdf3e8af82b8f8a51e99ee670334cc5c7c42c1",
|
|
23
|
-
"content/content-react/package.json": "1bed2af8c66bfa4ad2540e0e001cea26109435eb"
|
|
24
|
-
},
|
|
25
|
-
"arguments": ""
|
|
26
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
|
|
3
|
-
import { useSlide } from "../hooks/use-slide";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Returns information about a prep editable on the current slide.
|
|
7
|
-
*
|
|
8
|
-
* Example:
|
|
9
|
-
*
|
|
10
|
-
* usePrepEditable("test");
|
|
11
|
-
* => {
|
|
12
|
-
* key: "myslide--myslide-test,
|
|
13
|
-
* value: "User edited text,
|
|
14
|
-
* hasValue: true
|
|
15
|
-
* }
|
|
16
|
-
*/
|
|
17
|
-
export function usePrepEditable(id) {
|
|
18
|
-
const { slideKey } = useSlide();
|
|
19
|
-
|
|
20
|
-
// TODO: This won't work with user templates, and might
|
|
21
|
-
// have problems with PM templates too. Fix this.
|
|
22
|
-
const prepKey = `${slideKey}--${slideKey}-${id}`;
|
|
23
|
-
const keyPath = `_editableContent.${prepKey}.value`;
|
|
24
|
-
|
|
25
|
-
const getValue = useCallback(() => {
|
|
26
|
-
return Bridge.Context.get(keyPath, null);
|
|
27
|
-
}, [keyPath]);
|
|
28
|
-
|
|
29
|
-
const [value, setValue] = useState(getValue());
|
|
30
|
-
|
|
31
|
-
useEffect(() => {
|
|
32
|
-
function onContextChange() {
|
|
33
|
-
const newValue = getValue();
|
|
34
|
-
|
|
35
|
-
if (value === newValue) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
setValue(newValue);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
Bridge.presenter.getPresentation().on("change:context", onContextChange);
|
|
43
|
-
|
|
44
|
-
return () => {
|
|
45
|
-
Bridge.presenter.getPresentation().off("change:context", onContextChange);
|
|
46
|
-
};
|
|
47
|
-
}, [value, getValue]);
|
|
48
|
-
|
|
49
|
-
return { key: prepKey, value, hasValue: value !== null };
|
|
50
|
-
}
|