@kosdev-code/kos-ui-sdk 0.1.0-next.807 → 0.1.0-next.808

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.
@@ -1,4 +1,5 @@
1
1
  import { IKosDataModel, IKosModel } from '../core/kosModel';
2
+ import { KosModelState } from '../core/lifecycle';
2
3
  /**
3
4
  * Asynchronously destroys a KOS data model.
4
5
  *
@@ -143,4 +144,46 @@ export declare const isKosModel: <T extends IKosDataModel>(type: string) => (mod
143
144
  * @kosApiLevel 2
144
145
  */
145
146
  export declare const isKosModelReady: (model: IKosDataModel) => boolean;
147
+ /**
148
+ * An observable, read-only view of a model's activation lifecycle.
149
+ *
150
+ * Models that fetch lazily do so in `activate()`, so activation state — not
151
+ * `loaded`, which tracks the `load()` lifecycle — is what tells a consumer
152
+ * whether that fetch has settled and whether it succeeded. Exposing just this
153
+ * lets a view react to activation without taking a dependency on the whole
154
+ * {@link IKosModel}.
155
+ */
156
+ export interface KosModelActivationState {
157
+ /** The model's current activation state. */
158
+ readonly activeStatus: KosModelState;
159
+ /** Activation is in flight — nothing conclusive to render yet. */
160
+ readonly isActivating: boolean;
161
+ /** Activation completed; the model's activate() work is done. */
162
+ readonly isActive: boolean;
163
+ /** Activation threw — the model's data is absent, not empty. */
164
+ readonly isFailed: boolean;
165
+ }
166
+ /**
167
+ * Retrieves an observable view of a model's activation state.
168
+ *
169
+ * Every member is a getter, so reads happen at access time and stay tracked —
170
+ * call this once and read its properties inside a `kosComponent` (or any MobX
171
+ * reaction) to re-render as the model activates, succeeds, or fails.
172
+ *
173
+ * @param model - The KOS data model to observe.
174
+ * @returns The activation view, or `undefined` when the model has no wrapper
175
+ * yet (not created, or already destroyed).
176
+ *
177
+ * @example Distinguishing "still loading" from "empty" from "failed"
178
+ * ```tsx
179
+ * const activation = getKosModelActivationState(container);
180
+ * if (!activation || activation.isActivating) return <Blank />;
181
+ * if (activation.isFailed) return <LoadError />;
182
+ * return <Versions items={container.items} />;
183
+ * ```
184
+ *
185
+ * @kosService core.utils
186
+ * @kosApiLevel 15
187
+ */
188
+ export declare const getKosModelActivationState: (model: IKosDataModel | undefined) => KosModelActivationState | undefined;
146
189
  //# sourceMappingURL=kos-model-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kos-model-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-model-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKjE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,aAAa,kBAGzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAU,WAAW,aAAa,kBAS5D,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAU,OAAO,aAAa,kBAevD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,MAAM,gCAQpD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,SAAS,aAAa,GAAG,aAAa,EACvE,SAAS,MAAM;WAQqB,CAAC;;EACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,aAAa,GAAG,aAAa,EACrE,SAAS,MAAM;WAOqB,CAAC;;CACtC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,aAAa,EAChD,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,KASZ,CAAC,EACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,aAAa,EAC/C,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,MACU,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,aAAa,EAC1D,OAAO,aAAa,EACpB,MAAM,MAAM,KAWwB,CACrC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,aAAa,oBAc5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,mEAYtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,aAAa,EACzD,SAAS,MAAM,EACf,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,KAC9B,SAAS,GAAG,SAWd,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACpB,CAAC,SAAS,aAAa,EAAE,MAAM,MAAM,MACrC,OAAO,GAAG,KAAG,KAAK,IAAI,CAC4B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,YAMnD,CAAC"}
1
+ {"version":3,"file":"kos-model-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-model-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,aAAa,kBAGzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAU,WAAW,aAAa,kBAS5D,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAU,OAAO,aAAa,kBAevD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,MAAM,gCAQpD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,SAAS,aAAa,GAAG,aAAa,EACvE,SAAS,MAAM;WAQqB,CAAC;;EACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,aAAa,GAAG,aAAa,EACrE,SAAS,MAAM;WAOqB,CAAC;;CACtC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,aAAa,EAChD,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,KASZ,CAAC,EACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,aAAa,EAC/C,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,MACU,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,aAAa,EAC1D,OAAO,aAAa,EACpB,MAAM,MAAM,KAWwB,CACrC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,aAAa,oBAc5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,mEAYtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,aAAa,EACzD,SAAS,MAAM,EACf,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,KAC9B,SAAS,GAAG,SAWd,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACpB,CAAC,SAAS,aAAa,EAAE,MAAM,MAAM,MACrC,OAAO,GAAG,KAAG,KAAK,IAAI,CAC4B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,YAMnD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,0BAA0B,GACrC,OAAO,aAAa,GAAG,SAAS,KAC/B,uBAAuB,GAAG,SAuB5B,CAAC"}
package/index.cjs CHANGED
@@ -2915,6 +2915,29 @@ const isKosModelReady = (model) => {
2915
2915
  }
2916
2916
  return kosModel2.isReady();
2917
2917
  };
2918
+ const getKosModelActivationState = (model) => {
2919
+ if (!model?.id) {
2920
+ return void 0;
2921
+ }
2922
+ const kosModel2 = KosCore.getInstance().modelManager.getModelById(model.id);
2923
+ if (!kosModel2) {
2924
+ return void 0;
2925
+ }
2926
+ return {
2927
+ get activeStatus() {
2928
+ return kosModel2.activeStatus;
2929
+ },
2930
+ get isActivating() {
2931
+ return kosModel2.activeStatus === KosModelState.ACTIVATING;
2932
+ },
2933
+ get isActive() {
2934
+ return kosModel2.activeStatus === KosModelState.ACTIVE;
2935
+ },
2936
+ get isFailed() {
2937
+ return kosModel2.activeStatus === KosModelState.FAILED;
2938
+ }
2939
+ };
2940
+ };
2918
2941
  const log$L = KosLog.createLogger({ name: "kos-model-factory" });
2919
2942
  const KosModelFactory = {
2920
2943
  byModelType: (modelType) => KosCore.getInstance().modelManager.getModelFactory(
@@ -27220,6 +27243,7 @@ exports.getKosConnectionId = getKosConnectionId;
27220
27243
  exports.getKosLocalizationDescriptor = getKosLocalizationDescriptor;
27221
27244
  exports.getKosMessageLogging = getKosMessageLogging;
27222
27245
  exports.getKosModel = getKosModel$1;
27246
+ exports.getKosModelActivationState = getKosModelActivationState;
27223
27247
  exports.getKosModelSync = getKosModelSync;
27224
27248
  exports.getKosModelType = getKosModelType;
27225
27249
  exports.getKosServiceApi = getKosServiceApi;