@cratis/arc.react.mvvm 18.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/Bindings.ts +18 -0
- package/IHandleParams.ts +14 -0
- package/IHandleProps.ts +14 -0
- package/IHandleQueryParams.ts +14 -0
- package/IViewModelDetached.ts +12 -0
- package/MVVMContext.tsx +27 -0
- package/MobxOptions.ts +20 -0
- package/README.md +65 -0
- package/WellKnownBindings.ts +11 -0
- package/browser/ILocalStorage.ts +11 -0
- package/browser/INavigation.ts +9 -0
- package/browser/Navigation.ts +29 -0
- package/browser/index.ts +6 -0
- package/dialogs/BusyIndicator.ts +24 -0
- package/dialogs/DialogMediator.tsx +51 -0
- package/dialogs/DialogMediatorHandler.ts +67 -0
- package/dialogs/DialogRegistration.ts +25 -0
- package/dialogs/Dialogs.ts +58 -0
- package/dialogs/IDialogMediatorHandler.ts +40 -0
- package/dialogs/IDialogs.ts +37 -0
- package/dialogs/index.ts +12 -0
- package/dialogs/useDialog.tsx +34 -0
- package/dist/cjs/Bindings.d.ts +4 -0
- package/dist/cjs/Bindings.d.ts.map +1 -0
- package/dist/cjs/Bindings.js +21 -0
- package/dist/cjs/Bindings.js.map +1 -0
- package/dist/cjs/IHandleParams.d.ts +4 -0
- package/dist/cjs/IHandleParams.d.ts.map +1 -0
- package/dist/cjs/IHandleProps.d.ts +4 -0
- package/dist/cjs/IHandleProps.d.ts.map +1 -0
- package/dist/cjs/IHandleQueryParams.d.ts +4 -0
- package/dist/cjs/IHandleQueryParams.d.ts.map +1 -0
- package/dist/cjs/IViewModelDetached.d.ts +4 -0
- package/dist/cjs/IViewModelDetached.d.ts.map +1 -0
- package/dist/cjs/MVVMContext.d.ts +9 -0
- package/dist/cjs/MVVMContext.d.ts.map +1 -0
- package/dist/cjs/MVVMContext.js +21 -0
- package/dist/cjs/MVVMContext.js.map +1 -0
- package/dist/cjs/MobxOptions.d.ts +12 -0
- package/dist/cjs/MobxOptions.d.ts.map +1 -0
- package/dist/cjs/WellKnownBindings.d.ts +6 -0
- package/dist/cjs/WellKnownBindings.d.ts.map +1 -0
- package/dist/cjs/WellKnownBindings.js +10 -0
- package/dist/cjs/WellKnownBindings.js.map +1 -0
- package/dist/cjs/browser/ILocalStorage.d.ts +9 -0
- package/dist/cjs/browser/ILocalStorage.d.ts.map +1 -0
- package/dist/cjs/browser/ILocalStorage.js +7 -0
- package/dist/cjs/browser/ILocalStorage.js.map +1 -0
- package/dist/cjs/browser/INavigation.d.ts +5 -0
- package/dist/cjs/browser/INavigation.d.ts.map +1 -0
- package/dist/cjs/browser/INavigation.js +7 -0
- package/dist/cjs/browser/INavigation.js.map +1 -0
- package/dist/cjs/browser/Navigation.d.ts +7 -0
- package/dist/cjs/browser/Navigation.d.ts.map +1 -0
- package/dist/cjs/browser/Navigation.js +25 -0
- package/dist/cjs/browser/Navigation.js.map +1 -0
- package/dist/cjs/browser/index.d.ts +4 -0
- package/dist/cjs/browser/index.d.ts.map +1 -0
- package/dist/cjs/browser/index.js +12 -0
- package/dist/cjs/browser/index.js.map +1 -0
- package/dist/cjs/dialogs/BusyIndicator.d.ts +7 -0
- package/dist/cjs/dialogs/BusyIndicator.d.ts.map +1 -0
- package/dist/cjs/dialogs/BusyIndicator.js +16 -0
- package/dist/cjs/dialogs/BusyIndicator.js.map +1 -0
- package/dist/cjs/dialogs/DialogMediator.d.ts +11 -0
- package/dist/cjs/dialogs/DialogMediator.d.ts.map +1 -0
- package/dist/cjs/dialogs/DialogMediator.js +17 -0
- package/dist/cjs/dialogs/DialogMediator.js.map +1 -0
- package/dist/cjs/dialogs/DialogMediatorHandler.d.ts +14 -0
- package/dist/cjs/dialogs/DialogMediatorHandler.d.ts.map +1 -0
- package/dist/cjs/dialogs/DialogMediatorHandler.js +46 -0
- package/dist/cjs/dialogs/DialogMediatorHandler.js.map +1 -0
- package/dist/cjs/dialogs/DialogRegistration.d.ts +8 -0
- package/dist/cjs/dialogs/DialogRegistration.d.ts.map +1 -0
- package/dist/cjs/dialogs/DialogRegistration.js +13 -0
- package/dist/cjs/dialogs/DialogRegistration.js.map +1 -0
- package/dist/cjs/dialogs/Dialogs.d.ts +13 -0
- package/dist/cjs/dialogs/Dialogs.d.ts.map +1 -0
- package/dist/cjs/dialogs/Dialogs.js +40 -0
- package/dist/cjs/dialogs/Dialogs.js.map +1 -0
- package/dist/cjs/dialogs/IDialogMediatorHandler.d.ts +10 -0
- package/dist/cjs/dialogs/IDialogMediatorHandler.d.ts.map +1 -0
- package/dist/cjs/dialogs/IDialogMediatorHandler.js +7 -0
- package/dist/cjs/dialogs/IDialogMediatorHandler.js.map +1 -0
- package/dist/cjs/dialogs/IDialogs.d.ts +9 -0
- package/dist/cjs/dialogs/IDialogs.d.ts.map +1 -0
- package/dist/cjs/dialogs/IDialogs.js +7 -0
- package/dist/cjs/dialogs/IDialogs.js.map +1 -0
- package/dist/cjs/dialogs/index.d.ts +10 -0
- package/dist/cjs/dialogs/index.d.ts.map +1 -0
- package/dist/cjs/dialogs/index.js +24 -0
- package/dist/cjs/dialogs/index.js.map +1 -0
- package/dist/cjs/dialogs/useDialog.d.ts +5 -0
- package/dist/cjs/dialogs/useDialog.d.ts.map +1 -0
- package/dist/cjs/dialogs/useDialog.js +23 -0
- package/dist/cjs/dialogs/useDialog.js.map +1 -0
- package/dist/cjs/index.d.ts +14 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/messaging/IMessenger.d.ts +8 -0
- package/dist/cjs/messaging/IMessenger.d.ts.map +1 -0
- package/dist/cjs/messaging/IMessenger.js +7 -0
- package/dist/cjs/messaging/IMessenger.js.map +1 -0
- package/dist/cjs/messaging/Message.d.ts +7 -0
- package/dist/cjs/messaging/Message.d.ts.map +1 -0
- package/dist/cjs/messaging/Message.js +13 -0
- package/dist/cjs/messaging/Message.js.map +1 -0
- package/dist/cjs/messaging/Messenger.d.ts +9 -0
- package/dist/cjs/messaging/Messenger.d.ts.map +1 -0
- package/dist/cjs/messaging/Messenger.js +20 -0
- package/dist/cjs/messaging/Messenger.js.map +1 -0
- package/dist/cjs/messaging/index.d.ts +4 -0
- package/dist/cjs/messaging/index.d.ts.map +1 -0
- package/dist/cjs/messaging/index.js +12 -0
- package/dist/cjs/messaging/index.js.map +1 -0
- package/dist/cjs/withViewModel.d.ts +8 -0
- package/dist/cjs/withViewModel.d.ts.map +1 -0
- package/dist/cjs/withViewModel.js +125 -0
- package/dist/cjs/withViewModel.js.map +1 -0
- package/dist/esm/Bindings.d.ts +4 -0
- package/dist/esm/Bindings.d.ts.map +1 -0
- package/dist/esm/Bindings.js +19 -0
- package/dist/esm/Bindings.js.map +1 -0
- package/dist/esm/IHandleParams.d.ts +4 -0
- package/dist/esm/IHandleParams.d.ts.map +1 -0
- package/dist/esm/IHandleParams.js +2 -0
- package/dist/esm/IHandleParams.js.map +1 -0
- package/dist/esm/IHandleProps.d.ts +4 -0
- package/dist/esm/IHandleProps.d.ts.map +1 -0
- package/dist/esm/IHandleProps.js +2 -0
- package/dist/esm/IHandleProps.js.map +1 -0
- package/dist/esm/IHandleQueryParams.d.ts +4 -0
- package/dist/esm/IHandleQueryParams.d.ts.map +1 -0
- package/dist/esm/IHandleQueryParams.js +2 -0
- package/dist/esm/IHandleQueryParams.js.map +1 -0
- package/dist/esm/IViewModelDetached.d.ts +4 -0
- package/dist/esm/IViewModelDetached.d.ts.map +1 -0
- package/dist/esm/IViewModelDetached.js +2 -0
- package/dist/esm/IViewModelDetached.js.map +1 -0
- package/dist/esm/MVVMContext.d.ts +9 -0
- package/dist/esm/MVVMContext.d.ts.map +1 -0
- package/dist/esm/MVVMContext.js +18 -0
- package/dist/esm/MVVMContext.js.map +1 -0
- package/dist/esm/MobxOptions.d.ts +12 -0
- package/dist/esm/MobxOptions.d.ts.map +1 -0
- package/dist/esm/MobxOptions.js +2 -0
- package/dist/esm/MobxOptions.js.map +1 -0
- package/dist/esm/WellKnownBindings.d.ts +6 -0
- package/dist/esm/WellKnownBindings.d.ts.map +1 -0
- package/dist/esm/WellKnownBindings.js +8 -0
- package/dist/esm/WellKnownBindings.js.map +1 -0
- package/dist/esm/browser/ILocalStorage.d.ts +9 -0
- package/dist/esm/browser/ILocalStorage.d.ts.map +1 -0
- package/dist/esm/browser/ILocalStorage.js +5 -0
- package/dist/esm/browser/ILocalStorage.js.map +1 -0
- package/dist/esm/browser/INavigation.d.ts +5 -0
- package/dist/esm/browser/INavigation.d.ts.map +1 -0
- package/dist/esm/browser/INavigation.js +5 -0
- package/dist/esm/browser/INavigation.js.map +1 -0
- package/dist/esm/browser/Navigation.d.ts +7 -0
- package/dist/esm/browser/Navigation.d.ts.map +1 -0
- package/dist/esm/browser/Navigation.js +23 -0
- package/dist/esm/browser/Navigation.js.map +1 -0
- package/dist/esm/browser/index.d.ts +4 -0
- package/dist/esm/browser/index.d.ts.map +1 -0
- package/dist/esm/browser/index.js +4 -0
- package/dist/esm/browser/index.js.map +1 -0
- package/dist/esm/dialogs/BusyIndicator.d.ts +7 -0
- package/dist/esm/dialogs/BusyIndicator.d.ts.map +1 -0
- package/dist/esm/dialogs/BusyIndicator.js +14 -0
- package/dist/esm/dialogs/BusyIndicator.js.map +1 -0
- package/dist/esm/dialogs/DialogMediator.d.ts +11 -0
- package/dist/esm/dialogs/DialogMediator.d.ts.map +1 -0
- package/dist/esm/dialogs/DialogMediator.js +13 -0
- package/dist/esm/dialogs/DialogMediator.js.map +1 -0
- package/dist/esm/dialogs/DialogMediatorHandler.d.ts +14 -0
- package/dist/esm/dialogs/DialogMediatorHandler.d.ts.map +1 -0
- package/dist/esm/dialogs/DialogMediatorHandler.js +44 -0
- package/dist/esm/dialogs/DialogMediatorHandler.js.map +1 -0
- package/dist/esm/dialogs/DialogRegistration.d.ts +8 -0
- package/dist/esm/dialogs/DialogRegistration.d.ts.map +1 -0
- package/dist/esm/dialogs/DialogRegistration.js +11 -0
- package/dist/esm/dialogs/DialogRegistration.js.map +1 -0
- package/dist/esm/dialogs/Dialogs.d.ts +13 -0
- package/dist/esm/dialogs/Dialogs.d.ts.map +1 -0
- package/dist/esm/dialogs/Dialogs.js +38 -0
- package/dist/esm/dialogs/Dialogs.js.map +1 -0
- package/dist/esm/dialogs/IDialogMediatorHandler.d.ts +10 -0
- package/dist/esm/dialogs/IDialogMediatorHandler.d.ts.map +1 -0
- package/dist/esm/dialogs/IDialogMediatorHandler.js +5 -0
- package/dist/esm/dialogs/IDialogMediatorHandler.js.map +1 -0
- package/dist/esm/dialogs/IDialogs.d.ts +9 -0
- package/dist/esm/dialogs/IDialogs.d.ts.map +1 -0
- package/dist/esm/dialogs/IDialogs.js +5 -0
- package/dist/esm/dialogs/IDialogs.js.map +1 -0
- package/dist/esm/dialogs/index.d.ts +10 -0
- package/dist/esm/dialogs/index.d.ts.map +1 -0
- package/dist/esm/dialogs/index.js +9 -0
- package/dist/esm/dialogs/index.js.map +1 -0
- package/dist/esm/dialogs/useDialog.d.ts +5 -0
- package/dist/esm/dialogs/useDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/useDialog.js +21 -0
- package/dist/esm/dialogs/useDialog.js.map +1 -0
- package/dist/esm/index.d.ts +14 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/messaging/IMessenger.d.ts +8 -0
- package/dist/esm/messaging/IMessenger.d.ts.map +1 -0
- package/dist/esm/messaging/IMessenger.js +5 -0
- package/dist/esm/messaging/IMessenger.js.map +1 -0
- package/dist/esm/messaging/Message.d.ts +7 -0
- package/dist/esm/messaging/Message.d.ts.map +1 -0
- package/dist/esm/messaging/Message.js +11 -0
- package/dist/esm/messaging/Message.js.map +1 -0
- package/dist/esm/messaging/Messenger.d.ts +9 -0
- package/dist/esm/messaging/Messenger.d.ts.map +1 -0
- package/dist/esm/messaging/Messenger.js +18 -0
- package/dist/esm/messaging/Messenger.js.map +1 -0
- package/dist/esm/messaging/index.d.ts +4 -0
- package/dist/esm/messaging/index.d.ts.map +1 -0
- package/dist/esm/messaging/index.js +4 -0
- package/dist/esm/messaging/index.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/withViewModel.d.ts +8 -0
- package/dist/esm/withViewModel.d.ts.map +1 -0
- package/dist/esm/withViewModel.js +123 -0
- package/dist/esm/withViewModel.js.map +1 -0
- package/global.d.ts +11 -0
- package/index.ts +21 -0
- package/messaging/IMessenger.ts +28 -0
- package/messaging/Message.ts +18 -0
- package/messaging/Messenger.ts +26 -0
- package/messaging/for_Messenger/when_publishing_message_with_subscriber.ts +27 -0
- package/messaging/index.ts +6 -0
- package/package.json +71 -0
- package/withViewModel.tsx +181 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WellKnownBindings.js","sources":["../../WellKnownBindings.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Well-known IoC binding constants.\n */\nexport const WellKnownBindings = {\n queryParams: 'queryParams',\n params: 'params',\n props: 'props'\n};\n"],"names":[],"mappings":"AAMO,MAAM,iBAAiB,GAAG;AAC7B,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,KAAK,EAAE;;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare abstract class ILocalStorage implements Storage {
|
|
2
|
+
abstract length: number;
|
|
3
|
+
abstract clear(): void;
|
|
4
|
+
abstract getItem(key: string): string | null;
|
|
5
|
+
abstract key(index: number): string | null;
|
|
6
|
+
abstract removeItem(key: string): void;
|
|
7
|
+
abstract setItem(key: string, value: string): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ILocalStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ILocalStorage.d.ts","sourceRoot":"","sources":["../../../browser/ILocalStorage.ts"],"names":[],"mappings":"AAGA,8BAAsB,aAAc,YAAW,OAAO;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,IAAI,IAAI;IACtB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAC5C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAC1C,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CACrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ILocalStorage.js","sources":["../../../browser/ILocalStorage.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nexport abstract class ILocalStorage implements Storage {\n abstract length: number;\n abstract clear(): void;\n abstract getItem(key: string): string | null;\n abstract key(index: number): string | null;\n abstract removeItem(key: string): void;\n abstract setItem(key: string, value: string): void;\n}\n"],"names":[],"mappings":"MAGsB,aAAa,CAAA;AAOlC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"INavigation.d.ts","sourceRoot":"","sources":["../../../browser/INavigation.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5E,8BAAsB,WAAW;IAC7B,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;CAC5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"INavigation.js","sources":["../../../browser/INavigation.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nexport type UrlChangedCallback = (url: string, previousUrl: string) => void;\n\nexport abstract class INavigation {\n abstract onUrlChanged(callback: UrlChangedCallback): void;\n}\n\n"],"names":[],"mappings":"MAKsB,WAAW,CAAA;AAEhC;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { INavigation, UrlChangedCallback } from './INavigation';
|
|
2
|
+
export declare class Navigation implements INavigation {
|
|
3
|
+
private readonly _callbacks;
|
|
4
|
+
constructor();
|
|
5
|
+
onUrlChanged(callback: UrlChangedCallback): void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=Navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../browser/Navigation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,qBAAa,UAAW,YAAW,WAAW;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;;IAmBvD,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;CAGnD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class Navigation {
|
|
2
|
+
_callbacks = [];
|
|
3
|
+
constructor() {
|
|
4
|
+
const previousUrl = location.href;
|
|
5
|
+
const observer = new MutationObserver(() => {
|
|
6
|
+
if (location.href !== previousUrl) {
|
|
7
|
+
for (const callback of this._callbacks) {
|
|
8
|
+
callback(location.href, previousUrl);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
observer.observe(document.body, {
|
|
13
|
+
childList: true,
|
|
14
|
+
subtree: true
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
onUrlChanged(callback) {
|
|
18
|
+
this._callbacks.push(callback);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { Navigation };
|
|
23
|
+
//# sourceMappingURL=Navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Navigation.js","sources":["../../../browser/Navigation.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { INavigation, UrlChangedCallback } from './INavigation';\n\nexport class Navigation implements INavigation {\n private readonly _callbacks: UrlChangedCallback[] = [];\n\n constructor() {\n const previousUrl = location.href;\n const observer = new MutationObserver(() => {\n if (location.href !== previousUrl) {\n for( const callback of this._callbacks ) {\n callback(location.href, previousUrl);\n }\n }\n });\n observer.observe(document.body,\n {\n childList: true,\n subtree: true\n }\n );\n }\n\n onUrlChanged(callback: UrlChangedCallback): void {\n this._callbacks.push(callback);\n }\n}\n"],"names":[],"mappings":"MAKa,UAAU,CAAA;IACF,UAAU,GAAyB,EAAE;AAEtD,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,MAAK;AACvC,YAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AAC/B,gBAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAG;AACrC,oBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;gBACxC;YACJ;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAC1B;AACI,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE;AACZ,SAAA,CACJ;IACL;AAEA,IAAA,YAAY,CAAC,QAA4B,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClC;AACH;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../browser/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BusyIndicator.d.ts","sourceRoot":"","sources":["../../../dialogs/BusyIndicator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAgB,MAAM,2BAA2B,CAAC;AAKtE,qBAAa,aAAa;IAMV,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC;IAM5D,KAAK;CAGR"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DialogResult } from '@cratis/arc.react/dialogs';
|
|
2
|
+
|
|
3
|
+
class BusyIndicator {
|
|
4
|
+
_closeDialog;
|
|
5
|
+
constructor(_closeDialog) {
|
|
6
|
+
this._closeDialog = _closeDialog;
|
|
7
|
+
}
|
|
8
|
+
close() {
|
|
9
|
+
this._closeDialog(DialogResult.None);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { BusyIndicator };
|
|
14
|
+
//# sourceMappingURL=BusyIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BusyIndicator.js","sources":["../../../dialogs/BusyIndicator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { CloseDialog, DialogResult } from '@cratis/arc.react/dialogs';\n\n/**\n * Represents a busy indicator dialog.\n */\nexport class BusyIndicator {\n\n /**\n * Initializes a new instance of {@link BusyIndicator}.\n * @param {CloseDialog<void>} _closeDialog The dialog resolver to use for closing the dialog.\n */\n constructor(private readonly _closeDialog: CloseDialog<void>) {\n }\n\n /**\n * Close the busy indicator dialog.\n */\n close() {\n this._closeDialog(DialogResult.None);\n }\n}\n"],"names":[],"mappings":";;MAQa,aAAa,CAAA;AAMO,IAAA,YAAA;AAA7B,IAAA,WAAA,CAA6B,YAA+B,EAAA;QAA/B,IAAA,CAAA,YAAY,GAAZ,YAAY;IACzC;IAKA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC;IACxC;AACH;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IDialogMediatorHandler } from './IDialogMediatorHandler';
|
|
3
|
+
export declare const DialogMediatorContext: React.Context<IDialogMediatorHandler>;
|
|
4
|
+
export interface DialogMediatorProps {
|
|
5
|
+
children?: JSX.Element | JSX.Element[];
|
|
6
|
+
handler: IDialogMediatorHandler;
|
|
7
|
+
parentHandler?: IDialogMediatorHandler;
|
|
8
|
+
}
|
|
9
|
+
export declare const useDialogMediator: () => IDialogMediatorHandler;
|
|
10
|
+
export declare const DialogMediator: (props: DialogMediatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=DialogMediator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogMediator.d.ts","sourceRoot":"","sources":["../../../dialogs/DialogMediator.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKlE,eAAO,MAAM,qBAAqB,uCAA0D,CAAC;AAK7F,MAAM,WAAW,mBAAmB;IAIhC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAKvC,OAAO,EAAE,sBAAsB,CAAC;IAKhC,aAAa,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAMD,eAAO,MAAM,iBAAiB,8BAE7B,CAAC;AAOF,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,4CAMxD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
const DialogMediatorContext = React.createContext(undefined);
|
|
5
|
+
const useDialogMediator = () => {
|
|
6
|
+
return React.useContext(DialogMediatorContext);
|
|
7
|
+
};
|
|
8
|
+
const DialogMediator = (props) => {
|
|
9
|
+
return (jsx(DialogMediatorContext.Provider, { value: props.handler, children: props.children }));
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { DialogMediator, DialogMediatorContext, useDialogMediator };
|
|
13
|
+
//# sourceMappingURL=DialogMediator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogMediator.js","sources":["../../../dialogs/DialogMediator.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport React from 'react';\nimport { IDialogMediatorHandler } from './IDialogMediatorHandler';\n\n/**\n * Context for the dialog mediator.\n */\nexport const DialogMediatorContext = React.createContext<IDialogMediatorHandler>(undefined!);\n\n/**\n * Props for the dialog mediator.\n */\nexport interface DialogMediatorProps {\n /**\n * Children to provide the dialog mediator to.\n */\n children?: JSX.Element | JSX.Element[];\n\n /**\n * The dialog mediator context.\n */\n handler: IDialogMediatorHandler;\n\n /**\n * Parent handler, if any.\n */\n parentHandler?: IDialogMediatorHandler;\n}\n\n/**\n * Use the dialog mediator.\n * @returns The dialog mediator.\n */\nexport const useDialogMediator = () => {\n return React.useContext(DialogMediatorContext);\n};\n\n/**\n * Provide the dialog mediator to the children.\n * @param {DialogMediatorProps} props Props for the dialog mediator.\n * @returns Provider for the dialog mediator.\n */\nexport const DialogMediator = (props: DialogMediatorProps) => {\n return (\n <DialogMediatorContext.Provider value={props.handler}>\n {props.children}\n </DialogMediatorContext.Provider>\n );\n};\n"],"names":["_jsx"],"mappings":";;;AASO,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAyB,SAAU;AA0BpF,MAAM,iBAAiB,GAAG,MAAK;AAClC,IAAA,OAAO,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC;AAClD;AAOO,MAAM,cAAc,GAAG,CAAC,KAA0B,KAAI;AACzD,IAAA,QACIA,GAAA,CAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAA,QAAA,EAC/C,KAAK,CAAC,QAAQ,EAAA,CACc;AAEzC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Constructor } from '@cratis/fundamentals';
|
|
2
|
+
import { CloseDialog, DialogResponse } from '@cratis/arc.react/dialogs';
|
|
3
|
+
import { IDialogMediatorHandler } from './IDialogMediatorHandler';
|
|
4
|
+
import { DialogRegistration, DialogRequest } from './DialogRegistration';
|
|
5
|
+
export declare class DialogMediatorHandler extends IDialogMediatorHandler {
|
|
6
|
+
readonly _parent: IDialogMediatorHandler | null;
|
|
7
|
+
private _registrations;
|
|
8
|
+
constructor(_parent?: IDialogMediatorHandler | null);
|
|
9
|
+
subscribe<TRequest extends object, TResponse>(requestType: Constructor<TRequest>, requester: DialogRequest<TRequest, TResponse>, closeDialog: CloseDialog<TResponse>): void;
|
|
10
|
+
hasSubscriber<TRequest extends object>(requestType: Constructor<TRequest>): boolean;
|
|
11
|
+
show<TRequest extends object, TResponse>(request: TRequest): Promise<DialogResponse<TResponse>>;
|
|
12
|
+
getRegistration<TRequest extends object, TResponse>(requestType: Constructor<TRequest>): DialogRegistration<TRequest, TResponse>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=DialogMediatorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogMediatorHandler.d.ts","sourceRoot":"","sources":["../../../dialogs/DialogMediatorHandler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKzE,qBAAa,qBAAsB,SAAQ,sBAAsB;IAOjD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAN3D,OAAO,CAAC,cAAc,CAA2E;gBAM5E,OAAO,GAAE,sBAAsB,GAAG,IAAW;IAKlE,SAAS,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI;IAO3K,aAAa,CAAC,QAAQ,SAAS,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,OAAO;IAKnF,IAAI,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAoB/F,eAAe,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;CAWnI"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { IDialogMediatorHandler } from './IDialogMediatorHandler.js';
|
|
2
|
+
import { DialogRegistration } from './DialogRegistration.js';
|
|
3
|
+
|
|
4
|
+
class DialogMediatorHandler extends IDialogMediatorHandler {
|
|
5
|
+
_parent;
|
|
6
|
+
_registrations = new WeakMap();
|
|
7
|
+
constructor(_parent = null) {
|
|
8
|
+
super();
|
|
9
|
+
this._parent = _parent;
|
|
10
|
+
}
|
|
11
|
+
subscribe(requestType, requester, closeDialog) {
|
|
12
|
+
this._registrations.set(requestType, new DialogRegistration(requester, closeDialog));
|
|
13
|
+
}
|
|
14
|
+
hasSubscriber(requestType) {
|
|
15
|
+
return this._registrations.has(requestType);
|
|
16
|
+
}
|
|
17
|
+
show(request) {
|
|
18
|
+
if (!this.hasSubscriber(request.constructor)) {
|
|
19
|
+
if (this._parent) {
|
|
20
|
+
return this._parent.show(request);
|
|
21
|
+
}
|
|
22
|
+
return Promise.reject('No registration found for request');
|
|
23
|
+
}
|
|
24
|
+
const promise = new Promise((resolve) => {
|
|
25
|
+
const registration = this._registrations.get(request.constructor);
|
|
26
|
+
registration.requester(request, (result, response) => {
|
|
27
|
+
resolve([result, response]);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return promise;
|
|
31
|
+
}
|
|
32
|
+
getRegistration(requestType) {
|
|
33
|
+
if (!this.hasSubscriber(requestType)) {
|
|
34
|
+
if (this._parent) {
|
|
35
|
+
return this._parent.getRegistration(requestType);
|
|
36
|
+
}
|
|
37
|
+
throw new Error('No registration found for request');
|
|
38
|
+
}
|
|
39
|
+
return this._registrations.get(requestType);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { DialogMediatorHandler };
|
|
44
|
+
//# sourceMappingURL=DialogMediatorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogMediatorHandler.js","sources":["../../../dialogs/DialogMediatorHandler.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from '@cratis/fundamentals';\nimport { CloseDialog, DialogResponse } from '@cratis/arc.react/dialogs';\nimport { IDialogMediatorHandler } from './IDialogMediatorHandler';\nimport { DialogRegistration, DialogRequest } from './DialogRegistration';\n\n/**\n * Represents an implementation of {@link IDialogMediatorHandler}\n */\nexport class DialogMediatorHandler extends IDialogMediatorHandler {\n private _registrations: WeakMap<Constructor, DialogRegistration<object, object>> = new WeakMap();\n\n /**\n * Initializes a new instance of {@link DialogMediatorHandler}\n * @param {IDialogMediatorHandler} _parent Optional parent handler.\n */\n constructor(readonly _parent: IDialogMediatorHandler | null = null) {\n super();\n }\n\n /** @inheritdoc */\n subscribe<TRequest extends object, TResponse>(requestType: Constructor<TRequest>, requester: DialogRequest<TRequest, TResponse>, closeDialog: CloseDialog<TResponse>): void {\n this._registrations.set(\n requestType,\n new DialogRegistration<TRequest, TResponse>(requester, closeDialog) as unknown as DialogRegistration<object, object>);\n }\n\n /** @inheritdoc */\n hasSubscriber<TRequest extends object>(requestType: Constructor<TRequest>): boolean {\n return this._registrations.has(requestType);\n }\n\n /** @inheritdoc */\n show<TRequest extends object, TResponse>(request: TRequest): Promise<DialogResponse<TResponse>> {\n if (!this.hasSubscriber(request.constructor as Constructor)) {\n if (this._parent) {\n return this._parent.show(request);\n }\n\n return Promise.reject('No registration found for request');\n }\n\n const promise = new Promise<DialogResponse<TResponse>>((resolve) => {\n const registration = this._registrations.get(request.constructor as Constructor)!;\n registration.requester(request, (result, response) => {\n resolve([result, response as TResponse]);\n });\n });\n\n return promise;\n }\n\n /** @inheritdoc */\n getRegistration<TRequest extends object, TResponse>(requestType: Constructor<TRequest>): DialogRegistration<TRequest, TResponse> {\n if (!this.hasSubscriber(requestType)) {\n if (this._parent) {\n return this._parent.getRegistration(requestType);\n }\n\n throw new Error('No registration found for request');\n }\n\n return this._registrations.get(requestType)! as unknown as DialogRegistration<TRequest, TResponse>;\n }\n}\n"],"names":[],"mappings":";;;AAWM,MAAO,qBAAsB,SAAQ,sBAAsB,CAAA;AAOxC,IAAA,OAAA;AANb,IAAA,cAAc,GAA6D,IAAI,OAAO,EAAE;AAMhG,IAAA,WAAA,CAAqB,UAAyC,IAAI,EAAA;AAC9D,QAAA,KAAK,EAAE;QADU,IAAA,CAAA,OAAO,GAAP,OAAO;IAE5B;AAGA,IAAA,SAAS,CAAqC,WAAkC,EAAE,SAA6C,EAAE,WAAmC,EAAA;AAChK,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,WAAW,EACX,IAAI,kBAAkB,CAAsB,SAAS,EAAE,WAAW,CAAkD,CAAC;IAC7H;AAGA,IAAA,aAAa,CAA0B,WAAkC,EAAA;QACrE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;IAC/C;AAGA,IAAA,IAAI,CAAqC,OAAiB,EAAA;QACtD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAA0B,CAAC,EAAE;AACzD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC;AAEA,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,mCAAmC,CAAC;QAC9D;QAEA,MAAM,OAAO,GAAG,IAAI,OAAO,CAA4B,CAAC,OAAO,KAAI;AAC/D,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,WAA0B,CAAE;YACjF,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAI;AACjD,gBAAA,OAAO,CAAC,CAAC,MAAM,EAAE,QAAqB,CAAC,CAAC;AAC5C,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,OAAO;IAClB;AAGA,IAAA,eAAe,CAAqC,WAAkC,EAAA;QAClF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC;YACpD;AAEA,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;QACxD;QAEA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAwD;IACtG;AACH;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CloseDialog } from '@cratis/arc.react/dialogs';
|
|
2
|
+
export type DialogRequest<TRequest extends object, TResponse> = (request: TRequest, closeDialog: CloseDialog<TResponse>) => void;
|
|
3
|
+
export declare class DialogRegistration<TRequest extends object, TResponse> {
|
|
4
|
+
readonly requester: DialogRequest<TRequest, TResponse>;
|
|
5
|
+
readonly resolver: CloseDialog<TResponse>;
|
|
6
|
+
constructor(requester: DialogRequest<TRequest, TResponse>, resolver: CloseDialog<TResponse>);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=DialogRegistration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogRegistration.d.ts","sourceRoot":"","sources":["../../../dialogs/DialogRegistration.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAKxD,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AAKjI,qBAAa,kBAAkB,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS;IAQ1D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC;gBADhC,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC7C,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC;CAEhD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogRegistration.js","sources":["../../../dialogs/DialogRegistration.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { CloseDialog } from '@cratis/arc.react/dialogs';\n\n/**\n * Represents the delegate for a dialog request.\n */\nexport type DialogRequest<TRequest extends object, TResponse> = (request: TRequest, closeDialog: CloseDialog<TResponse>) => void;\n\n/**\n * Represents the registration of a dialog.\n */\nexport class DialogRegistration<TRequest extends object, TResponse> {\n\n /**\n * Initializes a new instance of {@link DialogRegistration}.\n * @param requester The requester for the dialog.\n * @param resolver The resolver for the dialog.\n */\n constructor(\n readonly requester: DialogRequest<TRequest, TResponse>,\n readonly resolver: CloseDialog<TResponse>) {\n } \n}\n"],"names":[],"mappings":"MAaa,kBAAkB,CAAA;AAQd,IAAA,SAAA;AACA,IAAA,QAAA;IAFb,WAAA,CACa,SAA6C,EAC7C,QAAgC,EAAA;QADhC,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACrB;AACH;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DialogResponse, DialogResult, IDialogComponents } from '@cratis/arc.react/dialogs';
|
|
2
|
+
import { DialogButtons } from '@cratis/arc.react/dialogs/DialogButtons';
|
|
3
|
+
import { IDialogs } from './IDialogs';
|
|
4
|
+
import { BusyIndicator } from './BusyIndicator';
|
|
5
|
+
import { IDialogMediatorHandler } from './IDialogMediatorHandler';
|
|
6
|
+
export declare class Dialogs extends IDialogs {
|
|
7
|
+
private readonly _dialogMediatorHandler;
|
|
8
|
+
constructor(_dialogMediatorHandler: IDialogMediatorHandler, dialogComponents: IDialogComponents);
|
|
9
|
+
show<TRequest extends object, TResponse = object>(request: TRequest): Promise<DialogResponse<TResponse>>;
|
|
10
|
+
showConfirmation(title: string, message: string, buttons: DialogButtons): Promise<DialogResult>;
|
|
11
|
+
showBusyIndicator(title: string, message: string): BusyIndicator;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Dialogs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialogs.d.ts","sourceRoot":"","sources":["../../../dialogs/Dialogs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAsE,MAAM,2BAA2B,CAAC;AAChK,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKlE,qBAAa,OAAQ,SAAQ,QAAQ;IAM7B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAAtB,sBAAsB,EAAE,sBAAsB,EAC/D,gBAAgB,EAAE,iBAAiB;IAqBvC,IAAI,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAKlG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa;CAMnE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ConfirmationDialogRequest, BusyIndicatorDialogRequest, DialogResult } from '@cratis/arc.react/dialogs';
|
|
2
|
+
import { IDialogs } from './IDialogs.js';
|
|
3
|
+
import { BusyIndicator } from './BusyIndicator.js';
|
|
4
|
+
|
|
5
|
+
class Dialogs extends IDialogs {
|
|
6
|
+
_dialogMediatorHandler;
|
|
7
|
+
constructor(_dialogMediatorHandler, dialogComponents) {
|
|
8
|
+
super();
|
|
9
|
+
this._dialogMediatorHandler = _dialogMediatorHandler;
|
|
10
|
+
_dialogMediatorHandler.subscribe(ConfirmationDialogRequest, async (request, resolver) => {
|
|
11
|
+
const [result] = await dialogComponents.showConfirmation(request);
|
|
12
|
+
resolver(result);
|
|
13
|
+
}, () => { });
|
|
14
|
+
let busyIndicatorResolver = undefined;
|
|
15
|
+
_dialogMediatorHandler.subscribe(BusyIndicatorDialogRequest, (request, resolver) => {
|
|
16
|
+
busyIndicatorResolver = resolver;
|
|
17
|
+
return dialogComponents.showBusyIndicator(request);
|
|
18
|
+
}, () => {
|
|
19
|
+
busyIndicatorResolver?.(DialogResult.Cancelled, undefined);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
show(request) {
|
|
23
|
+
return this._dialogMediatorHandler.show(request);
|
|
24
|
+
}
|
|
25
|
+
async showConfirmation(title, message, buttons) {
|
|
26
|
+
const [result] = await this.show(new ConfirmationDialogRequest(title, message, buttons));
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
showBusyIndicator(title, message) {
|
|
30
|
+
this.show(new BusyIndicatorDialogRequest(title, message));
|
|
31
|
+
const registration = this._dialogMediatorHandler.getRegistration(BusyIndicatorDialogRequest);
|
|
32
|
+
const busyIndicator = new BusyIndicator(registration.resolver);
|
|
33
|
+
return busyIndicator;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { Dialogs };
|
|
38
|
+
//# sourceMappingURL=Dialogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialogs.js","sources":["../../../dialogs/Dialogs.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogResponse, DialogResult, IDialogComponents, ConfirmationDialogRequest, BusyIndicatorDialogRequest, CloseDialog } from '@cratis/arc.react/dialogs';\nimport { DialogButtons } from '@cratis/arc.react/dialogs/DialogButtons';\nimport { IDialogs } from './IDialogs';\nimport { BusyIndicator } from './BusyIndicator';\nimport { IDialogMediatorHandler } from './IDialogMediatorHandler';\n\n/**\n * Represents an implementation of {@link IDialogs}.\n */\nexport class Dialogs extends IDialogs {\n\n /**\n * Initializes a new instance of the {@link Dialogs} class.\n */\n constructor(\n private readonly _dialogMediatorHandler: IDialogMediatorHandler,\n dialogComponents: IDialogComponents) {\n super();\n\n /* eslint-disable @typescript-eslint/no-empty-function */\n _dialogMediatorHandler.subscribe(ConfirmationDialogRequest, async (request, resolver) => {\n const [result] = await dialogComponents.showConfirmation(request as ConfirmationDialogRequest);\n resolver(result);\n }, () => { });\n /* eslint-enable @typescript-eslint/no-empty-function */\n\n let busyIndicatorResolver: CloseDialog<void> | undefined = undefined;\n\n _dialogMediatorHandler.subscribe(BusyIndicatorDialogRequest, (request, resolver) => {\n busyIndicatorResolver = resolver;\n return dialogComponents.showBusyIndicator(request as BusyIndicatorDialogRequest);\n }, () => { \n busyIndicatorResolver?.(DialogResult.Cancelled, undefined);\n });\n }\n\n /** @inheritdoc */\n show<TRequest extends object, TResponse = object>(request: TRequest): Promise<DialogResponse<TResponse>> {\n return this._dialogMediatorHandler.show<TRequest, TResponse>(request);\n }\n\n /** @inheritdoc */\n async showConfirmation(title: string, message: string, buttons: DialogButtons): Promise<DialogResult> {\n const [result] = await this.show<ConfirmationDialogRequest>(new ConfirmationDialogRequest(title, message, buttons));\n return result;\n }\n\n /** @inheritdoc */\n showBusyIndicator(title: string, message: string): BusyIndicator {\n this.show<BusyIndicatorDialogRequest, void>(new BusyIndicatorDialogRequest(title, message));\n const registration = this._dialogMediatorHandler.getRegistration<BusyIndicatorDialogRequest, void>(BusyIndicatorDialogRequest);\n const busyIndicator = new BusyIndicator(registration.resolver);\n return busyIndicator;\n }\n}\n"],"names":[],"mappings":";;;;AAYM,MAAO,OAAQ,SAAQ,QAAQ,CAAA;AAMZ,IAAA,sBAAA;IADrB,WAAA,CACqB,sBAA8C,EAC/D,gBAAmC,EAAA;AACnC,QAAA,KAAK,EAAE;QAFU,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QAKvC,sBAAsB,CAAC,SAAS,CAAC,yBAAyB,EAAE,OAAO,OAAO,EAAE,QAAQ,KAAI;YACpF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,OAAoC,CAAC;YAC9F,QAAQ,CAAC,MAAM,CAAC;AACpB,QAAA,CAAC,EAAE,MAAK,EAAG,CAAC,CAAC;QAGb,IAAI,qBAAqB,GAAkC,SAAS;QAEpE,sBAAsB,CAAC,SAAS,CAAC,0BAA0B,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAI;YAC/E,qBAAqB,GAAG,QAAQ;AAChC,YAAA,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,OAAqC,CAAC;QACpF,CAAC,EAAE,MAAK;YACJ,qBAAqB,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC;AAC9D,QAAA,CAAC,CAAC;IACN;AAGA,IAAA,IAAI,CAA8C,OAAiB,EAAA;QAC/D,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAsB,OAAO,CAAC;IACzE;AAGA,IAAA,MAAM,gBAAgB,CAAC,KAAa,EAAE,OAAe,EAAE,OAAsB,EAAA;AACzE,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAA4B,IAAI,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACnH,QAAA,OAAO,MAAM;IACjB;IAGA,iBAAiB,CAAC,KAAa,EAAE,OAAe,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAmC,IAAI,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3F,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAmC,0BAA0B,CAAC;QAC9H,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC9D,QAAA,OAAO,aAAa;IACxB;AACH;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Constructor } from '@cratis/fundamentals';
|
|
2
|
+
import { CloseDialog, DialogResponse } from '@cratis/arc.react/dialogs';
|
|
3
|
+
import { DialogRegistration, DialogRequest } from './DialogRegistration';
|
|
4
|
+
export declare abstract class IDialogMediatorHandler {
|
|
5
|
+
abstract subscribe<TRequest extends object, TResponse>(requestType: Constructor<TRequest>, requester: DialogRequest<TRequest, TResponse>, closeDialog: CloseDialog<TResponse>): void;
|
|
6
|
+
abstract hasSubscriber<TRequest extends object>(requestType: Constructor<TRequest>): boolean;
|
|
7
|
+
abstract show<TRequest extends object, TResponse>(request: TRequest): Promise<DialogResponse<TResponse>>;
|
|
8
|
+
abstract getRegistration<TRequest extends object, TResponse>(requestType: Constructor<TRequest>): DialogRegistration<TRequest, TResponse>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=IDialogMediatorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IDialogMediatorHandler.d.ts","sourceRoot":"","sources":["../../../dialogs/IDialogMediatorHandler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKzE,8BAAsB,sBAAsB;IAQxC,QAAQ,CAAC,SAAS,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI;IAOpL,QAAQ,CAAC,aAAa,CAAC,QAAQ,SAAS,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,OAAO;IAM5F,QAAQ,CAAC,IAAI,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAOxG,QAAQ,CAAC,eAAe,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC5I"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IDialogMediatorHandler.js","sources":["../../../dialogs/IDialogMediatorHandler.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from '@cratis/fundamentals';\nimport { CloseDialog, DialogResponse } from '@cratis/arc.react/dialogs';\nimport { DialogRegistration, DialogRequest } from './DialogRegistration';\n\n/**\n * Defines a system that can handle dialog requests and responses.\n */\nexport abstract class IDialogMediatorHandler {\n\n /**\n * Subscribes to a request type.\n * @param {Constructor} requestType Type of request.\n * @param {DialogRequest} requester The delegate that will be called when a request is made.\n * @param {CloseDialog} closeDialog The delegate that will be called when dialog is typically closed and response is resolved.\n */\n abstract subscribe<TRequest extends object, TResponse>(requestType: Constructor<TRequest>, requester: DialogRequest<TRequest, TResponse>, closeDialog: CloseDialog<TResponse>): void;\n\n /**\n * Check if there is a subscriber for a given request type.\n * @param {Constructor} requestType Type of request.\n * @returns {boolean} True if there is a subscriber, false otherwise.\n */\n abstract hasSubscriber<TRequest extends object>(requestType: Constructor<TRequest>): boolean;\n\n /**\n * Show a dialog based on a request.\n * @param {*} request An instance of the dialog request.\n */\n abstract show<TRequest extends object, TResponse>(request: TRequest): Promise<DialogResponse<TResponse>>;\n\n /**\n * Get the registration for a given request type.\n * @param {Constructor} requestType Type of request.\n * @returns {DialogRegistration} The registration for the request type.\n */\n abstract getRegistration<TRequest extends object, TResponse>(requestType: Constructor<TRequest>): DialogRegistration<TRequest, TResponse>;\n}\n"],"names":[],"mappings":"MAUsB,sBAAsB,CAAA;AA6B3C;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DialogResponse, DialogResult } from '@cratis/arc.react/dialogs';
|
|
2
|
+
import { DialogButtons } from '@cratis/arc.react/dialogs/DialogButtons';
|
|
3
|
+
import { BusyIndicator } from './BusyIndicator';
|
|
4
|
+
export declare abstract class IDialogs {
|
|
5
|
+
abstract show<TRequest extends object, TResponse = object>(input: TRequest): Promise<DialogResponse<TResponse>>;
|
|
6
|
+
abstract showConfirmation(title: string, message: string, buttons: DialogButtons): Promise<DialogResult>;
|
|
7
|
+
abstract showBusyIndicator(title: string, message: string): BusyIndicator;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=IDialogs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IDialogs.d.ts","sourceRoot":"","sources":["../../../dialogs/IDialogs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,8BAAsB,QAAQ;IAM1B,QAAQ,CAAC,IAAI,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAS/G,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAQxG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa;CAC5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IDialogs.js","sources":["../../../dialogs/IDialogs.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogResponse, DialogResult } from '@cratis/arc.react/dialogs';\nimport { DialogButtons } from '@cratis/arc.react/dialogs/DialogButtons';\nimport { BusyIndicator } from './BusyIndicator';\n\n/**\n * Defines a service for working with dialogs from a view model.\n */\nexport abstract class IDialogs {\n /**\n * Show a dialog in the context of the current view and view model. This requires the view to host the dialog.\n * @param {*} input The input to pass to the dialog.\n * @returns {Promise<*>} The output from the dialog.\n */\n abstract show<TRequest extends object, TResponse = object>(input: TRequest): Promise<DialogResponse<TResponse>>;\n\n /**\n * Show a standard confirmation dialog.\n * @param {String} title Title of the dialog.\n * @param {String} message Message to show inside the dialog.\n * @param {DialogButtons} buttons Buttons to have on the dialog\n * @returns {Promise<DialogResult>} The result of the dialog.\n */\n abstract showConfirmation(title: string, message: string, buttons: DialogButtons): Promise<DialogResult>;\n\n /**\n * Show a standard busy indicator dialog.\n * @param {String} title Title of the dialog.\n * @param {String} message Message to show inside the dialog.\n * @returns {BusyIndicator} The busy indicator instance.\n */\n abstract showBusyIndicator(title: string, message: string): BusyIndicator;\n}\n\n\n"],"names":[],"mappings":"MAUsB,QAAQ,CAAA;AAwB7B;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './BusyIndicator';
|
|
2
|
+
export * from './DialogMediator';
|
|
3
|
+
export * from './DialogMediatorHandler';
|
|
4
|
+
export * from './DialogRegistration';
|
|
5
|
+
export * from './Dialogs';
|
|
6
|
+
export * from './IDialogMediatorHandler';
|
|
7
|
+
export * from './IDialogs';
|
|
8
|
+
export * from './Dialogs';
|
|
9
|
+
export * from './useDialog';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../dialogs/index.ts"],"names":[],"mappings":"AAGA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { BusyIndicator } from './BusyIndicator.js';
|
|
2
|
+
export { DialogMediator, DialogMediatorContext, useDialogMediator } from './DialogMediator.js';
|
|
3
|
+
export { DialogMediatorHandler } from './DialogMediatorHandler.js';
|
|
4
|
+
export { DialogRegistration } from './DialogRegistration.js';
|
|
5
|
+
export { Dialogs } from './Dialogs.js';
|
|
6
|
+
export { IDialogMediatorHandler } from './IDialogMediatorHandler.js';
|
|
7
|
+
export { IDialogs } from './IDialogs.js';
|
|
8
|
+
export { useDialog } from './useDialog.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ComponentType, FC } from 'react';
|
|
2
|
+
import { Constructor } from '@cratis/fundamentals';
|
|
3
|
+
import { ShowDialog } from '@cratis/arc.react/dialogs';
|
|
4
|
+
export declare function useDialog<TProps extends object = object, TResponse = object>(requestType: Constructor<TProps>, DialogComponent: ComponentType<TProps>): [FC<TProps>, ShowDialog<TProps, TResponse>];
|
|
5
|
+
//# sourceMappingURL=useDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/useDialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,aAAa,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAgB,UAAU,EAA8B,MAAM,2BAA2B,CAAC;AASjG,wBAAgB,SAAS,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EACxE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GACvC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAgB7C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
2
|
+
import { useDialog as useDialog$1 } from '@cratis/arc.react/dialogs';
|
|
3
|
+
import { useDialogMediator } from './DialogMediator.js';
|
|
4
|
+
|
|
5
|
+
function useDialog(requestType, DialogComponent) {
|
|
6
|
+
const mediator = useDialogMediator();
|
|
7
|
+
const [DialogWrapper, showDialog, actualDialogContext] = useDialog$1(DialogComponent);
|
|
8
|
+
const closeDialog = useCallback((result, value) => {
|
|
9
|
+
actualDialogContext.closeDialog(result, value);
|
|
10
|
+
}, []);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
mediator.subscribe(requestType, async (request, resolver) => {
|
|
13
|
+
const [result, response] = await showDialog(request);
|
|
14
|
+
resolver(result, response);
|
|
15
|
+
}, closeDialog);
|
|
16
|
+
}, []);
|
|
17
|
+
return [DialogWrapper, showDialog];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { useDialog };
|
|
21
|
+
//# sourceMappingURL=useDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDialog.js","sources":["../../../dialogs/useDialog.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useEffect, ComponentType, FC, useCallback } from 'react';\nimport { Constructor } from '@cratis/fundamentals';\nimport { DialogResult, ShowDialog, useDialog as useDialogBase } from '@cratis/arc.react/dialogs';\nimport { useDialogMediator } from './DialogMediator';\n\n/**\n * Use a dialog request for showing a dialog, similar to useDialog.\n * @param requestType Type of request to use that represents a request that will be made by your view model.\n * @param DialogComponent The dialog component to render.\n * @returns A tuple with a component to use for rendering the dialog.\n */\nexport function useDialog<TProps extends object = object, TResponse = object>(\n requestType: Constructor<TProps>,\n DialogComponent: ComponentType<TProps>\n): [FC<TProps>, ShowDialog<TProps, TResponse>] {\n const mediator = useDialogMediator();\n const [DialogWrapper, showDialog, actualDialogContext] = useDialogBase<TResponse, TProps>(DialogComponent);\n\n const closeDialog = useCallback((result: DialogResult, value?: TResponse) => {\n actualDialogContext.closeDialog(result, value as TResponse);\n }, []);\n\n useEffect(() => {\n mediator.subscribe(requestType, async (request, resolver) => {\n const [result, response] = await showDialog(request as unknown as TProps);\n resolver(result, response);\n }, closeDialog);\n }, []);\n\n return [DialogWrapper, showDialog];\n}\n"],"names":["useDialogBase"],"mappings":";;;;AAcM,SAAU,SAAS,CACrB,WAAgC,EAChC,eAAsC,EAAA;AAEtC,IAAA,MAAM,QAAQ,GAAG,iBAAiB,EAAE;AACpC,IAAA,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,mBAAmB,CAAC,GAAGA,WAAa,CAAoB,eAAe,CAAC;IAE1G,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,MAAoB,EAAE,KAAiB,KAAI;AACxE,QAAA,mBAAmB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAkB,CAAC;IAC/D,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;QACX,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,OAAO,EAAE,QAAQ,KAAI;YACxD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,UAAU,CAAC,OAA4B,CAAC;AACzE,YAAA,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC9B,CAAC,EAAE,WAAW,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;AACtC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import * as browser from './browser';
|
|
3
|
+
import * as messaging from './messaging';
|
|
4
|
+
import * as dialogs from './dialogs';
|
|
5
|
+
export * from './Bindings';
|
|
6
|
+
export * from './MVVMContext';
|
|
7
|
+
export * from './withViewModel';
|
|
8
|
+
export * from './IViewModelDetached';
|
|
9
|
+
export * from './WellKnownBindings';
|
|
10
|
+
export * from './IHandleProps';
|
|
11
|
+
export * from './IHandleParams';
|
|
12
|
+
export * from './IHandleQueryParams';
|
|
13
|
+
export { browser, messaging, dialogs };
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACH,OAAO,EACP,SAAS,EACT,OAAO,EACV,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import * as index from './browser/index.js';
|
|
3
|
+
export { index as browser };
|
|
4
|
+
import * as index$1 from './messaging/index.js';
|
|
5
|
+
export { index$1 as messaging };
|
|
6
|
+
import * as index$2 from './dialogs/index.js';
|
|
7
|
+
export { index$2 as dialogs };
|
|
8
|
+
export { Bindings } from './Bindings.js';
|
|
9
|
+
export { MVVM, MVVMContext } from './MVVMContext.js';
|
|
10
|
+
export { withViewModel } from './withViewModel.js';
|
|
11
|
+
export { WellKnownBindings } from './WellKnownBindings.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Subscription } from 'rxjs';
|
|
2
|
+
import { Constructor } from '@cratis/fundamentals';
|
|
3
|
+
export type MessageHandler<T> = (message: T) => void;
|
|
4
|
+
export declare abstract class IMessenger {
|
|
5
|
+
abstract publish<TMessage extends object>(message: TMessage): void;
|
|
6
|
+
abstract subscribe<TMessage extends object>(type: Constructor<TMessage>, callback: MessageHandler<TMessage>): Subscription;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=IMessenger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMessenger.d.ts","sourceRoot":"","sources":["../../../messaging/IMessenger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKnD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAKrD,8BAAsB,UAAU;IAM5B,QAAQ,CAAC,OAAO,CAAC,QAAQ,SAAS,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAMlE,QAAQ,CAAC,SAAS,CAAC,QAAQ,SAAS,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY;CAC7H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMessenger.js","sources":["../../../messaging/IMessenger.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Subscription } from 'rxjs';\nimport { Constructor } from '@cratis/fundamentals';\n\n/**\n * Represents a message handler.\n */\nexport type MessageHandler<T> = (message: T) => void;\n\n/**\n * Defines a system for publishing and subscribing to messages.\n */\nexport abstract class IMessenger {\n\n /**\n * Publish a message.\n * @param {*} message Message to publish.\n */\n abstract publish<TMessage extends object>(message: TMessage): void;\n\n /**\n * Subscribe to a specific message type.\n * @param {MessageHandler} callback Callback that gets called when message arrives.\n */\n abstract subscribe<TMessage extends object>(type: Constructor<TMessage>, callback: MessageHandler<TMessage>): Subscription;\n}\n"],"names":[],"mappings":"MAcsB,UAAU,CAAA;AAa/B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../messaging/Message.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKnD,qBAAa,OAAO;IAOJ,QAAQ,CAAC,IAAI,EAAE,WAAW;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAA3C,IAAI,EAAE,WAAW,EAAW,OAAO,EAAE,MAAM;CAEnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Message.js","sources":["../../../messaging/Message.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from '@cratis/fundamentals';\n\n/**\n * Represents a message published on the {@link Messenger}.\n */\nexport class Message {\n\n /**\n * Initializes a new instance of {@link Message}.\n * @param {Constructor} type Type of the content in the message.\n * @param {*} content The actual content.\n */\n constructor(readonly type: Constructor, readonly content: object) {\n }\n}\n"],"names":[],"mappings":"MAQa,OAAO,CAAA;AAOK,IAAA,IAAA;AAA4B,IAAA,OAAA;IAAjD,WAAA,CAAqB,IAAiB,EAAW,OAAe,EAAA;QAA3C,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAwB,IAAA,CAAA,OAAO,GAAP,OAAO;IACxD;AACH;;;;"}
|