@social-mail/social-mail-client 1.8.329 → 1.8.330
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/dist/admin/AdminAppIndex.pack.js +33 -5
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/commands/CommonCommands.d.ts +2 -0
- package/dist/common/commands/CommonCommands.d.ts.map +1 -1
- package/dist/common/commands/CommonCommands.js +16 -0
- package/dist/common/commands/CommonCommands.js.map +1 -1
- package/dist/common/menu/MenuService.d.ts +1 -0
- package/dist/common/menu/MenuService.d.ts.map +1 -1
- package/dist/common/menu/MenuService.js +7 -1
- package/dist/common/menu/MenuService.js.map +1 -1
- package/dist/common/pages/files/service/CloudFileService.d.ts +2 -1
- package/dist/common/pages/files/service/CloudFileService.d.ts.map +1 -1
- package/dist/common/pages/files/service/CloudFileService.js +3 -1
- package/dist/common/pages/files/service/CloudFileService.js.map +1 -1
- package/dist/common/pages/websites/list/WebSiteListPage.d.ts.map +1 -1
- package/dist/common/pages/websites/list/WebSiteListPage.js +5 -2
- package/dist/common/pages/websites/list/WebSiteListPage.js.map +1 -1
- package/dist/public/channel/ChannelApp.pack.js +1 -1
- package/dist/public/channel/ChannelApp.pack.min.js +1 -1
- package/dist/public/preview/pdf/PreviewPDF.pack.js +1 -1
- package/dist/public/preview/pdf/PreviewPDF.pack.min.js +1 -1
- package/dist/public/preview/video/PreviewVideo.pack.js +1 -1
- package/dist/public/preview/video/PreviewVideo.pack.min.js +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.js +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.min.js +1 -1
- package/dist/public/store/StoreApp.pack.js +1 -1
- package/dist/public/store/StoreApp.pack.min.js +1 -1
- package/dist/site-editor/editor/ui/SelectionUI.d.ts.map +1 -1
- package/dist/site-editor/editor/ui/SelectionUI.js +47 -6
- package/dist/site-editor/editor/ui/SelectionUI.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.js +80 -11
- package/dist/site-editor-app/SiteEditorApp.pack.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.min.js +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.min.js.map +1 -1
- package/dist/style/GlobalStyle.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +52 -5
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +1 -1
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/drawer/AppDrawer.d.ts.map +1 -1
- package/dist/web/drawer/AppDrawer.js +19 -0
- package/dist/web/drawer/AppDrawer.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/mobile-app/MasterDetailPage.d.ts.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/mobile-app/MasterDetailPage.js +1 -0
- package/node_modules/@web-atoms/web-controls/dist/mobile-app/MasterDetailPage.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/web-controls/package.json +1 -1
- package/node_modules/@web-atoms/web-controls/src/mobile-app/MasterDetailPage.tsx +1 -0
- package/package.json +2 -2
- package/src/common/commands/CommonCommands.ts +14 -0
- package/src/common/menu/MenuService.tsx +7 -2
- package/src/common/pages/files/service/CloudFileService.ts +4 -1
- package/src/common/pages/websites/list/WebSiteListPage.tsx +6 -2
- package/src/site-editor/editor/ui/SelectionUI.tsx +56 -6
- package/src/style/GlobalStyle.ts +1 -1
- package/src/web/drawer/AppDrawer.tsx +20 -0
|
@@ -30,13 +30,16 @@ export default class CloudFileService {
|
|
|
30
30
|
@Inject
|
|
31
31
|
private localFileService: LocalFileService;
|
|
32
32
|
|
|
33
|
-
async topSites({ search = void 0} = {}) {
|
|
33
|
+
async topSites({ search = void 0, isDesign = false} = {}) {
|
|
34
34
|
const userID = SocialMailApp.user.userID;
|
|
35
35
|
let q = this.entityService.query(WebSite);
|
|
36
36
|
if (search) {
|
|
37
37
|
search = "%" + search + "%";
|
|
38
38
|
q = q.where({ search }, (p) => (x) => Sql.text.iLike(x.folder.name, p.search));
|
|
39
39
|
}
|
|
40
|
+
q = isDesign
|
|
41
|
+
? q.where((x) => x.isDesign === true)
|
|
42
|
+
: q.where((x) => x.isDesign === false);
|
|
40
43
|
const top = await (search
|
|
41
44
|
? q
|
|
42
45
|
: q.orderByDescending({userID} , (p) => (x) => x.folder.userPins.some((s) => p.userID === s.userID)))
|
|
@@ -35,6 +35,9 @@ export default class WebSiteListPage extends MasterDetailPage {
|
|
|
35
35
|
|
|
36
36
|
async init() {
|
|
37
37
|
|
|
38
|
+
this.showDesigns = /design/i.test(this.parameters.type);
|
|
39
|
+
this.showTemplates = /template/i.test(this.parameters.type);
|
|
40
|
+
|
|
38
41
|
this.headerRenderer = () => <div data-layout="header-row">
|
|
39
42
|
<input
|
|
40
43
|
type="search"
|
|
@@ -81,8 +84,9 @@ export default class WebSiteListPage extends MasterDetailPage {
|
|
|
81
84
|
|
|
82
85
|
@Action({ onEvent: "create-new-website"})
|
|
83
86
|
async createNewWebsite() {
|
|
84
|
-
await PageNavigator.pushPageForResult(WebSiteEditor);
|
|
85
|
-
|
|
87
|
+
const model = await PageNavigator.pushPageForResult(WebSiteEditor);
|
|
88
|
+
this.selectedItem = model;
|
|
89
|
+
this.version++;
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
@Action({ onEvent: "selection-updated"})
|
|
@@ -43,6 +43,22 @@ const setCapture = (editor: HtmlPageEditor, element: HTMLElement, e: PointerEven
|
|
|
43
43
|
const selectedElement = selection.element;
|
|
44
44
|
const selectedParent = selectedElement.parentElement;
|
|
45
45
|
|
|
46
|
+
|
|
47
|
+
const insetAttribute = `${prefix}-inset`;
|
|
48
|
+
const widthAttribute = `${prefix}-width`;
|
|
49
|
+
const heightAttribute = `${prefix}-height`;
|
|
50
|
+
|
|
51
|
+
const oldWidth = selectedElement.getAttribute(widthAttribute);
|
|
52
|
+
const oldHeight = selectedElement.getAttribute(heightAttribute);
|
|
53
|
+
const oldInset = selectedElement.getAttribute(insetAttribute);
|
|
54
|
+
|
|
55
|
+
let newInset;
|
|
56
|
+
let newHeight;
|
|
57
|
+
let newWidth;
|
|
58
|
+
|
|
59
|
+
const records = [] as MutationRecord[];
|
|
60
|
+
|
|
61
|
+
|
|
46
62
|
const style = selectedElement.ownerDocument.defaultView.getComputedStyle(selectedElement);
|
|
47
63
|
const { left = "0", top = "0", right = "0", bottom = "0" } = style;
|
|
48
64
|
const width = selectedParent.offsetWidth;
|
|
@@ -50,7 +66,9 @@ const setCapture = (editor: HtmlPageEditor, element: HTMLElement, e: PointerEven
|
|
|
50
66
|
|
|
51
67
|
const ps = (v, max) => (v* 100 / (max || 1)).toFixed(2);
|
|
52
68
|
|
|
53
|
-
const
|
|
69
|
+
const { undoRedo } = editor;
|
|
70
|
+
|
|
71
|
+
const d = undoRedo.beginPause();
|
|
54
72
|
|
|
55
73
|
const captureMove = (evt: PointerEvent) => {
|
|
56
74
|
const dx = evt.clientX - sx;
|
|
@@ -66,8 +84,8 @@ const setCapture = (editor: HtmlPageEditor, element: HTMLElement, e: PointerEven
|
|
|
66
84
|
dy
|
|
67
85
|
};
|
|
68
86
|
const r = fx(ri);
|
|
69
|
-
|
|
70
|
-
selectedElement.setAttribute(
|
|
87
|
+
newInset = `${ps(r.top, height)}% ${ps(r.right, width)}% ${ps(r.bottom, height)}% ${ps(r.left, width)}%`;
|
|
88
|
+
selectedElement.setAttribute(insetAttribute, newInset);
|
|
71
89
|
// if (/^img$/i.test(selectedElement.tagName)) {
|
|
72
90
|
// image needs width/height as well...
|
|
73
91
|
if (!r.move) {
|
|
@@ -79,8 +97,10 @@ const setCapture = (editor: HtmlPageEditor, element: HTMLElement, e: PointerEven
|
|
|
79
97
|
if (ri.right === r.right) {
|
|
80
98
|
widthDiff -= r.right;
|
|
81
99
|
}
|
|
82
|
-
|
|
83
|
-
selectedElement.setAttribute(
|
|
100
|
+
newWidth = ps(width + widthDiff, width) + "%";
|
|
101
|
+
selectedElement.setAttribute(widthAttribute, newWidth);
|
|
102
|
+
newHeight = ps(height + heightDiff, height) + "%";
|
|
103
|
+
selectedElement.setAttribute(heightAttribute, newHeight);
|
|
84
104
|
}
|
|
85
105
|
// }
|
|
86
106
|
|
|
@@ -97,8 +117,38 @@ const setCapture = (editor: HtmlPageEditor, element: HTMLElement, e: PointerEven
|
|
|
97
117
|
element.removeEventListener("pointermove", captureMove);
|
|
98
118
|
element.removeEventListener("pointerup", release);
|
|
99
119
|
captureMove(e1);
|
|
100
|
-
d.resume();
|
|
101
120
|
editor.commit();
|
|
121
|
+
d.resume();
|
|
122
|
+
|
|
123
|
+
// push records...
|
|
124
|
+
records.push({
|
|
125
|
+
type: "attributes",
|
|
126
|
+
oldValue: oldInset,
|
|
127
|
+
target: selectedElement as any,
|
|
128
|
+
attributeName: insetAttribute,
|
|
129
|
+
attributeNamespace: "",
|
|
130
|
+
} as MutationRecord);
|
|
131
|
+
|
|
132
|
+
if (newWidth) {
|
|
133
|
+
records.push({
|
|
134
|
+
type: "attributes",
|
|
135
|
+
oldValue: oldWidth,
|
|
136
|
+
target: selectedElement as any,
|
|
137
|
+
attributeName: widthAttribute,
|
|
138
|
+
attributeNamespace: "",
|
|
139
|
+
} as MutationRecord);
|
|
140
|
+
}
|
|
141
|
+
if (newHeight) {
|
|
142
|
+
records.push({
|
|
143
|
+
type: "attributes",
|
|
144
|
+
oldValue: oldHeight,
|
|
145
|
+
target: selectedElement as any,
|
|
146
|
+
attributeName: heightAttribute,
|
|
147
|
+
attributeNamespace: "",
|
|
148
|
+
} as MutationRecord);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
undoRedo.observe(records);
|
|
102
152
|
};
|
|
103
153
|
element.addEventListener("pointerup", release);
|
|
104
154
|
};
|
package/src/style/GlobalStyle.ts
CHANGED
|
@@ -29,7 +29,7 @@ function addLinkTag(href, integrity?, rel = "stylesheet") {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
addLinkTag("https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap");
|
|
32
|
-
addLinkTag("https://dtzkc6yot8xw8.cloudfront.net/npm/package/@c8private/fa-icons@
|
|
32
|
+
addLinkTag("https://dtzkc6yot8xw8.cloudfront.net/npm/package/@c8private/fa-icons@7.0.0/css/all.min.css");
|
|
33
33
|
addLinkTag("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0");
|
|
34
34
|
addLinkTag("https://cdn.jsdelivr.net/npm/file-icon-vectors@1.0.0/dist/file-icon-vivid.min.css");
|
|
35
35
|
|
|
@@ -132,6 +132,26 @@ export default class AppDrawer extends BaseDrawer {
|
|
|
132
132
|
label="All"
|
|
133
133
|
commandLink={AppCommands.openWebSiteList.displayRoute({})}
|
|
134
134
|
/>
|
|
135
|
+
</ExpanderMenu>
|
|
136
|
+
<ExpanderMenu
|
|
137
|
+
style-display={Bind.oneWay(() => this.menuService.designs.length > 0)}
|
|
138
|
+
isExpanded={true}>
|
|
139
|
+
<MenuItem
|
|
140
|
+
icon="fa-duotone fa-thin fa-object-group"
|
|
141
|
+
label="Designs"
|
|
142
|
+
commandLink={null}
|
|
143
|
+
/>
|
|
144
|
+
<MenuRepeater
|
|
145
|
+
items={this.menuService.websites}
|
|
146
|
+
itemRenderer={(d: IWebSite) => <MenuItem
|
|
147
|
+
commandLink={CommonCommands.openWebSiteDetails.displayRoute({ id: d.folderID })}
|
|
148
|
+
label={d.folder.name}
|
|
149
|
+
description={toFileSize(Number(d.folder.fileSize) + Number(d.snapshotStorage))}
|
|
150
|
+
/>}/>
|
|
151
|
+
<MenuItem
|
|
152
|
+
label="All"
|
|
153
|
+
commandLink={AppCommands.openWebSiteDesignList.displayRoute({})}
|
|
154
|
+
/>
|
|
135
155
|
</ExpanderMenu>
|
|
136
156
|
<ExpanderMenu isExpanded={false}>
|
|
137
157
|
<MenuItem
|