ag-common 0.0.186 → 0.0.189

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.
@@ -5,4 +5,10 @@ export declare const addMinutes: (date: Date, minutes: number) => Date;
5
5
  export declare const lastDayInMonth: (date: Date) => Date;
6
6
  export declare const dateDiffDays: (date1: Date, date2: Date) => number;
7
7
  export declare const CSharpToJs: (charpTicks: number) => Date;
8
+ /**
9
+ *
10
+ * @param minutes
11
+ * @param date default = now
12
+ * @returns
13
+ */
8
14
  export declare const dateTimeToNearestMinute: (minutes: number, date?: Date | undefined) => Date;
@@ -35,6 +35,12 @@ const CSharpToJs = (charpTicks) => {
35
35
  return tickDate;
36
36
  };
37
37
  exports.CSharpToJs = CSharpToJs;
38
+ /**
39
+ *
40
+ * @param minutes
41
+ * @param date default = now
42
+ * @returns
43
+ */
38
44
  const dateTimeToNearestMinute = (minutes, date) => {
39
45
  const coeff = 1000 * 60 * minutes;
40
46
  if (!date) {
@@ -8,6 +8,7 @@ const styled_components_1 = __importDefault(require("styled-components"));
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const SClose = styled_components_1.default.div `
10
10
  position: absolute;
11
+ z-index: 1;
11
12
  width: 32px;
12
13
  height: 32px;
13
14
  opacity: 0.3;
@@ -19,4 +19,13 @@ export interface ISearchDialog<T> {
19
19
  */
20
20
  getKeyF: (i: T) => string;
21
21
  }
22
- export declare const searchDialog: <T>(p: ISearchDialog<T>) => Promise<T | undefined>;
22
+ export declare type TSearchModalRes<T> = undefined | {
23
+ foundItem: T;
24
+ searchText: string;
25
+ };
26
+ /**
27
+ * opens a searchmodal programatically, and resolves to either undefined, or the selected item
28
+ * @param p
29
+ * @returns
30
+ */
31
+ export declare const searchDialog: <T>(p: ISearchDialog<T>) => Promise<TSearchModalRes<T>>;
@@ -44,6 +44,8 @@ const styled_components_1 = __importDefault(require("styled-components"));
44
44
  const react_dom_1 = __importDefault(require("react-dom"));
45
45
  const react_1 = __importStar(require("react"));
46
46
  const ModalStyled = (0, styled_components_1.default)(Modal_1.Modal) `
47
+ display: flex;
48
+ flex-flow: column;
47
49
  top: 10rem;
48
50
  @media ${media_1.bigScreen} {
49
51
  width: 50vw;
@@ -104,25 +106,35 @@ const SearchModal = ({ res, wrapper, placeholderText, closeText, renderItem, dis
104
106
  document.body.style.overflow = 'hidden';
105
107
  }
106
108
  }, []);
107
- const ret = (v) => {
109
+ const [searchText, setSearchText] = (0, react_1.useState)('');
110
+ const resWrap = (foundItem) => {
108
111
  try {
109
112
  document.body.style.overflow = originalStyle || '';
110
- res(v);
113
+ if (!foundItem) {
114
+ res(undefined);
115
+ }
116
+ else {
117
+ res({ foundItem, searchText });
118
+ }
111
119
  }
112
120
  finally {
113
121
  wrapper.remove();
114
122
  }
115
123
  };
116
- const [searchText, setSearchText] = (0, react_1.useState)('');
117
124
  const filteredItems = displayItems.filter((i) => willDisplayItem(searchText, i));
118
- return (react_1.default.createElement(ModalStyled, { position: "center", topPosition: "center", open: true, setOpen: () => ret(undefined), showCloseButton: false, closeOnClickOutside: true },
125
+ return (react_1.default.createElement(ModalStyled, { position: "center", topPosition: "center", open: true, setOpen: () => resWrap(undefined), showCloseButton: false, closeOnClickOutside: true },
119
126
  react_1.default.createElement(SearchBox, null,
120
127
  react_1.default.createElement(TextEdit_1.TextEdit, { placeholder: placeholderText, defaultValue: "", onSubmit: (v) => (0, debounce_1.debounce)(() => {
121
128
  setSearchText(v);
122
129
  }, { key: 'pagesearch', time: 200 }), defaultEditing: { focus: true }, singleLine: true, leftContent: react_1.default.createElement(Icon, null, MagnifyIconSvg), noGrow: true, allowUndo: false }),
123
- react_1.default.createElement(CloseButton, { onClick: () => ret(undefined) }, closeText)),
124
- react_1.default.createElement(Content, null, filteredItems.map((i) => (react_1.default.createElement(Row, { key: getKeyF(i), onClick: () => ret(i) }, renderItem(searchText, i)))))));
130
+ react_1.default.createElement(CloseButton, { onClick: () => resWrap(undefined) }, closeText)),
131
+ react_1.default.createElement(Content, null, filteredItems.map((i) => (react_1.default.createElement(Row, { key: getKeyF(i), onClick: () => resWrap(i) }, renderItem(searchText, i)))))));
125
132
  };
133
+ /**
134
+ * opens a searchmodal programatically, and resolves to either undefined, or the selected item
135
+ * @param p
136
+ * @returns
137
+ */
126
138
  const searchDialog = (p) => __awaiter(void 0, void 0, void 0, function* () {
127
139
  const placeholderText = p.placeholderText || '';
128
140
  const closeText = p.closeText || 'CLOSE';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ag-common",
3
- "version": "0.0.186",
3
+ "version": "0.0.189",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "author": "Andrei Gec <@andreigec> (https://gec.dev/)",