breeze-client 2.1.2 → 2.1.3-mjs
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/LICENSE +1 -1
- package/adapter-ajax-angularjs/{breeze-client-adapter-ajax-angularjs.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-fetch/{breeze-client-adapter-ajax-fetch.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-httpclient/{breeze-client-adapter-ajax-httpclient.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-jquery/{breeze-client-adapter-ajax-jquery.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-post/{breeze-client-adapter-ajax-post.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-odata/{breeze-client-adapter-data-service-odata.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-webapi/{breeze-client-adapter-data-service-webapi.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-backing-store/{breeze-client-adapter-model-library-backing-store.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-ko/{breeze-client-adapter-model-library-ko.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-json/{breeze-client-adapter-uri-builder-json.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-odata/{breeze-client-adapter-uri-builder-odata.d.ts → index.d.ts} +1 -0
- package/esm2020/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +130 -0
- package/esm2020/adapter-ajax-angularjs/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
- package/esm2020/adapter-ajax-fetch/adapter-ajax-fetch.mjs +132 -0
- package/esm2020/adapter-ajax-fetch/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
- package/esm2020/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +137 -0
- package/esm2020/adapter-ajax-httpclient/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
- package/esm2020/adapter-ajax-jquery/adapter-ajax-jquery.mjs +103 -0
- package/esm2020/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
- package/esm2020/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
- package/esm2020/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
- package/esm2020/adapter-data-service-odata/adapter-core.mjs +49 -0
- package/esm2020/adapter-data-service-odata/adapter-data-service-odata.mjs +456 -0
- package/esm2020/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
- package/esm2020/adapter-data-service-webapi/adapter-data-service-webapi.mjs +93 -0
- package/esm2020/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
- package/esm2020/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +268 -0
- package/esm2020/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
- package/esm2020/adapter-model-library-ko/adapter-model-library-ko.mjs +240 -0
- package/esm2020/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
- package/esm2020/adapter-uri-builder-json/adapter-core.mjs +49 -0
- package/esm2020/adapter-uri-builder-json/adapter-uri-builder-json.mjs +36 -0
- package/esm2020/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
- package/esm2020/adapter-uri-builder-odata/adapter-core.mjs +49 -0
- package/esm2020/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +190 -0
- package/esm2020/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
- package/esm2020/breeze-client.mjs +5 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
- package/esm2020/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
- package/esm2020/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
- package/esm2020/mixin-save-queuing/mixin-save-queuing.mjs +400 -0
- package/esm2020/src/abstract-data-service-adapter.mjs +296 -0
- package/esm2020/src/array.mjs +4 -0
- package/esm2020/src/assert-param.mjs +312 -0
- package/esm2020/src/breeze.mjs +85 -0
- package/esm2020/src/complex-array.mjs +117 -0
- package/esm2020/src/config.mjs +223 -0
- package/esm2020/src/core.mjs +707 -0
- package/esm2020/src/csdl-metadata-parser.mjs +385 -0
- package/esm2020/src/data-service.mjs +203 -0
- package/esm2020/src/data-type.mjs +444 -0
- package/esm2020/src/default-property-interceptor.mjs +460 -0
- package/esm2020/src/entity-action.mjs +45 -0
- package/esm2020/src/entity-aspect.mjs +806 -0
- package/esm2020/src/entity-group.mjs +187 -0
- package/esm2020/src/entity-key.mjs +116 -0
- package/esm2020/src/entity-manager.mjs +2094 -0
- package/esm2020/src/entity-metadata.mjs +2109 -0
- package/esm2020/src/entity-query.mjs +996 -0
- package/esm2020/src/entity-state.mjs +99 -0
- package/esm2020/src/enum.mjs +141 -0
- package/esm2020/src/event.mjs +256 -0
- package/esm2020/src/interface-registry.mjs +41 -0
- package/esm2020/src/key-generator.mjs +108 -0
- package/esm2020/src/local-query-comparison-options.mjs +65 -0
- package/esm2020/src/mapping-context.mjs +405 -0
- package/esm2020/src/naming-convention.mjs +88 -0
- package/esm2020/src/observable-array.mjs +183 -0
- package/esm2020/src/predicate.mjs +1232 -0
- package/esm2020/src/primitive-array.mjs +85 -0
- package/esm2020/src/query-options.mjs +152 -0
- package/esm2020/src/relation-array.mjs +173 -0
- package/esm2020/src/save-options.mjs +41 -0
- package/esm2020/src/unattached-children-map.mjs +58 -0
- package/esm2020/src/validate.mjs +988 -0
- package/esm2020/src/validation-options.mjs +64 -0
- package/fesm2015/{breeze-client-adapter-ajax-angularjs.js → breeze-client-adapter-ajax-angularjs.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-fetch.js → breeze-client-adapter-ajax-fetch.mjs} +5 -3
- package/fesm2015/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-httpclient.js → breeze-client-adapter-ajax-httpclient.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-jquery.js → breeze-client-adapter-ajax-jquery.mjs} +2 -2
- package/fesm2015/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-post.js → breeze-client-adapter-ajax-post.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-odata.js → breeze-client-adapter-data-service-odata.mjs} +20 -22
- package/fesm2015/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-webapi.js → breeze-client-adapter-data-service-webapi.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-model-library-backing-store.js → breeze-client-adapter-model-library-backing-store.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-model-library-ko.js → breeze-client-adapter-model-library-ko.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-uri-builder-json.js → breeze-client-adapter-uri-builder-json.mjs} +8 -8
- package/fesm2015/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-uri-builder-odata.js → breeze-client-adapter-uri-builder-odata.mjs} +85 -86
- package/fesm2015/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/fesm2015/{breeze-client-mixin-get-entity-graph.js → breeze-client-mixin-get-entity-graph.mjs} +1 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/fesm2015/{breeze-client-mixin-save-queuing.js → breeze-client-mixin-save-queuing.mjs} +1 -1
- package/fesm2015/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/fesm2015/{breeze-client.js → breeze-client.mjs} +417 -422
- package/fesm2015/breeze-client.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-angularjs.js → fesm2020/breeze-client-adapter-ajax-angularjs.mjs} +41 -42
- package/fesm2020/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-fetch.js → fesm2020/breeze-client-adapter-ajax-fetch.mjs} +44 -43
- package/fesm2020/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-httpclient.js → fesm2020/breeze-client-adapter-ajax-httpclient.mjs} +43 -44
- package/fesm2020/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-jquery.js → fesm2020/breeze-client-adapter-ajax-jquery.mjs} +18 -19
- package/fesm2020/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-post.js → fesm2020/breeze-client-adapter-ajax-post.mjs} +8 -11
- package/fesm2020/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-data-service-odata.js → fesm2020/breeze-client-adapter-data-service-odata.mjs} +126 -134
- package/fesm2020/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-data-service-webapi.js → fesm2020/breeze-client-adapter-data-service-webapi.mjs} +38 -42
- package/fesm2020/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-model-library-backing-store.js → fesm2020/breeze-client-adapter-model-library-backing-store.mjs} +63 -64
- package/fesm2020/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-model-library-ko.js → fesm2020/breeze-client-adapter-model-library-ko.mjs} +57 -58
- package/fesm2020/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/fesm2020/breeze-client-adapter-uri-builder-json.mjs +91 -0
- package/fesm2020/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs +245 -0
- package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/{fesm5/breeze-client-mixin-get-entity-graph.js → fesm2020/breeze-client-mixin-get-entity-graph.mjs} +45 -45
- package/fesm2020/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/{fesm5/breeze-client-mixin-save-queuing.js → fesm2020/breeze-client-mixin-save-queuing.mjs} +116 -126
- package/fesm2020/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/{fesm5/breeze-client.js → fesm2020/breeze-client.mjs} +3403 -3615
- package/fesm2020/breeze-client.mjs.map +1 -0
- package/mixin-get-entity-graph/{breeze-client-mixin-get-entity-graph.d.ts → index.d.ts} +1 -0
- package/mixin-save-queuing/{breeze-client-mixin-save-queuing.d.ts → index.d.ts} +1 -0
- package/package.json +126 -12
- package/src/entity-metadata.d.ts +6 -4
- package/src/entity-query.d.ts +1 -1
- package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +0 -1
- package/adapter-ajax-angularjs/package.json +0 -13
- package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +0 -1
- package/adapter-ajax-fetch/package.json +0 -13
- package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +0 -1
- package/adapter-ajax-httpclient/package.json +0 -17
- package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +0 -1
- package/adapter-ajax-jquery/package.json +0 -13
- package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +0 -1
- package/adapter-ajax-post/package.json +0 -13
- package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +0 -1
- package/adapter-data-service-odata/package.json +0 -13
- package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +0 -1
- package/adapter-data-service-webapi/package.json +0 -13
- package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +0 -1
- package/adapter-model-library-backing-store/package.json +0 -13
- package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +0 -1
- package/adapter-model-library-ko/package.json +0 -13
- package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +0 -1
- package/adapter-uri-builder-json/package.json +0 -13
- package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +0 -1
- package/adapter-uri-builder-odata/package.json +0 -13
- package/breeze-client.d.ts +0 -8
- package/breeze-client.metadata.json +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +0 -195
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js +0 -115
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.js +0 -92
- package/bundles/breeze-client-adapter-ajax-post.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.js +0 -743
- package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js +0 -326
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +0 -280
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.js +0 -252
- package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js +0 -96
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +0 -262
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js +0 -258
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +0 -2
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.js +0 -579
- package/bundles/breeze-client-mixin-save-queuing.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js +0 -16
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +0 -1
- package/bundles/breeze-client.umd.js +0 -14094
- package/bundles/breeze-client.umd.js.map +0 -1
- package/bundles/breeze-client.umd.min.js +0 -16
- package/bundles/breeze-client.umd.min.js.map +0 -1
- package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -130
- package/esm2015/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -130
- package/esm2015/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -137
- package/esm2015/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -103
- package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm2015/adapter-ajax-post/adapter-ajax-post.js +0 -77
- package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm2015/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +0 -459
- package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -93
- package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -268
- package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +0 -240
- package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm2015/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -36
- package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm2015/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -192
- package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm2015/breeze-client.js +0 -9
- package/esm2015/index.js +0 -2
- package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm2015/mixin-save-queuing/mixin-save-queuing.js +0 -400
- package/esm2015/public_api.js +0 -2
- package/esm2015/src/abstract-data-service-adapter.js +0 -296
- package/esm2015/src/array.js +0 -4
- package/esm2015/src/assert-param.js +0 -312
- package/esm2015/src/breeze.js +0 -85
- package/esm2015/src/complex-array.js +0 -119
- package/esm2015/src/config.js +0 -223
- package/esm2015/src/core.js +0 -706
- package/esm2015/src/csdl-metadata-parser.js +0 -385
- package/esm2015/src/data-service.js +0 -203
- package/esm2015/src/data-type.js +0 -444
- package/esm2015/src/default-property-interceptor.js +0 -459
- package/esm2015/src/entity-action.js +0 -45
- package/esm2015/src/entity-aspect.js +0 -806
- package/esm2015/src/entity-group.js +0 -187
- package/esm2015/src/entity-key.js +0 -116
- package/esm2015/src/entity-manager.js +0 -2094
- package/esm2015/src/entity-metadata.js +0 -2109
- package/esm2015/src/entity-query.js +0 -996
- package/esm2015/src/entity-state.js +0 -99
- package/esm2015/src/enum.js +0 -141
- package/esm2015/src/event.js +0 -256
- package/esm2015/src/interface-registry.js +0 -41
- package/esm2015/src/key-generator.js +0 -108
- package/esm2015/src/local-query-comparison-options.js +0 -65
- package/esm2015/src/mapping-context.js +0 -405
- package/esm2015/src/naming-convention.js +0 -88
- package/esm2015/src/observable-array.js +0 -185
- package/esm2015/src/predicate.js +0 -1235
- package/esm2015/src/primitive-array.js +0 -87
- package/esm2015/src/query-options.js +0 -152
- package/esm2015/src/relation-array.js +0 -175
- package/esm2015/src/save-options.js +0 -41
- package/esm2015/src/unattached-children-map.js +0 -58
- package/esm2015/src/validate.js +0 -991
- package/esm2015/src/validation-options.js +0 -64
- package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -132
- package/esm5/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -132
- package/esm5/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -139
- package/esm5/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -105
- package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm5/adapter-ajax-post/adapter-ajax-post.js +0 -81
- package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm5/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm5/adapter-data-service-odata/adapter-data-service-odata.js +0 -466
- package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -98
- package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -270
- package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +0 -242
- package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm5/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -38
- package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm5/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -197
- package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm5/breeze-client.js +0 -9
- package/esm5/index.js +0 -2
- package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm5/mixin-save-queuing/mixin-save-queuing.js +0 -412
- package/esm5/public_api.js +0 -2
- package/esm5/src/abstract-data-service-adapter.js +0 -302
- package/esm5/src/array.js +0 -4
- package/esm5/src/assert-param.js +0 -317
- package/esm5/src/breeze.js +0 -85
- package/esm5/src/complex-array.js +0 -119
- package/esm5/src/config.js +0 -228
- package/esm5/src/core.js +0 -714
- package/esm5/src/csdl-metadata-parser.js +0 -385
- package/esm5/src/data-service.js +0 -207
- package/esm5/src/data-type.js +0 -451
- package/esm5/src/default-property-interceptor.js +0 -459
- package/esm5/src/entity-action.js +0 -52
- package/esm5/src/entity-aspect.js +0 -812
- package/esm5/src/entity-group.js +0 -189
- package/esm5/src/entity-key.js +0 -118
- package/esm5/src/entity-manager.js +0 -2112
- package/esm5/src/entity-metadata.js +0 -2144
- package/esm5/src/entity-query.js +0 -1023
- package/esm5/src/entity-state.js +0 -106
- package/esm5/src/enum.js +0 -144
- package/esm5/src/event.js +0 -259
- package/esm5/src/interface-registry.js +0 -43
- package/esm5/src/key-generator.js +0 -111
- package/esm5/src/local-query-comparison-options.js +0 -67
- package/esm5/src/mapping-context.js +0 -407
- package/esm5/src/naming-convention.js +0 -90
- package/esm5/src/observable-array.js +0 -201
- package/esm5/src/predicate.js +0 -1300
- package/esm5/src/primitive-array.js +0 -87
- package/esm5/src/query-options.js +0 -167
- package/esm5/src/relation-array.js +0 -175
- package/esm5/src/save-options.js +0 -43
- package/esm5/src/unattached-children-map.js +0 -60
- package/esm5/src/validate.js +0 -996
- package/esm5/src/validation-options.js +0 -66
- package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm2015/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm2015/breeze-client.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-json.js +0 -92
- package/fesm5/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-odata.js +0 -250
- package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm5/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm5/breeze-client.js.map +0 -1
- package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +0 -1
- package/mixin-get-entity-graph/package.json +0 -13
- package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +0 -1
- package/mixin-save-queuing/package.json +0 -13
- package/public_api.d.ts +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { BreezeEnum } from './enum';
|
|
2
|
+
/**
|
|
3
|
+
EntityState is an 'Enum' containing all of the valid states for an 'Entity'.
|
|
4
|
+
**/
|
|
5
|
+
export class EntityState extends BreezeEnum {
|
|
6
|
+
/**
|
|
7
|
+
Returns whether an entityState instance is EntityState.Unchanged.
|
|
8
|
+
> var es = anEntity.entityAspect.entityState;
|
|
9
|
+
> return es.isUnchanged();
|
|
10
|
+
|
|
11
|
+
is the same as
|
|
12
|
+
> return es === EntityState.Unchanged;
|
|
13
|
+
**/
|
|
14
|
+
isUnchanged() {
|
|
15
|
+
return this === EntityState.Unchanged;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
Return whether an entityState instance is EntityState.Added.
|
|
19
|
+
|
|
20
|
+
> var es = anEntity.entityAspect.entityState;
|
|
21
|
+
> return es.isAdded();
|
|
22
|
+
|
|
23
|
+
is the same as
|
|
24
|
+
> return es === EntityState.Added;
|
|
25
|
+
**/
|
|
26
|
+
isAdded() {
|
|
27
|
+
return this === EntityState.Added;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
Returns whether an entityState instance is EntityState.Modified.
|
|
31
|
+
> var es = anEntity.entityAspect.entityState;
|
|
32
|
+
> return es.isModified();
|
|
33
|
+
|
|
34
|
+
is the same as
|
|
35
|
+
> return es === EntityState.Modified;
|
|
36
|
+
**/
|
|
37
|
+
isModified() {
|
|
38
|
+
return this === EntityState.Modified;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
Returns whether an entityState instance is EntityState.Deleted.
|
|
42
|
+
> var es = anEntity.entityAspect.entityState;
|
|
43
|
+
> return es.isDeleted();
|
|
44
|
+
|
|
45
|
+
is the same as
|
|
46
|
+
|
|
47
|
+
> return es === EntityState.Deleted;
|
|
48
|
+
**/
|
|
49
|
+
isDeleted() {
|
|
50
|
+
return this === EntityState.Deleted;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
Returns whether an entityState instance is EntityState.Detached.
|
|
54
|
+
> var es = anEntity.entityAspect.entityState;
|
|
55
|
+
> return es.isDetached();
|
|
56
|
+
|
|
57
|
+
is the same as
|
|
58
|
+
> return es === EntityState.Detached;
|
|
59
|
+
**/
|
|
60
|
+
isDetached() {
|
|
61
|
+
return this === EntityState.Detached;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
Returns whether an entityState instance is EntityState.Unchanged or EntityState.Modified.
|
|
65
|
+
> var es = anEntity.entityAspect.entityState;
|
|
66
|
+
> return es.isUnchangedOrModified();
|
|
67
|
+
|
|
68
|
+
is the same as
|
|
69
|
+
> return es === EntityState.Unchanged || es === EntityState.Modified
|
|
70
|
+
**/
|
|
71
|
+
isUnchangedOrModified() {
|
|
72
|
+
return this === EntityState.Unchanged || this === EntityState.Modified;
|
|
73
|
+
}
|
|
74
|
+
/** Returns whether an entityState instance is EntityState.Added or EntityState.Modified or EntityState.Deleted.
|
|
75
|
+
> var es = anEntity.entityAspect.entityState;
|
|
76
|
+
> return es.isAddedModifiedOrDeleted();
|
|
77
|
+
|
|
78
|
+
is the same as
|
|
79
|
+
> return es === EntityState.Added || es === EntityState.Modified || es === EntityState.Deleted
|
|
80
|
+
**/
|
|
81
|
+
isAddedModifiedOrDeleted() {
|
|
82
|
+
return this === EntityState.Added ||
|
|
83
|
+
this === EntityState.Modified ||
|
|
84
|
+
this === EntityState.Deleted;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** The 'Unchanged' state. **/
|
|
88
|
+
EntityState.Unchanged = new EntityState();
|
|
89
|
+
/** The 'Added' state. **/
|
|
90
|
+
EntityState.Added = new EntityState();
|
|
91
|
+
/** The 'Modified' state. **/
|
|
92
|
+
EntityState.Modified = new EntityState();
|
|
93
|
+
/** The 'Deleted' state. **/
|
|
94
|
+
EntityState.Deleted = new EntityState();
|
|
95
|
+
/** The 'Detached' state. **/
|
|
96
|
+
EntityState.Detached = new EntityState();
|
|
97
|
+
EntityState.prototype._$typeName = "EntityState";
|
|
98
|
+
Error['x'] = EntityState.resolveSymbols();
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVksU0FBUSxVQUFVO0lBYXpDOzs7Ozs7O09BT0c7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLEtBQUssV0FBVyxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxPQUFPO1FBQ0wsT0FBTyxJQUFJLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxLQUFLLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLEtBQUssV0FBVyxDQUFDLFNBQVMsSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxLQUFLLFdBQVcsQ0FBQyxLQUFLO1lBQy9CLElBQUksS0FBSyxXQUFXLENBQUMsUUFBUTtZQUM3QixJQUFJLEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDOztBQWhHRCw4QkFBOEI7QUFDdkIscUJBQVMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQ3JDLDRCQUE0QjtBQUNyQixpQkFBSyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUFDakMsZ0NBQWdDO0FBQ3pCLG9CQUFRLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUNwQyw4QkFBOEI7QUFDdkIsbUJBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQ25DLCtCQUErQjtBQUN4QixvQkFBUSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUEwRnRDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztBQUNqRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlZXplRW51bSB9IGZyb20gJy4vZW51bSc7XHJcblxyXG4vKipcclxuRW50aXR5U3RhdGUgaXMgYW4gJ0VudW0nIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSB2YWxpZCBzdGF0ZXMgZm9yIGFuICdFbnRpdHknLlxyXG4qKi9cclxuZXhwb3J0IGNsYXNzIEVudGl0eVN0YXRlIGV4dGVuZHMgQnJlZXplRW51bSB7XHJcblxyXG4gIC8qKiBUaGUgJ1VuY2hhbmdlZCcgc3RhdGUuICoqL1xyXG4gIHN0YXRpYyBVbmNoYW5nZWQgPSBuZXcgRW50aXR5U3RhdGUoKTtcclxuICAvKiogIFRoZSAnQWRkZWQnIHN0YXRlLiAgKiovXHJcbiAgc3RhdGljIEFkZGVkID0gbmV3IEVudGl0eVN0YXRlKCk7XHJcbiAgLyoqICBUaGUgJ01vZGlmaWVkJyBzdGF0ZS4gICAqKi9cclxuICBzdGF0aWMgTW9kaWZpZWQgPSBuZXcgRW50aXR5U3RhdGUoKTtcclxuICAvKiogIFRoZSAnRGVsZXRlZCcgc3RhdGUuICAqKi9cclxuICBzdGF0aWMgRGVsZXRlZCA9IG5ldyBFbnRpdHlTdGF0ZSgpO1xyXG4gIC8qKiAgVGhlICdEZXRhY2hlZCcgc3RhdGUuICAqKi9cclxuICBzdGF0aWMgRGV0YWNoZWQgPSBuZXcgRW50aXR5U3RhdGUoKTtcclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJucyB3aGV0aGVyIGFuIGVudGl0eVN0YXRlIGluc3RhbmNlIGlzIEVudGl0eVN0YXRlLlVuY2hhbmdlZC5cclxuICA+ICAgICB2YXIgZXMgPSBhbkVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGU7XHJcbiAgPiAgICAgcmV0dXJuIGVzLmlzVW5jaGFuZ2VkKCk7XHJcblxyXG4gIGlzIHRoZSBzYW1lIGFzXHJcbiAgPiAgICAgcmV0dXJuIGVzID09PSBFbnRpdHlTdGF0ZS5VbmNoYW5nZWQ7XHJcbiAgKiovXHJcbiAgaXNVbmNoYW5nZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcyA9PT0gRW50aXR5U3RhdGUuVW5jaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJuIHdoZXRoZXIgYW4gZW50aXR5U3RhdGUgaW5zdGFuY2UgaXMgRW50aXR5U3RhdGUuQWRkZWQuXHJcbiAgXHJcbiAgPiAgICAgdmFyIGVzID0gYW5FbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlO1xyXG4gID4gICAgIHJldHVybiBlcy5pc0FkZGVkKCk7XHJcblxyXG4gIGlzIHRoZSBzYW1lIGFzXHJcbiAgPiAgICAgcmV0dXJuIGVzID09PSBFbnRpdHlTdGF0ZS5BZGRlZDtcclxuICAqKi9cclxuICBpc0FkZGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMgPT09IEVudGl0eVN0YXRlLkFkZGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJucyB3aGV0aGVyIGFuIGVudGl0eVN0YXRlIGluc3RhbmNlIGlzIEVudGl0eVN0YXRlLk1vZGlmaWVkLlxyXG4gID4gICAgIHZhciBlcyA9IGFuRW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICA+ICAgICByZXR1cm4gZXMuaXNNb2RpZmllZCgpO1xyXG5cclxuICBpcyB0aGUgc2FtZSBhc1xyXG4gID4gICAgIHJldHVybiBlcyA9PT0gRW50aXR5U3RhdGUuTW9kaWZpZWQ7XHJcbiAgKiovXHJcbiAgaXNNb2RpZmllZCgpIHtcclxuICAgIHJldHVybiB0aGlzID09PSBFbnRpdHlTdGF0ZS5Nb2RpZmllZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFJldHVybnMgd2hldGhlciBhbiBlbnRpdHlTdGF0ZSBpbnN0YW5jZSBpcyBFbnRpdHlTdGF0ZS5EZWxldGVkLlxyXG4gID4gICAgIHZhciBlcyA9IGFuRW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICA+ICAgICByZXR1cm4gZXMuaXNEZWxldGVkKCk7XHJcblxyXG4gIGlzIHRoZSBzYW1lIGFzXHJcbiAgXHJcbiAgPiAgICAgcmV0dXJuIGVzID09PSBFbnRpdHlTdGF0ZS5EZWxldGVkO1xyXG4gICoqL1xyXG4gIGlzRGVsZXRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzID09PSBFbnRpdHlTdGF0ZS5EZWxldGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJucyB3aGV0aGVyIGFuIGVudGl0eVN0YXRlIGluc3RhbmNlIGlzIEVudGl0eVN0YXRlLkRldGFjaGVkLlxyXG4gID4gICAgIHZhciBlcyA9IGFuRW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICA+ICAgICByZXR1cm4gZXMuaXNEZXRhY2hlZCgpO1xyXG5cclxuICBpcyB0aGUgc2FtZSBhc1xyXG4gID4gICAgIHJldHVybiBlcyA9PT0gRW50aXR5U3RhdGUuRGV0YWNoZWQ7XHJcbiAgKiovXHJcbiAgaXNEZXRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzID09PSBFbnRpdHlTdGF0ZS5EZXRhY2hlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFJldHVybnMgd2hldGhlciBhbiBlbnRpdHlTdGF0ZSBpbnN0YW5jZSBpcyBFbnRpdHlTdGF0ZS5VbmNoYW5nZWQgb3IgRW50aXR5U3RhdGUuTW9kaWZpZWQuXHJcbiAgPiAgICAgdmFyIGVzID0gYW5FbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlO1xyXG4gID4gICAgIHJldHVybiBlcy5pc1VuY2hhbmdlZE9yTW9kaWZpZWQoKTtcclxuXHJcbiAgaXMgdGhlIHNhbWUgYXNcclxuICA+ICAgICByZXR1cm4gZXMgPT09IEVudGl0eVN0YXRlLlVuY2hhbmdlZCB8fCBlcyA9PT0gRW50aXR5U3RhdGUuTW9kaWZpZWRcclxuICAqKi9cclxuICBpc1VuY2hhbmdlZE9yTW9kaWZpZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcyA9PT0gRW50aXR5U3RhdGUuVW5jaGFuZ2VkIHx8IHRoaXMgPT09IEVudGl0eVN0YXRlLk1vZGlmaWVkO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgd2hldGhlciBhbiBlbnRpdHlTdGF0ZSBpbnN0YW5jZSBpcyBFbnRpdHlTdGF0ZS5BZGRlZCBvciBFbnRpdHlTdGF0ZS5Nb2RpZmllZCBvciBFbnRpdHlTdGF0ZS5EZWxldGVkLlxyXG4gID4gICAgIHZhciBlcyA9IGFuRW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICA+ICAgICByZXR1cm4gZXMuaXNBZGRlZE1vZGlmaWVkT3JEZWxldGVkKCk7XHJcblxyXG4gIGlzIHRoZSBzYW1lIGFzXHJcbiAgPiAgICAgcmV0dXJuIGVzID09PSBFbnRpdHlTdGF0ZS5BZGRlZCB8fCBlcyA9PT0gRW50aXR5U3RhdGUuTW9kaWZpZWQgfHwgZXMgPT09IEVudGl0eVN0YXRlLkRlbGV0ZWRcclxuICAqKi9cclxuICBpc0FkZGVkTW9kaWZpZWRPckRlbGV0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcyA9PT0gRW50aXR5U3RhdGUuQWRkZWQgfHxcclxuICAgICAgdGhpcyA9PT0gRW50aXR5U3RhdGUuTW9kaWZpZWQgfHxcclxuICAgICAgdGhpcyA9PT0gRW50aXR5U3RhdGUuRGVsZXRlZDtcclxuICB9XHJcblxyXG59XHJcbkVudGl0eVN0YXRlLnByb3RvdHlwZS5fJHR5cGVOYW1lID0gXCJFbnRpdHlTdGF0ZVwiO1xyXG5FcnJvclsneCddID0gRW50aXR5U3RhdGUucmVzb2x2ZVN5bWJvbHMoKTtcclxuIl19
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2012-2023 IdeaBlade, Inc. All Rights Reserved.
|
|
3
|
+
* Use, reproduction, distribution, and modification of this code is subject to the terms and
|
|
4
|
+
* conditions of the IdeaBlade Breeze license, available at http://www.breezejs.com/license
|
|
5
|
+
*
|
|
6
|
+
* Author: Jay Traband
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
Base class for all Breeze enumerations, such as EntityState, DataType, FetchStrategy, MergeStrategy etc.
|
|
10
|
+
A Breeze Enum is a namespaced set of constant values. Each Enum consists of a group of related constants, called 'symbols'.
|
|
11
|
+
Unlike enums in some other environments, each 'symbol' can have both methods and properties.
|
|
12
|
+
> class DayOfWeek extends BreezeEnum {
|
|
13
|
+
> dayIndex: number;
|
|
14
|
+
> isWeekend?: boolean;
|
|
15
|
+
> nextDay() {
|
|
16
|
+
> let nextIndex = (this.dayIndex + 1) % 7;
|
|
17
|
+
> return DayOfWeek.getSymbols()[nextIndex];
|
|
18
|
+
> }
|
|
19
|
+
>
|
|
20
|
+
> static Monday = new DayOfWeek( { dayIndex: 0});
|
|
21
|
+
> static Tuesday = new DayOfWeek( { dayIndex: 1 });
|
|
22
|
+
> static Wednesday = new DayOfWeek( { dayIndex: 2 });
|
|
23
|
+
> static Thursday = new DayOfWeek( { dayIndex: 3 });
|
|
24
|
+
> static Friday = new DayOfWeek( { dayIndex: 4 });
|
|
25
|
+
> static Saturday = new DayOfWeek( { dayIndex: 5, isWeekend: true });
|
|
26
|
+
> static Sunday = new DayOfWeek( { dayIndex: 6, isWeekend: true });
|
|
27
|
+
> }
|
|
28
|
+
>
|
|
29
|
+
> describe("DayOfWeek", () => {
|
|
30
|
+
> test("should support full enum capabilities", function() {
|
|
31
|
+
> // // custom methods
|
|
32
|
+
> let dowSymbols = DayOfWeek.getSymbols();
|
|
33
|
+
> expect(dowSymbols.length).toBe(7);
|
|
34
|
+
> expect(DayOfWeek.Monday.nextDay()).toBe(DayOfWeek.Tuesday);
|
|
35
|
+
> expect(DayOfWeek.Sunday.nextDay()).toBe(DayOfWeek.Monday);
|
|
36
|
+
> // // custom properties
|
|
37
|
+
> expect(DayOfWeek.Tuesday.isWeekend).toBe(undefined);
|
|
38
|
+
> expect(DayOfWeek.Saturday.isWeekend).toBe(true);
|
|
39
|
+
> // // Standard enum capabilities
|
|
40
|
+
> expect(DayOfWeek.Thursday instanceof DayOfWeek).toBe(true);
|
|
41
|
+
> expect(BreezeEnum.isSymbol(DayOfWeek.Wednesday)).toBe(true);
|
|
42
|
+
> expect(DayOfWeek.contains(DayOfWeek.Thursday)).toBe(true);
|
|
43
|
+
> expect(DayOfWeek.Friday.toString()).toBe("Friday");
|
|
44
|
+
> });
|
|
45
|
+
> });
|
|
46
|
+
Note that we have Error['x'] = ... in some places in the code to prevent Terser from optimizing out some important calls.
|
|
47
|
+
@dynamic
|
|
48
|
+
*/
|
|
49
|
+
export class BreezeEnum {
|
|
50
|
+
/** */
|
|
51
|
+
constructor(propertiesObj) {
|
|
52
|
+
if (propertiesObj) {
|
|
53
|
+
Object.keys(propertiesObj).forEach((key) => this[key] = propertiesObj[key]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
Returns all of the symbols contained within this Enum.
|
|
58
|
+
> let symbols = DayOfWeek.getSymbols();
|
|
59
|
+
@return All of the symbols contained within this Enum.
|
|
60
|
+
**/
|
|
61
|
+
static getSymbols() {
|
|
62
|
+
return this.resolveSymbols().map(ks => ks.symbol);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
Returns the names of all of the symbols contained within this Enum.
|
|
66
|
+
> let symbols = DayOfWeek.getNames();
|
|
67
|
+
@return All of the names of the symbols contained within this Enum.
|
|
68
|
+
**/
|
|
69
|
+
static getNames() {
|
|
70
|
+
return this.resolveSymbols().map(ks => ks.name);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
Returns an Enum symbol given its name.
|
|
74
|
+
> let dayOfWeek = DayOfWeek.from("Thursday");
|
|
75
|
+
> // nowdayOfWeek === DayOfWeek.Thursday
|
|
76
|
+
@param name - Name for which an enum symbol should be returned.
|
|
77
|
+
@return The symbol that matches the name or 'undefined' if not found.
|
|
78
|
+
**/
|
|
79
|
+
static fromName(name) {
|
|
80
|
+
return this[name];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
Seals this enum so that no more symbols may be added to it. This should only be called after all symbols
|
|
84
|
+
have already been added to the Enum. This method also sets the 'name' property on each of the symbols.
|
|
85
|
+
> DayOfWeek.resolveSymbols();
|
|
86
|
+
**/
|
|
87
|
+
static resolveSymbols() {
|
|
88
|
+
if (this._resolvedNamesAndSymbols)
|
|
89
|
+
return this._resolvedNamesAndSymbols;
|
|
90
|
+
let result = [];
|
|
91
|
+
for (let key in this) {
|
|
92
|
+
if (this.hasOwnProperty(key)) {
|
|
93
|
+
let symb = this[key];
|
|
94
|
+
if (symb instanceof BreezeEnum) {
|
|
95
|
+
result.push({ name: key, symbol: symb });
|
|
96
|
+
this[key] = symb;
|
|
97
|
+
symb.name = key;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
this._resolvedNamesAndSymbols = result;
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
Returns whether an Enum contains a specified symbol.
|
|
106
|
+
> let symbol = DayOfWeek.Friday;
|
|
107
|
+
> if (DayOfWeek.contains(symbol)) {
|
|
108
|
+
> // do something
|
|
109
|
+
> }
|
|
110
|
+
@param sym - Object or symbol to test.
|
|
111
|
+
@return Whether this Enum contains the specified symbol.
|
|
112
|
+
**/
|
|
113
|
+
static contains(sym) {
|
|
114
|
+
if (!(sym instanceof BreezeEnum)) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return this[sym.name] != null;
|
|
118
|
+
}
|
|
119
|
+
// /**
|
|
120
|
+
// Checks if an object is an Enum 'symbol'. Use the 'contains' method instead of this one
|
|
121
|
+
// if you want to test for a specific Enum.
|
|
122
|
+
// > if (Enum.isSymbol(DayOfWeek.Wednesday)) {
|
|
123
|
+
// > // do something ...
|
|
124
|
+
// > };
|
|
125
|
+
// **/
|
|
126
|
+
// static isSymbol(obj: any) {
|
|
127
|
+
// return obj instanceof BreezeEnum;
|
|
128
|
+
// };
|
|
129
|
+
/** Returns the string name of this Enum */
|
|
130
|
+
toString() {
|
|
131
|
+
return this.name;
|
|
132
|
+
}
|
|
133
|
+
/** Return enum name and symbol name */
|
|
134
|
+
toJSON() {
|
|
135
|
+
return {
|
|
136
|
+
_$typeName: this['_$typeName'] || this.constructor.name,
|
|
137
|
+
name: this.name
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBd0NFO0FBQ0YsTUFBTSxPQUFPLFVBQVU7SUFTckIsT0FBTztJQUNQLFlBQVksYUFBc0I7UUFDaEMsSUFBSSxhQUFhLEVBQUU7WUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3RTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsd0JBQXdCO1lBQUUsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDeEUsSUFBSSxNQUFNLEdBQTBDLEVBQUUsQ0FBQztRQUV2RCxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFO29CQUM5QixNQUFNLENBQUMsSUFBSSxDQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7aUJBQ2pCO2FBQ0Y7U0FDRjtRQUNELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxNQUFNLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFlO1FBQzdCLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxVQUFVLENBQUMsRUFBRTtZQUNoQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBR0QsTUFBTTtJQUNOLDBGQUEwRjtJQUMxRiw0Q0FBNEM7SUFDNUMsa0RBQWtEO0lBQ2xELDhCQUE4QjtJQUM5QixXQUFXO0lBQ1gsTUFBTTtJQUNOLDhCQUE4QjtJQUM5QixzQ0FBc0M7SUFDdEMsS0FBSztJQUVMLDJDQUEyQztJQUMzQyxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsTUFBTTtRQUNKLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFLLElBQUksQ0FBQyxXQUFtQixDQUFDLElBQUk7WUFDaEUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgMjAxMi0yMDIzIElkZWFCbGFkZSwgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gIFxyXG4gKiBVc2UsIHJlcHJvZHVjdGlvbiwgZGlzdHJpYnV0aW9uLCBhbmQgbW9kaWZpY2F0aW9uIG9mIHRoaXMgY29kZSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgXHJcbiAqIGNvbmRpdGlvbnMgb2YgdGhlIElkZWFCbGFkZSBCcmVlemUgbGljZW5zZSwgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuYnJlZXplanMuY29tL2xpY2Vuc2VcclxuICpcclxuICogQXV0aG9yOiBKYXkgVHJhYmFuZFxyXG4gKi9cclxuXHJcbi8qKlxyXG5CYXNlIGNsYXNzIGZvciBhbGwgQnJlZXplIGVudW1lcmF0aW9ucywgc3VjaCBhcyBFbnRpdHlTdGF0ZSwgRGF0YVR5cGUsIEZldGNoU3RyYXRlZ3ksIE1lcmdlU3RyYXRlZ3kgZXRjLlxyXG5BIEJyZWV6ZSBFbnVtIGlzIGEgbmFtZXNwYWNlZCBzZXQgb2YgY29uc3RhbnQgdmFsdWVzLiAgRWFjaCBFbnVtIGNvbnNpc3RzIG9mIGEgZ3JvdXAgb2YgcmVsYXRlZCBjb25zdGFudHMsIGNhbGxlZCAnc3ltYm9scycuXHJcblVubGlrZSBlbnVtcyBpbiBzb21lIG90aGVyIGVudmlyb25tZW50cywgZWFjaCAnc3ltYm9sJyBjYW4gaGF2ZSBib3RoIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMuXHJcbj4gICAgIGNsYXNzIERheU9mV2VlayBleHRlbmRzIEJyZWV6ZUVudW0ge1xyXG4+ICAgICAgIGRheUluZGV4OiBudW1iZXI7XHJcbj4gICAgICAgaXNXZWVrZW5kPzogYm9vbGVhbjtcclxuPiAgICAgICBuZXh0RGF5KCkge1xyXG4+ICAgICAgICAgbGV0IG5leHRJbmRleCA9ICh0aGlzLmRheUluZGV4ICsgMSkgJSA3O1xyXG4+ICAgICAgICAgcmV0dXJuIERheU9mV2Vlay5nZXRTeW1ib2xzKClbbmV4dEluZGV4XTtcclxuPiAgICAgICB9XHJcbj5cclxuPiAgICAgICBzdGF0aWMgTW9uZGF5ID0gbmV3IERheU9mV2VlayggeyBkYXlJbmRleDogMH0pO1xyXG4+ICAgICAgIHN0YXRpYyBUdWVzZGF5ID0gbmV3IERheU9mV2VlayggeyBkYXlJbmRleDogMSB9KTtcclxuPiAgICAgICBzdGF0aWMgV2VkbmVzZGF5ID0gbmV3IERheU9mV2VlayggeyBkYXlJbmRleDogMiB9KTtcclxuPiAgICAgICBzdGF0aWMgVGh1cnNkYXkgPSBuZXcgRGF5T2ZXZWVrKCB7IGRheUluZGV4OiAzIH0pO1xyXG4+ICAgICAgIHN0YXRpYyBGcmlkYXkgPSBuZXcgRGF5T2ZXZWVrKCB7IGRheUluZGV4OiA0IH0pO1xyXG4+ICAgICAgIHN0YXRpYyBTYXR1cmRheSA9IG5ldyBEYXlPZldlZWsoIHsgZGF5SW5kZXg6IDUsIGlzV2Vla2VuZDogdHJ1ZSB9KTtcclxuPiAgICAgICBzdGF0aWMgU3VuZGF5ID0gbmV3IERheU9mV2VlayggeyBkYXlJbmRleDogNiwgaXNXZWVrZW5kOiB0cnVlIH0pO1xyXG4+ICAgICB9XHJcbj5cclxuPiAgICAgZGVzY3JpYmUoXCJEYXlPZldlZWtcIiwgKCkgPT4ge1xyXG4+ICAgICAgIHRlc3QoXCJzaG91bGQgc3VwcG9ydCBmdWxsIGVudW0gY2FwYWJpbGl0aWVzXCIsIGZ1bmN0aW9uKCkge1xyXG4+ICAgICAgICAgLy8gLy8gY3VzdG9tIG1ldGhvZHNcclxuPiAgICAgICAgIGxldCBkb3dTeW1ib2xzID0gRGF5T2ZXZWVrLmdldFN5bWJvbHMoKTtcclxuPiAgICAgICAgIGV4cGVjdChkb3dTeW1ib2xzLmxlbmd0aCkudG9CZSg3KTtcclxuPiAgICAgICAgIGV4cGVjdChEYXlPZldlZWsuTW9uZGF5Lm5leHREYXkoKSkudG9CZShEYXlPZldlZWsuVHVlc2RheSk7XHJcbj4gICAgICAgICBleHBlY3QoRGF5T2ZXZWVrLlN1bmRheS5uZXh0RGF5KCkpLnRvQmUoRGF5T2ZXZWVrLk1vbmRheSk7XHJcbj4gICAgICAgLy8gLy8gY3VzdG9tIHByb3BlcnRpZXNcclxuPiAgICAgICAgIGV4cGVjdChEYXlPZldlZWsuVHVlc2RheS5pc1dlZWtlbmQpLnRvQmUodW5kZWZpbmVkKTtcclxuPiAgICAgICAgIGV4cGVjdChEYXlPZldlZWsuU2F0dXJkYXkuaXNXZWVrZW5kKS50b0JlKHRydWUpO1xyXG4+ICAgICAgIC8vIC8vIFN0YW5kYXJkIGVudW0gY2FwYWJpbGl0aWVzXHJcbj4gICAgICAgICBleHBlY3QoRGF5T2ZXZWVrLlRodXJzZGF5IGluc3RhbmNlb2YgRGF5T2ZXZWVrKS50b0JlKHRydWUpO1xyXG4+ICAgICAgICAgZXhwZWN0KEJyZWV6ZUVudW0uaXNTeW1ib2woRGF5T2ZXZWVrLldlZG5lc2RheSkpLnRvQmUodHJ1ZSk7XHJcbj4gICAgICAgICBleHBlY3QoRGF5T2ZXZWVrLmNvbnRhaW5zKERheU9mV2Vlay5UaHVyc2RheSkpLnRvQmUodHJ1ZSk7XHJcbj4gICAgICAgICBleHBlY3QoRGF5T2ZXZWVrLkZyaWRheS50b1N0cmluZygpKS50b0JlKFwiRnJpZGF5XCIpO1xyXG4+ICAgICAgIH0pO1xyXG4+ICAgfSk7XHJcbk5vdGUgdGhhdCB3ZSBoYXZlIEVycm9yWyd4J10gPSAuLi4gaW4gc29tZSBwbGFjZXMgaW4gdGhlIGNvZGUgdG8gcHJldmVudCBUZXJzZXIgZnJvbSBvcHRpbWl6aW5nIG91dCBzb21lIGltcG9ydGFudCBjYWxscy5cclxuQGR5bmFtaWNcclxuKi9cclxuZXhwb3J0IGNsYXNzIEJyZWV6ZUVudW0ge1xyXG4gIC8vIC8vIFRPRE86IHRoaW5rIGFib3V0IENvbXBvc2l0ZUVudW0gKGZsYWdzIGltcGwpLlxyXG4gIC8qKiBUaGUgbmFtZSBvZiB0aGlzIHN5bWJvbCAqL1xyXG4gIG5hbWU6IHN0cmluZztcclxuICAvKiogVHlwZSBvZiB0aGUgZW51bTsgc2V0IGluIHByb3RvdHlwZSBvZiBlYWNoIGVudW0gKi9cclxuICBfJHR5cGVOYW1lOiBzdHJpbmc7XHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgc3RhdGljIF9yZXNvbHZlZE5hbWVzQW5kU3ltYm9sczogeyBuYW1lOiBzdHJpbmcsIHN5bWJvbDogQnJlZXplRW51bSB9W107XHJcblxyXG4gIC8qKiAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzT2JqPzogT2JqZWN0KSB7XHJcbiAgICBpZiAocHJvcGVydGllc09iaikge1xyXG4gICAgICBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzT2JqKS5mb3JFYWNoKChrZXkpID0+IHRoaXNba2V5XSA9IHByb3BlcnRpZXNPYmpba2V5XSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICBSZXR1cm5zIGFsbCBvZiB0aGUgc3ltYm9scyBjb250YWluZWQgd2l0aGluIHRoaXMgRW51bS5cclxuICA+ICAgICBsZXQgc3ltYm9scyA9IERheU9mV2Vlay5nZXRTeW1ib2xzKCk7XHJcbiAgQHJldHVybiBBbGwgb2YgdGhlIHN5bWJvbHMgY29udGFpbmVkIHdpdGhpbiB0aGlzIEVudW0uXHJcbiAgKiovXHJcbiAgc3RhdGljIGdldFN5bWJvbHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU3ltYm9scygpLm1hcChrcyA9PiBrcy5zeW1ib2wpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJucyB0aGUgbmFtZXMgb2YgYWxsIG9mIHRoZSBzeW1ib2xzIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBFbnVtLlxyXG4gID4gICAgIGxldCBzeW1ib2xzID0gRGF5T2ZXZWVrLmdldE5hbWVzKCk7XHJcbiAgQHJldHVybiAgQWxsIG9mIHRoZSBuYW1lcyBvZiB0aGUgc3ltYm9scyBjb250YWluZWQgd2l0aGluIHRoaXMgRW51bS5cclxuICAqKi9cclxuICBzdGF0aWMgZ2V0TmFtZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU3ltYm9scygpLm1hcChrcyA9PiBrcy5uYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFJldHVybnMgYW4gRW51bSBzeW1ib2wgZ2l2ZW4gaXRzIG5hbWUuXHJcbiAgPiAgICAgbGV0IGRheU9mV2VlayA9IERheU9mV2Vlay5mcm9tKFwiVGh1cnNkYXlcIik7XHJcbiAgPiAgICAgLy8gbm93ZGF5T2ZXZWVrID09PSBEYXlPZldlZWsuVGh1cnNkYXlcclxuICBAcGFyYW0gbmFtZSAtIE5hbWUgZm9yIHdoaWNoIGFuIGVudW0gc3ltYm9sIHNob3VsZCBiZSByZXR1cm5lZC5cclxuICBAcmV0dXJuIFRoZSBzeW1ib2wgdGhhdCBtYXRjaGVzIHRoZSBuYW1lIG9yICd1bmRlZmluZWQnIGlmIG5vdCBmb3VuZC5cclxuICAqKi9cclxuICBzdGF0aWMgZnJvbU5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpc1tuYW1lXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFNlYWxzIHRoaXMgZW51bSBzbyB0aGF0IG5vIG1vcmUgc3ltYm9scyBtYXkgYmUgYWRkZWQgdG8gaXQuIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGFsbCBzeW1ib2xzXHJcbiAgaGF2ZSBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gdGhlIEVudW0uIFRoaXMgbWV0aG9kIGFsc28gc2V0cyB0aGUgJ25hbWUnIHByb3BlcnR5IG9uIGVhY2ggb2YgdGhlIHN5bWJvbHMuXHJcbiAgPiAgICAgRGF5T2ZXZWVrLnJlc29sdmVTeW1ib2xzKCk7XHJcbiAgKiovXHJcbiAgc3RhdGljIHJlc29sdmVTeW1ib2xzKCkge1xyXG4gICAgaWYgKHRoaXMuX3Jlc29sdmVkTmFtZXNBbmRTeW1ib2xzKSByZXR1cm4gdGhpcy5fcmVzb2x2ZWROYW1lc0FuZFN5bWJvbHM7XHJcbiAgICBsZXQgcmVzdWx0OiB7bmFtZTogc3RyaW5nLCBzeW1ib2w6IEJyZWV6ZUVudW0gfVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMpIHtcclxuICAgICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGxldCBzeW1iID0gdGhpc1trZXldO1xyXG4gICAgICAgIGlmIChzeW1iIGluc3RhbmNlb2YgQnJlZXplRW51bSkge1xyXG4gICAgICAgICAgcmVzdWx0LnB1c2goIHsgbmFtZToga2V5LCBzeW1ib2w6IHN5bWIgfSk7XHJcbiAgICAgICAgICB0aGlzW2tleV0gPSBzeW1iO1xyXG4gICAgICAgICAgc3ltYi5uYW1lID0ga2V5O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVzb2x2ZWROYW1lc0FuZFN5bWJvbHMgPSByZXN1bHQ7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJucyB3aGV0aGVyIGFuIEVudW0gY29udGFpbnMgYSBzcGVjaWZpZWQgc3ltYm9sLlxyXG4gID4gICAgIGxldCBzeW1ib2wgPSBEYXlPZldlZWsuRnJpZGF5O1xyXG4gID4gICAgIGlmIChEYXlPZldlZWsuY29udGFpbnMoc3ltYm9sKSkge1xyXG4gID4gICAgICAgICAvLyBkbyBzb21ldGhpbmdcclxuICA+ICAgICB9XHJcbiAgQHBhcmFtIHN5bSAtIE9iamVjdCBvciBzeW1ib2wgdG8gdGVzdC5cclxuICBAcmV0dXJuIFdoZXRoZXIgdGhpcyBFbnVtIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgc3ltYm9sLlxyXG4gICoqL1xyXG4gIHN0YXRpYyBjb250YWlucyhzeW06IEJyZWV6ZUVudW0pIHtcclxuICAgIGlmICghKHN5bSBpbnN0YW5jZW9mIEJyZWV6ZUVudW0pKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpc1tzeW0ubmFtZV0gIT0gbnVsbDtcclxuICB9XHJcblxyXG5cclxuICAvLyAvKipcclxuICAvLyBDaGVja3MgaWYgYW4gb2JqZWN0IGlzIGFuIEVudW0gJ3N5bWJvbCcuIFVzZSB0aGUgJ2NvbnRhaW5zJyBtZXRob2QgaW5zdGVhZCBvZiB0aGlzIG9uZSBcclxuICAvLyBpZiB5b3Ugd2FudCB0byB0ZXN0IGZvciBhIHNwZWNpZmljIEVudW0uIFxyXG4gIC8vID4gICAgIGlmIChFbnVtLmlzU3ltYm9sKERheU9mV2Vlay5XZWRuZXNkYXkpKSB7XHJcbiAgLy8gPiAgICAgICAvLyBkbyBzb21ldGhpbmcgLi4uXHJcbiAgLy8gPiAgICAgfTtcclxuICAvLyAqKi9cclxuICAvLyBzdGF0aWMgaXNTeW1ib2wob2JqOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBCcmVlemVFbnVtO1xyXG4gIC8vIH07XHJcblxyXG4gIC8qKiBSZXR1cm5zIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGlzIEVudW0gKi9cclxuICB0b1N0cmluZygpIHtcclxuICAgIHJldHVybiB0aGlzLm5hbWU7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJuIGVudW0gbmFtZSBhbmQgc3ltYm9sIG5hbWUgKi9cclxuICB0b0pTT04oKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBfJHR5cGVOYW1lOiB0aGlzWydfJHR5cGVOYW1lJ10gfHwgKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KS5uYW1lLFxyXG4gICAgICBuYW1lOiB0aGlzLm5hbWVcclxuICAgIH07XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
import { assertParam } from './assert-param';
|
|
3
|
+
function publishCore(that, data, errorCallback) {
|
|
4
|
+
let subscribers = that._subscribers;
|
|
5
|
+
if (!subscribers)
|
|
6
|
+
return true;
|
|
7
|
+
// subscribers from outer scope.
|
|
8
|
+
subscribers.forEach(function (s) {
|
|
9
|
+
try {
|
|
10
|
+
s.callback(data);
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
e.context = "unable to publish on topic: " + that.name;
|
|
14
|
+
if (errorCallback) {
|
|
15
|
+
errorCallback(e);
|
|
16
|
+
}
|
|
17
|
+
else if (that._defaultErrorCallback) {
|
|
18
|
+
that._defaultErrorCallback(e);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
fallbackErrorHandler(e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function fallbackErrorHandler(e) {
|
|
27
|
+
// TODO: maybe log this
|
|
28
|
+
// for now do nothing;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
Class to support basic event publication and subscription semantics.
|
|
32
|
+
@dynamic
|
|
33
|
+
**/
|
|
34
|
+
export class BreezeEvent {
|
|
35
|
+
/**
|
|
36
|
+
Constructor for an Event
|
|
37
|
+
> salaryEvent = new BreezeEvent("salaryEvent", person);
|
|
38
|
+
@param name - The name of the event.
|
|
39
|
+
@param publisher - The object that will be doing the publication. i.e. the object to which this event is attached.
|
|
40
|
+
@param defaultErrorCallback - Function to call when an error occurs during subscription execution.
|
|
41
|
+
If omitted then subscriber notification failures will be ignored.
|
|
42
|
+
**/
|
|
43
|
+
constructor(name, publisher, defaultErrorCallback) {
|
|
44
|
+
/**
|
|
45
|
+
Unsubscribe from this event.
|
|
46
|
+
> // Assume order is a preexisting 'order' entity
|
|
47
|
+
> let token = order.entityAspect.propertyChanged.subscribe(function (pcEvent) {
|
|
48
|
+
> // do something
|
|
49
|
+
> });
|
|
50
|
+
> // sometime later
|
|
51
|
+
> order.entityAspect.propertyChanged.unsubscribe(token);
|
|
52
|
+
@param unsubKey - The value returned from the 'subscribe' method may be used to unsubscribe here.
|
|
53
|
+
@return Whether unsubscription occured. This will return false if already unsubscribed or if the key simply
|
|
54
|
+
cannot be found.
|
|
55
|
+
**/
|
|
56
|
+
this.unsubscribe = function (unsubKey) {
|
|
57
|
+
if (!this._subscribers)
|
|
58
|
+
return false;
|
|
59
|
+
let subs = this._subscribers;
|
|
60
|
+
let ix = core.arrayIndexOf(subs, function (s) {
|
|
61
|
+
return s.unsubKey === unsubKey;
|
|
62
|
+
});
|
|
63
|
+
if (ix !== -1) {
|
|
64
|
+
subs.splice(ix, 1);
|
|
65
|
+
if (subs.length === 0) {
|
|
66
|
+
this._subscribers = null;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
assertParam(name, "eventName").isNonEmptyString().check();
|
|
75
|
+
assertParam(publisher, "publisher").isObject().check();
|
|
76
|
+
this.name = name;
|
|
77
|
+
// register the name
|
|
78
|
+
BreezeEvent.__eventNameMap[name] = true;
|
|
79
|
+
this.publisher = publisher;
|
|
80
|
+
if (defaultErrorCallback) {
|
|
81
|
+
this._defaultErrorCallback = defaultErrorCallback;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
Publish data for this event.
|
|
86
|
+
> // Assume 'salaryEvent' is previously constructed Event
|
|
87
|
+
> salaryEvent.publish( { eventType: "payRaise", amount: 100 });
|
|
88
|
+
|
|
89
|
+
This event can also be published asychronously
|
|
90
|
+
> salaryEvent.publish( { eventType: "payRaise", amount: 100 }, true);
|
|
91
|
+
|
|
92
|
+
And we can add a handler in case the subscriber 'mishandles' the event.
|
|
93
|
+
> salaryEvent.publish( { eventType: "payRaise", amount: 100 }, true, function(error) {
|
|
94
|
+
> // do something with the 'error' object
|
|
95
|
+
> });
|
|
96
|
+
@param data - Data to publish
|
|
97
|
+
@param publishAsync - (default=false) Whether to publish asynchonously or not.
|
|
98
|
+
@param errorCallback - Function to be called for any errors that occur during publication. If omitted,
|
|
99
|
+
errors will be eaten.
|
|
100
|
+
@return false if event is disabled; true otherwise.
|
|
101
|
+
**/
|
|
102
|
+
publish(data, publishAsync = false, errorCallback) {
|
|
103
|
+
if (!BreezeEvent._isEnabled(this.name, this.publisher))
|
|
104
|
+
return false;
|
|
105
|
+
if (publishAsync === true) {
|
|
106
|
+
setTimeout(publishCore, 0, this, data, errorCallback);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
publishCore(this, data, errorCallback);
|
|
110
|
+
}
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
Publish data for this event asynchronously.
|
|
115
|
+
> // Assume 'salaryEvent' is previously constructed Event
|
|
116
|
+
> salaryEvent.publishAsync( { eventType: "payRaise", amount: 100 });
|
|
117
|
+
|
|
118
|
+
And we can add a handler in case the subscriber 'mishandles' the event.
|
|
119
|
+
> salaryEvent.publishAsync( { eventType: "payRaise", amount: 100 }, function(error) {
|
|
120
|
+
> // do something with the 'error' object
|
|
121
|
+
> });
|
|
122
|
+
@param data - Data to publish
|
|
123
|
+
@param errorCallback - Function to be called for any errors that occur during publication. If omitted,
|
|
124
|
+
errors will be eaten.
|
|
125
|
+
**/
|
|
126
|
+
publishAsync(data, errorCallback) {
|
|
127
|
+
this.publish(data, true, errorCallback);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
Subscribe to this event.
|
|
131
|
+
> // Assume 'salaryEvent' is previously constructed Event
|
|
132
|
+
> salaryEvent.subscribe(function (eventArgs) {
|
|
133
|
+
> if (eventArgs.eventType === "payRaise") {
|
|
134
|
+
> // do something
|
|
135
|
+
> }
|
|
136
|
+
> });
|
|
137
|
+
|
|
138
|
+
There are several built in Breeze events, such as [[EntityAspect.propertyChanged]], [[EntityAspect.validationErrorsChanged]] as well.
|
|
139
|
+
> // Assume order is a preexisting 'order' entity
|
|
140
|
+
> order.entityAspect.propertyChanged.subscribe(function (pcEvent) {
|
|
141
|
+
> if ( pcEvent.propertyName === "OrderDate") {
|
|
142
|
+
> // do something
|
|
143
|
+
> }
|
|
144
|
+
> });
|
|
145
|
+
@param callback- Function to be called whenever 'data' is published for this event.
|
|
146
|
+
@param callback.data - {Object} Whatever 'data' was published. This should be documented on the specific event.
|
|
147
|
+
@return This is a key for 'unsubscription'. It can be passed to the 'unsubscribe' method.
|
|
148
|
+
**/
|
|
149
|
+
subscribe(callback) {
|
|
150
|
+
if (!this._subscribers) {
|
|
151
|
+
this._subscribers = [];
|
|
152
|
+
}
|
|
153
|
+
let unsubKey = BreezeEvent.__nextUnsubKey;
|
|
154
|
+
this._subscribers.push({ unsubKey: unsubKey, callback: callback });
|
|
155
|
+
++BreezeEvent.__nextUnsubKey;
|
|
156
|
+
return unsubKey;
|
|
157
|
+
}
|
|
158
|
+
/** remove all subscribers */
|
|
159
|
+
clear() {
|
|
160
|
+
this._subscribers = null;
|
|
161
|
+
}
|
|
162
|
+
/** event bubbling - document later. */
|
|
163
|
+
// null or undefined 'getParentFn' means Event does not need to bubble i.e. that it is always enabled - .
|
|
164
|
+
static bubbleEvent(target, getParentFn) {
|
|
165
|
+
target._getEventParent = getParentFn || null;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
Enables or disables the named event for an object and all of its children.
|
|
169
|
+
> BreezeEvent.enable(“propertyChanged”, myEntityManager, false)
|
|
170
|
+
|
|
171
|
+
will disable all EntityAspect.propertyChanged events within a EntityManager.
|
|
172
|
+
> BreezeEvent.enable(“propertyChanged”, myEntityManager, true)
|
|
173
|
+
|
|
174
|
+
will enable all EntityAspect.propertyChanged events within a EntityManager.
|
|
175
|
+
> BreezeEvent.enable(“propertyChanged”, myEntity.entityAspect, false)
|
|
176
|
+
|
|
177
|
+
will disable EntityAspect.propertyChanged events for a specific entity.
|
|
178
|
+
> BreezeEvent.enable(“propertyChanged”, myEntity.entityAspect, null)
|
|
179
|
+
|
|
180
|
+
will removes any enabling / disabling at the entity aspect level so now any 'Event.enable' calls at the EntityManager level,
|
|
181
|
+
made either previously or in the future, will control notification.
|
|
182
|
+
> BreezeEvent.enable(“validationErrorsChanged”, myEntityManager, function(em) {
|
|
183
|
+
> return em.customTag === “blue”;
|
|
184
|
+
> })
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
will either enable or disable myEntityManager based on the current value of a ‘customTag’ property on myEntityManager.
|
|
188
|
+
Note that this is dynamic, changing the customTag value will cause events to be enabled or disabled immediately.
|
|
189
|
+
@param eventName - The name of the event.
|
|
190
|
+
@param target - The object at which enabling or disabling will occur. All event notifications that occur to this object or
|
|
191
|
+
children of this object will be enabled or disabled.
|
|
192
|
+
@param isEnabled - A boolean, a null or a function that returns either a boolean or a null.
|
|
193
|
+
**/
|
|
194
|
+
static enable(eventName, obj, isEnabled) {
|
|
195
|
+
assertParam(eventName, "eventName").isNonEmptyString().check();
|
|
196
|
+
assertParam(obj, "obj").isObject().check();
|
|
197
|
+
assertParam(isEnabled, "isEnabled").isBoolean().isOptional().or().isFunction().check();
|
|
198
|
+
let ob = obj;
|
|
199
|
+
if (!ob._$eventMap) {
|
|
200
|
+
ob._$eventMap = {};
|
|
201
|
+
}
|
|
202
|
+
ob._$eventMap[eventName] = isEnabled;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
Returns whether for a specific event and a specific object and its children, notification is enabled or disabled or not set.
|
|
206
|
+
> BreezeEvent.isEnabled(“propertyChanged”, myEntityManager)
|
|
207
|
+
>
|
|
208
|
+
@param eventName - The name of the event.
|
|
209
|
+
@param target - The object for which we want to know if notifications are enabled.
|
|
210
|
+
@return A null is returned if this value has not been set.
|
|
211
|
+
**/
|
|
212
|
+
static isEnabled(eventName, obj) {
|
|
213
|
+
assertParam(eventName, "eventName").isNonEmptyString().check();
|
|
214
|
+
assertParam(obj, "obj").isObject().check();
|
|
215
|
+
// null is ok - it just means that the object is at the top level.
|
|
216
|
+
if (obj._getEventParent === undefined) {
|
|
217
|
+
throw new Error("This object does not support event enabling/disabling");
|
|
218
|
+
}
|
|
219
|
+
// return ctor._isEnabled(getFullEventName(eventName), obj);
|
|
220
|
+
return BreezeEvent._isEnabled(eventName, 3);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** @hidden @internal */
|
|
224
|
+
BreezeEvent.__eventNameMap = {};
|
|
225
|
+
/** @hidden @internal */
|
|
226
|
+
BreezeEvent.__nextUnsubKey = 1;
|
|
227
|
+
/** @hidden @internal */
|
|
228
|
+
BreezeEvent._isEnabled = function (eventName, obj) {
|
|
229
|
+
let isEnabled = null;
|
|
230
|
+
let ob = obj;
|
|
231
|
+
let eventMap = ob._$eventMap;
|
|
232
|
+
if (eventMap) {
|
|
233
|
+
isEnabled = eventMap[eventName];
|
|
234
|
+
}
|
|
235
|
+
if (isEnabled != null) {
|
|
236
|
+
if (typeof isEnabled === 'function') {
|
|
237
|
+
return !!isEnabled(obj);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
return !!isEnabled;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
let parent = ob._getEventParent && ob._getEventParent();
|
|
245
|
+
if (parent) {
|
|
246
|
+
return !!this._isEnabled(eventName, parent);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
// default if not explicitly disabled.
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
// legacy support - deliberately not typed
|
|
255
|
+
core.Event = BreezeEvent;
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsU0FBUyxXQUFXLENBQUksSUFBb0IsRUFBRSxJQUFPLEVBQUUsYUFBaUM7SUFDdEYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNwQyxJQUFJLENBQUMsV0FBVztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzlCLGdDQUFnQztJQUNoQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUM3QixJQUFJO1lBQ0YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsQ0FBQyxDQUFDLE9BQU8sR0FBRyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3ZELElBQUksYUFBYSxFQUFFO2dCQUNqQixhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbEI7aUJBQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QjtTQUNGO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxDQUFRO0lBQ3BDLHVCQUF1QjtJQUN2QixzQkFBc0I7QUFDeEIsQ0FBQztBQVNEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBZ0J0Qjs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxJQUFZLEVBQUUsU0FBaUIsRUFBRSxvQkFBd0M7UUEyRnJGOzs7Ozs7Ozs7OztXQVdHO1FBQ0gsZ0JBQVcsR0FBRyxVQUFVLFFBQWdCO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUNyQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQzdCLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztpQkFDMUI7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDO1FBckhBLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxRCxXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLG9CQUFvQjtRQUNwQixXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLG9CQUFvQixFQUFFO1lBQ3hCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSCxPQUFPLENBQUMsSUFBTyxFQUFFLGVBQXdCLEtBQUssRUFBRSxhQUFpQztRQUUvRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUVyRSxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDekIsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0wsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxZQUFZLENBQUMsSUFBTyxFQUFFLGFBQWdDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSCxTQUFTLENBQUMsUUFBMEI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7U0FDeEI7UUFFRCxJQUFJLFFBQVEsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUM7UUFDN0IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQStCRCw2QkFBNkI7SUFDN0IsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLEdBQVEsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1Q0FBdUM7SUFFdkMseUdBQXlHO0lBQ3pHLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBVyxFQUFFLFdBQXlCO1FBQ3ZELE1BQU0sQ0FBQyxlQUFlLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMEJHO0lBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFpQixFQUFFLEdBQVcsRUFBRSxTQUEwQztRQUNyRixXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0QsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZGLElBQUksRUFBRSxHQUFRLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRTtZQUNsQixFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztTQUNwQjtRQUNELEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFpQixFQUFFLEdBQVc7UUFDN0MsV0FBVyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9ELFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0Msa0VBQWtFO1FBQ2xFLElBQVUsR0FBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsNERBQTREO1FBQzVELE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7QUFsTkQsd0JBQXdCO0FBQ2pCLDBCQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzNCLHdCQUF3QjtBQUNqQiwwQkFBYyxHQUFHLENBQUMsQ0FBQztBQWlOMUIsd0JBQXdCO0FBQ2pCLHNCQUFVLEdBQUcsVUFBVSxTQUFpQixFQUFFLEdBQVc7SUFDMUQsSUFBSSxTQUFTLEdBQVEsSUFBSSxDQUFDO0lBQzFCLElBQUksRUFBRSxHQUFRLEdBQUcsQ0FBQztJQUNsQixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO0lBQzdCLElBQUksUUFBUSxFQUFFO1FBQ1osU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNqQztJQUNELElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtRQUNyQixJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUNuQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNwQjtLQUNGO1NBQU07UUFDTCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4RCxJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO2FBQU07WUFDTCxzQ0FBc0M7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0FBQ0gsQ0FBQyxDQUFDO0FBS0osMENBQTBDO0FBQ3pDLElBQVksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IGFzc2VydFBhcmFtIH0gZnJvbSAnLi9hc3NlcnQtcGFyYW0nO1xyXG5cclxuZnVuY3Rpb24gcHVibGlzaENvcmU8VD4odGhhdDogQnJlZXplRXZlbnQ8VD4sIGRhdGE6IFQsIGVycm9yQ2FsbGJhY2s/OiAoZTogRXJyb3IpID0+IGFueSkge1xyXG4gIGxldCBzdWJzY3JpYmVycyA9IHRoYXQuX3N1YnNjcmliZXJzO1xyXG4gIGlmICghc3Vic2NyaWJlcnMpIHJldHVybiB0cnVlO1xyXG4gIC8vIHN1YnNjcmliZXJzIGZyb20gb3V0ZXIgc2NvcGUuXHJcbiAgc3Vic2NyaWJlcnMuZm9yRWFjaChmdW5jdGlvbiAocykge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcy5jYWxsYmFjayhkYXRhKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgZS5jb250ZXh0ID0gXCJ1bmFibGUgdG8gcHVibGlzaCBvbiB0b3BpYzogXCIgKyB0aGF0Lm5hbWU7XHJcbiAgICAgIGlmIChlcnJvckNhbGxiYWNrKSB7XHJcbiAgICAgICAgZXJyb3JDYWxsYmFjayhlKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGF0Ll9kZWZhdWx0RXJyb3JDYWxsYmFjaykge1xyXG4gICAgICAgIHRoYXQuX2RlZmF1bHRFcnJvckNhbGxiYWNrKGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZhbGxiYWNrRXJyb3JIYW5kbGVyKGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZhbGxiYWNrRXJyb3JIYW5kbGVyKGU6IEVycm9yKSB7XHJcbiAgLy8gVE9ETzogbWF5YmUgbG9nIHRoaXNcclxuICAvLyBmb3Igbm93IGRvIG5vdGhpbmc7XHJcbn1cclxuXHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb24ge1xyXG4gIHVuc3ViS2V5OiBudW1iZXI7XHJcbiAgY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IGFueTtcclxufVxyXG5cclxuLyoqXHJcbkNsYXNzIHRvIHN1cHBvcnQgYmFzaWMgZXZlbnQgcHVibGljYXRpb24gYW5kIHN1YnNjcmlwdGlvbiBzZW1hbnRpY3MuXHJcbkBkeW5hbWljXHJcbioqL1xyXG5leHBvcnQgY2xhc3MgQnJlZXplRXZlbnQ8VD4ge1xyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIHN0YXRpYyBfX2V2ZW50TmFtZU1hcCA9IHt9O1xyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIHN0YXRpYyBfX25leHRVbnN1YktleSA9IDE7XHJcbiAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgRXZlbnQgKi9cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgLyoqIFRoZSBvYmplY3QgZG9pbmcgdGhlIHB1YmxpY2F0aW9uLiBpLmUuIHRoZSBvYmplY3QgdG8gd2hpY2ggdGhpcyBldmVudCBpcyBhdHRhY2hlZC4gKi9cclxuICBwdWJsaXNoZXI6IE9iamVjdDtcclxuXHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgX3N1YnNjcmliZXJzOiBTdWJzY3JpcHRpb25bXTtcclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBfZGVmYXVsdEVycm9yQ2FsbGJhY2s6IChlOiBFcnJvcikgPT4gYW55O1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgQ29uc3RydWN0b3IgZm9yIGFuIEV2ZW50XHJcbiAgPiAgICAgc2FsYXJ5RXZlbnQgPSBuZXcgQnJlZXplRXZlbnQoXCJzYWxhcnlFdmVudFwiLCBwZXJzb24pO1xyXG4gIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxyXG4gIEBwYXJhbSBwdWJsaXNoZXIgLSBUaGUgb2JqZWN0IHRoYXQgd2lsbCBiZSBkb2luZyB0aGUgcHVibGljYXRpb24uIGkuZS4gdGhlIG9iamVjdCB0byB3aGljaCB0aGlzIGV2ZW50IGlzIGF0dGFjaGVkLlxyXG4gIEBwYXJhbSBkZWZhdWx0RXJyb3JDYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHN1YnNjcmlwdGlvbiBleGVjdXRpb24uIFxyXG4gIElmIG9taXR0ZWQgdGhlbiBzdWJzY3JpYmVyIG5vdGlmaWNhdGlvbiBmYWlsdXJlcyB3aWxsIGJlIGlnbm9yZWQuXHJcbiAgKiovXHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwdWJsaXNoZXI6IE9iamVjdCwgZGVmYXVsdEVycm9yQ2FsbGJhY2s/OiAoZTogRXJyb3IpID0+IGFueSkge1xyXG4gICAgYXNzZXJ0UGFyYW0obmFtZSwgXCJldmVudE5hbWVcIikuaXNOb25FbXB0eVN0cmluZygpLmNoZWNrKCk7XHJcbiAgICBhc3NlcnRQYXJhbShwdWJsaXNoZXIsIFwicHVibGlzaGVyXCIpLmlzT2JqZWN0KCkuY2hlY2soKTtcclxuXHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgLy8gcmVnaXN0ZXIgdGhlIG5hbWVcclxuICAgIEJyZWV6ZUV2ZW50Ll9fZXZlbnROYW1lTWFwW25hbWVdID0gdHJ1ZTtcclxuICAgIHRoaXMucHVibGlzaGVyID0gcHVibGlzaGVyO1xyXG4gICAgaWYgKGRlZmF1bHRFcnJvckNhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMuX2RlZmF1bHRFcnJvckNhbGxiYWNrID0gZGVmYXVsdEVycm9yQ2FsbGJhY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICBQdWJsaXNoIGRhdGEgZm9yIHRoaXMgZXZlbnQuXHJcbiAgPiAgICAgIC8vIEFzc3VtZSAnc2FsYXJ5RXZlbnQnIGlzIHByZXZpb3VzbHkgY29uc3RydWN0ZWQgRXZlbnRcclxuICA+ICAgICAgc2FsYXJ5RXZlbnQucHVibGlzaCggeyBldmVudFR5cGU6IFwicGF5UmFpc2VcIiwgYW1vdW50OiAxMDAgfSk7XHJcblxyXG4gIFRoaXMgZXZlbnQgY2FuIGFsc28gYmUgcHVibGlzaGVkIGFzeWNocm9ub3VzbHlcclxuICA+ICAgICAgc2FsYXJ5RXZlbnQucHVibGlzaCggeyBldmVudFR5cGU6IFwicGF5UmFpc2VcIiwgYW1vdW50OiAxMDAgfSwgdHJ1ZSk7XHJcblxyXG4gIEFuZCB3ZSBjYW4gYWRkIGEgaGFuZGxlciBpbiBjYXNlIHRoZSBzdWJzY3JpYmVyICdtaXNoYW5kbGVzJyB0aGUgZXZlbnQuXHJcbiAgPiAgICAgIHNhbGFyeUV2ZW50LnB1Ymxpc2goIHsgZXZlbnRUeXBlOiBcInBheVJhaXNlXCIsIGFtb3VudDogMTAwIH0sIHRydWUsIGZ1bmN0aW9uKGVycm9yKSB7XHJcbiAgPiAgICAgICAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgJ2Vycm9yJyBvYmplY3RcclxuICA+ICAgICAgfSk7XHJcbiAgQHBhcmFtIGRhdGEgLSBEYXRhIHRvIHB1Ymxpc2hcclxuICBAcGFyYW0gcHVibGlzaEFzeW5jIC0gKGRlZmF1bHQ9ZmFsc2UpIFdoZXRoZXIgdG8gcHVibGlzaCBhc3luY2hvbm91c2x5IG9yIG5vdC5cclxuICBAcGFyYW0gZXJyb3JDYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmb3IgYW55IGVycm9ycyB0aGF0IG9jY3VyIGR1cmluZyBwdWJsaWNhdGlvbi4gSWYgb21pdHRlZCxcclxuICBlcnJvcnMgd2lsbCBiZSBlYXRlbi5cclxuICBAcmV0dXJuIGZhbHNlIGlmIGV2ZW50IGlzIGRpc2FibGVkOyB0cnVlIG90aGVyd2lzZS5cclxuICAqKi9cclxuICBwdWJsaXNoKGRhdGE6IFQsIHB1Ymxpc2hBc3luYzogYm9vbGVhbiA9IGZhbHNlLCBlcnJvckNhbGxiYWNrPzogKGU6IEVycm9yKSA9PiBhbnkpIHtcclxuXHJcbiAgICBpZiAoIUJyZWV6ZUV2ZW50Ll9pc0VuYWJsZWQodGhpcy5uYW1lLCB0aGlzLnB1Ymxpc2hlcikpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAocHVibGlzaEFzeW5jID09PSB0cnVlKSB7XHJcbiAgICAgIHNldFRpbWVvdXQocHVibGlzaENvcmUsIDAsIHRoaXMsIGRhdGEsIGVycm9yQ2FsbGJhY2spO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHVibGlzaENvcmUodGhpcywgZGF0YSwgZXJyb3JDYWxsYmFjayk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFB1Ymxpc2ggZGF0YSBmb3IgdGhpcyBldmVudCBhc3luY2hyb25vdXNseS5cclxuICA+ICAgICAgLy8gQXNzdW1lICdzYWxhcnlFdmVudCcgaXMgcHJldmlvdXNseSBjb25zdHJ1Y3RlZCBFdmVudFxyXG4gID4gICAgICBzYWxhcnlFdmVudC5wdWJsaXNoQXN5bmMoIHsgZXZlbnRUeXBlOiBcInBheVJhaXNlXCIsIGFtb3VudDogMTAwIH0pO1xyXG5cclxuICBBbmQgd2UgY2FuIGFkZCBhIGhhbmRsZXIgaW4gY2FzZSB0aGUgc3Vic2NyaWJlciAnbWlzaGFuZGxlcycgdGhlIGV2ZW50LlxyXG4gID4gICAgICBzYWxhcnlFdmVudC5wdWJsaXNoQXN5bmMoIHsgZXZlbnRUeXBlOiBcInBheVJhaXNlXCIsIGFtb3VudDogMTAwIH0sIGZ1bmN0aW9uKGVycm9yKSB7XHJcbiAgPiAgICAgICAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgJ2Vycm9yJyBvYmplY3RcclxuICA+ICAgICAgfSk7XHJcbiAgQHBhcmFtIGRhdGEgLSBEYXRhIHRvIHB1Ymxpc2hcclxuICBAcGFyYW0gZXJyb3JDYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmb3IgYW55IGVycm9ycyB0aGF0IG9jY3VyIGR1cmluZyBwdWJsaWNhdGlvbi4gSWYgb21pdHRlZCxcclxuICBlcnJvcnMgd2lsbCBiZSBlYXRlbi5cclxuICAqKi9cclxuICBwdWJsaXNoQXN5bmMoZGF0YTogVCwgZXJyb3JDYWxsYmFjazogKGU6IEVycm9yKSA9PiBhbnkpIHtcclxuICAgIHRoaXMucHVibGlzaChkYXRhLCB0cnVlLCBlcnJvckNhbGxiYWNrKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFN1YnNjcmliZSB0byB0aGlzIGV2ZW50LlxyXG4gID4gICAgICAvLyBBc3N1bWUgJ3NhbGFyeUV2ZW50JyBpcyBwcmV2aW91c2x5IGNvbnN0cnVjdGVkIEV2ZW50XHJcbiAgPiAgICAgIHNhbGFyeUV2ZW50LnN1YnNjcmliZShmdW5jdGlvbiAoZXZlbnRBcmdzKSB7XHJcbiAgPiAgICAgICAgICBpZiAoZXZlbnRBcmdzLmV2ZW50VHlwZSA9PT0gXCJwYXlSYWlzZVwiKSB7XHJcbiAgPiAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXHJcbiAgPiAgICAgICAgICB9XHJcbiAgPiAgICAgIH0pO1xyXG5cclxuICBUaGVyZSBhcmUgc2V2ZXJhbCBidWlsdCBpbiBCcmVlemUgZXZlbnRzLCBzdWNoIGFzIFtbRW50aXR5QXNwZWN0LnByb3BlcnR5Q2hhbmdlZF1dLCBbW0VudGl0eUFzcGVjdC52YWxpZGF0aW9uRXJyb3JzQ2hhbmdlZF1dIGFzIHdlbGwuXHJcbiAgPiAgICAgIC8vIEFzc3VtZSBvcmRlciBpcyBhIHByZWV4aXN0aW5nICdvcmRlcicgZW50aXR5XHJcbiAgPiAgICAgIG9yZGVyLmVudGl0eUFzcGVjdC5wcm9wZXJ0eUNoYW5nZWQuc3Vic2NyaWJlKGZ1bmN0aW9uIChwY0V2ZW50KSB7XHJcbiAgPiAgICAgICAgICBpZiAoIHBjRXZlbnQucHJvcGVydHlOYW1lID09PSBcIk9yZGVyRGF0ZVwiKSB7XHJcbiAgPiAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXHJcbiAgPiAgICAgICAgICB9XHJcbiAgPiAgICAgIH0pO1xyXG4gIEBwYXJhbSBjYWxsYmFjay0gRnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW5ldmVyICdkYXRhJyBpcyBwdWJsaXNoZWQgZm9yIHRoaXMgZXZlbnQuXHJcbiAgQHBhcmFtIGNhbGxiYWNrLmRhdGEgLSB7T2JqZWN0fSBXaGF0ZXZlciAnZGF0YScgd2FzIHB1Ymxpc2hlZC4gIFRoaXMgc2hvdWxkIGJlIGRvY3VtZW50ZWQgb24gdGhlIHNwZWNpZmljIGV2ZW50LlxyXG4gIEByZXR1cm4gVGhpcyBpcyBhIGtleSBmb3IgJ3Vuc3Vic2NyaXB0aW9uJy4gIEl0IGNhbiBiZSBwYXNzZWQgdG8gdGhlICd1bnN1YnNjcmliZScgbWV0aG9kLlxyXG4gICoqL1xyXG4gIHN1YnNjcmliZShjYWxsYmFjazogKGRhdGE6IFQpID0+IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLl9zdWJzY3JpYmVycykge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpYmVycyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB1bnN1YktleSA9IEJyZWV6ZUV2ZW50Ll9fbmV4dFVuc3ViS2V5O1xyXG4gICAgdGhpcy5fc3Vic2NyaWJlcnMucHVzaCh7IHVuc3ViS2V5OiB1bnN1YktleSwgY2FsbGJhY2s6IGNhbGxiYWNrIH0pO1xyXG4gICAgKytCcmVlemVFdmVudC5fX25leHRVbnN1YktleTtcclxuICAgIHJldHVybiB1bnN1YktleTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFVuc3Vic2NyaWJlIGZyb20gdGhpcyBldmVudC5cclxuICA+ICAgICAgLy8gQXNzdW1lIG9yZGVyIGlzIGEgcHJlZXhpc3RpbmcgJ29yZGVyJyBlbnRpdHlcclxuICA+ICAgICAgbGV0IHRva2VuID0gb3JkZXIuZW50aXR5QXNwZWN0LnByb3BlcnR5Q2hhbmdlZC5zdWJzY3JpYmUoZnVuY3Rpb24gKHBjRXZlbnQpIHtcclxuICA+ICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcclxuICA+ICAgICAgfSk7XHJcbiAgPiAgICAgIC8vIHNvbWV0aW1lIGxhdGVyXHJcbiAgPiAgICAgIG9yZGVyLmVudGl0eUFzcGVjdC5wcm9wZXJ0eUNoYW5nZWQudW5zdWJzY3JpYmUodG9rZW4pO1xyXG4gIEBwYXJhbSB1bnN1YktleSAtIFRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tIHRoZSAnc3Vic2NyaWJlJyBtZXRob2QgbWF5IGJlIHVzZWQgdG8gdW5zdWJzY3JpYmUgaGVyZS5cclxuICBAcmV0dXJuIFdoZXRoZXIgdW5zdWJzY3JpcHRpb24gb2NjdXJlZC4gVGhpcyB3aWxsIHJldHVybiBmYWxzZSBpZiBhbHJlYWR5IHVuc3Vic2NyaWJlZCBvciBpZiB0aGUga2V5IHNpbXBseVxyXG4gIGNhbm5vdCBiZSBmb3VuZC5cclxuICAqKi9cclxuICB1bnN1YnNjcmliZSA9IGZ1bmN0aW9uICh1bnN1YktleTogbnVtYmVyKSB7XHJcbiAgICBpZiAoIXRoaXMuX3N1YnNjcmliZXJzKSByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgc3VicyA9IHRoaXMuX3N1YnNjcmliZXJzO1xyXG4gICAgbGV0IGl4ID0gY29yZS5hcnJheUluZGV4T2Yoc3VicywgZnVuY3Rpb24gKHMpIHtcclxuICAgICAgcmV0dXJuIHMudW5zdWJLZXkgPT09IHVuc3ViS2V5O1xyXG4gICAgfSk7XHJcbiAgICBpZiAoaXggIT09IC0xKSB7XHJcbiAgICAgIHN1YnMuc3BsaWNlKGl4LCAxKTtcclxuICAgICAgaWYgKHN1YnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlcnMgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKiByZW1vdmUgYWxsIHN1YnNjcmliZXJzICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVycyA9IDxhbnk+bnVsbDtcclxuICB9XHJcblxyXG4gIC8qKiBldmVudCBidWJibGluZyAtIGRvY3VtZW50IGxhdGVyLiAqL1xyXG5cclxuICAvLyBudWxsIG9yIHVuZGVmaW5lZCAnZ2V0UGFyZW50Rm4nIG1lYW5zIEV2ZW50IGRvZXMgbm90IG5lZWQgdG8gYnViYmxlIGkuZS4gdGhhdCBpdCBpcyBhbHdheXMgZW5hYmxlZCAtIC5cclxuICBzdGF0aWMgYnViYmxlRXZlbnQodGFyZ2V0OiBhbnksIGdldFBhcmVudEZuPzogKCgpID0+IGFueSkpIHtcclxuICAgIHRhcmdldC5fZ2V0RXZlbnRQYXJlbnQgPSBnZXRQYXJlbnRGbiB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgbmFtZWQgZXZlbnQgZm9yIGFuIG9iamVjdCBhbmQgYWxsIG9mIGl0cyBjaGlsZHJlbi5cclxuICA+ICAgICAgQnJlZXplRXZlbnQuZW5hYmxlKOKAnHByb3BlcnR5Q2hhbmdlZOKAnSwgbXlFbnRpdHlNYW5hZ2VyLCBmYWxzZSlcclxuXHJcbiAgd2lsbCBkaXNhYmxlIGFsbCBFbnRpdHlBc3BlY3QucHJvcGVydHlDaGFuZ2VkIGV2ZW50cyB3aXRoaW4gYSBFbnRpdHlNYW5hZ2VyLlxyXG4gID4gICAgICBCcmVlemVFdmVudC5lbmFibGUo4oCccHJvcGVydHlDaGFuZ2Vk4oCdLCBteUVudGl0eU1hbmFnZXIsIHRydWUpXHJcblxyXG4gIHdpbGwgZW5hYmxlIGFsbCBFbnRpdHlBc3BlY3QucHJvcGVydHlDaGFuZ2VkIGV2ZW50cyB3aXRoaW4gYSBFbnRpdHlNYW5hZ2VyLlxyXG4gID4gICAgICBCcmVlemVFdmVudC5lbmFibGUo4oCccHJvcGVydHlDaGFuZ2Vk4oCdLCBteUVudGl0eS5lbnRpdHlBc3BlY3QsIGZhbHNlKVxyXG5cclxuICB3aWxsIGRpc2FibGUgRW50aXR5QXNwZWN0LnByb3BlcnR5Q2hhbmdlZCBldmVudHMgZm9yIGEgc3BlY2lmaWMgZW50aXR5LlxyXG4gID4gICAgICBCcmVlemVFdmVudC5lbmFibGUo4oCccHJvcGVydHlDaGFuZ2Vk4oCdLCBteUVudGl0eS5lbnRpdHlBc3BlY3QsIG51bGwpXHJcblxyXG4gIHdpbGwgcmVtb3ZlcyBhbnkgZW5hYmxpbmcgLyBkaXNhYmxpbmcgYXQgdGhlIGVudGl0eSBhc3BlY3QgbGV2ZWwgc28gbm93IGFueSAnRXZlbnQuZW5hYmxlJyBjYWxscyBhdCB0aGUgRW50aXR5TWFuYWdlciBsZXZlbCxcclxuICBtYWRlIGVpdGhlciBwcmV2aW91c2x5IG9yIGluIHRoZSBmdXR1cmUsIHdpbGwgY29udHJvbCBub3RpZmljYXRpb24uXHJcbiAgPiAgICAgIEJyZWV6ZUV2ZW50LmVuYWJsZSjigJx2YWxpZGF0aW9uRXJyb3JzQ2hhbmdlZOKAnSwgbXlFbnRpdHlNYW5hZ2VyLCBmdW5jdGlvbihlbSkge1xyXG4gID4gICAgICAgICAgcmV0dXJuIGVtLmN1c3RvbVRhZyA9PT0g4oCcYmx1ZeKAnTtcclxuICA+ICAgICAgfSlcclxuXHJcblxyXG4gIHdpbGwgZWl0aGVyIGVuYWJsZSBvciBkaXNhYmxlIG15RW50aXR5TWFuYWdlciBiYXNlZCBvbiB0aGUgY3VycmVudCB2YWx1ZSBvZiBhIOKAmGN1c3RvbVRhZ+KAmSBwcm9wZXJ0eSBvbiBteUVudGl0eU1hbmFnZXIuXHJcbiAgTm90ZSB0aGF0IHRoaXMgaXMgZHluYW1pYywgY2hhbmdpbmcgdGhlIGN1c3RvbVRhZyB2YWx1ZSB3aWxsIGNhdXNlIGV2ZW50cyB0byBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGltbWVkaWF0ZWx5LlxyXG4gIEBwYXJhbSBldmVudE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXHJcbiAgQHBhcmFtIHRhcmdldCAtIFRoZSBvYmplY3QgYXQgd2hpY2ggZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHdpbGwgb2NjdXIuICBBbGwgZXZlbnQgbm90aWZpY2F0aW9ucyB0aGF0IG9jY3VyIHRvIHRoaXMgb2JqZWN0IG9yXHJcbiAgY2hpbGRyZW4gb2YgdGhpcyBvYmplY3Qgd2lsbCBiZSBlbmFibGVkIG9yIGRpc2FibGVkLlxyXG4gIEBwYXJhbSBpc0VuYWJsZWQgLSBBIGJvb2xlYW4sIGEgbnVsbCBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBlaXRoZXIgYSBib29sZWFuIG9yIGEgbnVsbC5cclxuICAqKi9cclxuIHN0YXRpYyBlbmFibGUoZXZlbnROYW1lOiBzdHJpbmcsIG9iajogT2JqZWN0LCBpc0VuYWJsZWQ6IGJvb2xlYW4gfCAoKHg6IGFueSkgPT4gYm9vbGVhbikpIHtcclxuICAgIGFzc2VydFBhcmFtKGV2ZW50TmFtZSwgXCJldmVudE5hbWVcIikuaXNOb25FbXB0eVN0cmluZygpLmNoZWNrKCk7XHJcbiAgICBhc3NlcnRQYXJhbShvYmosIFwib2JqXCIpLmlzT2JqZWN0KCkuY2hlY2soKTtcclxuICAgIGFzc2VydFBhcmFtKGlzRW5hYmxlZCwgXCJpc0VuYWJsZWRcIikuaXNCb29sZWFuKCkuaXNPcHRpb25hbCgpLm9yKCkuaXNGdW5jdGlvbigpLmNoZWNrKCk7XHJcbiAgICBsZXQgb2IgPSA8YW55Pm9iajtcclxuICAgIGlmICghb2IuXyRldmVudE1hcCkge1xyXG4gICAgICBvYi5fJGV2ZW50TWFwID0ge307XHJcbiAgICB9XHJcbiAgICBvYi5fJGV2ZW50TWFwW2V2ZW50TmFtZV0gPSBpc0VuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICBSZXR1cm5zIHdoZXRoZXIgZm9yIGEgc3BlY2lmaWMgZXZlbnQgYW5kIGEgc3BlY2lmaWMgb2JqZWN0IGFuZCBpdHMgY2hpbGRyZW4sIG5vdGlmaWNhdGlvbiBpcyBlbmFibGVkIG9yIGRpc2FibGVkIG9yIG5vdCBzZXQuXHJcbiAgPiAgICAgIEJyZWV6ZUV2ZW50LmlzRW5hYmxlZCjigJxwcm9wZXJ0eUNoYW5nZWTigJ0sIG15RW50aXR5TWFuYWdlcilcclxuICA+IFxyXG4gIEBwYXJhbSBldmVudE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXHJcbiAgQHBhcmFtIHRhcmdldCAtIFRoZSBvYmplY3QgZm9yIHdoaWNoIHdlIHdhbnQgdG8ga25vdyBpZiBub3RpZmljYXRpb25zIGFyZSBlbmFibGVkLlxyXG4gIEByZXR1cm4gQSBudWxsIGlzIHJldHVybmVkIGlmIHRoaXMgdmFsdWUgaGFzIG5vdCBiZWVuIHNldC5cclxuICAqKi9cclxuICBzdGF0aWMgaXNFbmFibGVkKGV2ZW50TmFtZTogc3RyaW5nLCBvYmo6IE9iamVjdCkge1xyXG4gICAgYXNzZXJ0UGFyYW0oZXZlbnROYW1lLCBcImV2ZW50TmFtZVwiKS5pc05vbkVtcHR5U3RyaW5nKCkuY2hlY2soKTtcclxuICAgIGFzc2VydFBhcmFtKG9iaiwgXCJvYmpcIikuaXNPYmplY3QoKS5jaGVjaygpO1xyXG4gICAgLy8gbnVsbCBpcyBvayAtIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgb2JqZWN0IGlzIGF0IHRoZSB0b3AgbGV2ZWwuXHJcbiAgICBpZiAoKDxhbnk+b2JqKS5fZ2V0RXZlbnRQYXJlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIG9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IGV2ZW50IGVuYWJsaW5nL2Rpc2FibGluZ1wiKTtcclxuICAgIH1cclxuICAgIC8vIHJldHVybiBjdG9yLl9pc0VuYWJsZWQoZ2V0RnVsbEV2ZW50TmFtZShldmVudE5hbWUpLCBvYmopO1xyXG4gICAgcmV0dXJuIEJyZWV6ZUV2ZW50Ll9pc0VuYWJsZWQoZXZlbnROYW1lLCAzKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIHN0YXRpYyBfaXNFbmFibGVkID0gZnVuY3Rpb24gKGV2ZW50TmFtZTogc3RyaW5nLCBvYmo6IE9iamVjdCkge1xyXG4gICAgbGV0IGlzRW5hYmxlZDogYW55ID0gbnVsbDtcclxuICAgIGxldCBvYiA9IDxhbnk+b2JqO1xyXG4gICAgbGV0IGV2ZW50TWFwID0gb2IuXyRldmVudE1hcDtcclxuICAgIGlmIChldmVudE1hcCkge1xyXG4gICAgICBpc0VuYWJsZWQgPSBldmVudE1hcFtldmVudE5hbWVdO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzRW5hYmxlZCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaXNFbmFibGVkID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgcmV0dXJuICEhaXNFbmFibGVkKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICEhaXNFbmFibGVkO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcGFyZW50ID0gb2IuX2dldEV2ZW50UGFyZW50ICYmIG9iLl9nZXRFdmVudFBhcmVudCgpO1xyXG4gICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5faXNFbmFibGVkKGV2ZW50TmFtZSwgcGFyZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBkZWZhdWx0IGlmIG5vdCBleHBsaWNpdGx5IGRpc2FibGVkLlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG59XHJcblxyXG4vLyBsZWdhY3kgc3VwcG9ydCAtIGRlbGliZXJhdGVseSBub3QgdHlwZWRcclxuKGNvcmUgYXMgYW55KS5FdmVudCA9IEJyZWV6ZUV2ZW50OyJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
import { assertConfig } from './assert-param';
|
|
3
|
+
import { config, InterfaceDef } from './config';
|
|
4
|
+
/** Registers adapters used by Breeze */
|
|
5
|
+
export class InterfaceRegistry {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.ajax = new InterfaceDef("ajax");
|
|
8
|
+
this.modelLibrary = new InterfaceDef("modelLibrary");
|
|
9
|
+
this.dataService = new InterfaceDef("dataService");
|
|
10
|
+
this.uriBuilder = new InterfaceDef("uriBuilder");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
config.interfaceRegistry = new InterfaceRegistry();
|
|
14
|
+
config._interfaceRegistry = config.interfaceRegistry;
|
|
15
|
+
config.interfaceRegistry.modelLibrary.getDefaultInstance = function () {
|
|
16
|
+
if (!this.defaultInstance) {
|
|
17
|
+
throw new Error("Unable to locate the default implementation of the '" + this.name +
|
|
18
|
+
"' interface. Possible options are 'ko', 'backingStore' or 'backbone'. See the breeze.config.initializeAdapterInstances method.");
|
|
19
|
+
}
|
|
20
|
+
return this.defaultInstance;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
Initializes a collection of adapter implementations and makes each one the default for its corresponding interface.
|
|
24
|
+
@method initializeAdapterInstances
|
|
25
|
+
@param config {Object}
|
|
26
|
+
@param [config.ajax] {String} - the name of a previously registered "ajax" adapter
|
|
27
|
+
@param [config.dataService] {String} - the name of a previously registered "dataService" adapter
|
|
28
|
+
@param [config.modelLibrary] {String} - the name of a previously registered "modelLibrary" adapter
|
|
29
|
+
@param [config.uriBuilder] {String} - the name of a previously registered "uriBuilder" adapter
|
|
30
|
+
@return [array of instances]
|
|
31
|
+
**/
|
|
32
|
+
config.initializeAdapterInstances = function (irConfig) {
|
|
33
|
+
assertConfig(irConfig)
|
|
34
|
+
.whereParam("dataService").isOptional()
|
|
35
|
+
.whereParam("modelLibrary").isOptional()
|
|
36
|
+
.whereParam("ajax").isOptional()
|
|
37
|
+
.whereParam("uriBuilder").isOptional()
|
|
38
|
+
.applyAll(this, false);
|
|
39
|
+
return core.objectMap(config, this.initializeAdapterInstance);
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZS1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBZSxNQUFNLFVBQVUsQ0FBQztBQWU3RCx3Q0FBd0M7QUFDeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNJLFNBQUksR0FBRyxJQUFJLFlBQVksQ0FBYyxNQUFNLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxDQUFzQixjQUFjLENBQUMsQ0FBQztRQUNyRSxnQkFBVyxHQUFHLElBQUksWUFBWSxDQUFxQixhQUFhLENBQUMsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxZQUFZLENBQW9CLFlBQVksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FBQTtBQXVCRCxNQUFNLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7QUFDckQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsR0FBRztJQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxHQUFHLElBQUksQ0FBQyxJQUFJO1lBQzlFLGlJQUFpSSxDQUFDLENBQUM7S0FDMUk7SUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLDBCQUEwQixHQUFHLFVBQVUsUUFBaUM7SUFDM0UsWUFBWSxDQUFDLFFBQVEsQ0FBQztTQUNqQixVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxFQUFFO1NBQ3RDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLEVBQUU7U0FDdkMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRTtTQUMvQixVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxFQUFFO1NBQ3JDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb3JlIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgYXNzZXJ0Q29uZmlnIH0gZnJvbSAnLi9hc3NlcnQtcGFyYW0nO1xyXG5pbXBvcnQgeyBjb25maWcsIEludGVyZmFjZURlZiwgQmFzZUFkYXB0ZXIgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IE1hcHBpbmdDb250ZXh0IH0gZnJvbSAnLi9tYXBwaW5nLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSB9IGZyb20gJy4vZW50aXR5LXF1ZXJ5JztcclxuaW1wb3J0IHsgTWV0YWRhdGFTdG9yZSB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgSnNvblJlc3VsdHNBZGFwdGVyLCBEYXRhU2VydmljZSB9IGZyb20gJy4vZGF0YS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi9lbnRpdHktYXNwZWN0JztcclxuaW1wb3J0IHsgU2F2ZUNvbnRleHQsIFNhdmVCdW5kbGUsIFF1ZXJ5UmVzdWx0LCBTYXZlUmVzdWx0LCBIdHRwUmVzcG9uc2UgfSBmcm9tICcuL2VudGl0eS1tYW5hZ2VyJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlUmVnaXN0cnlDb25maWcge1xyXG4gICAgYWpheD86IEludGVyZmFjZURlZjxBamF4QWRhcHRlcj47XHJcbiAgICBtb2RlbExpYnJhcnk/OiBJbnRlcmZhY2VEZWY8TW9kZWxMaWJyYXJ5QWRhcHRlcj47XHJcbiAgICBkYXRhU2VydmljZT86IEludGVyZmFjZURlZjxEYXRhU2VydmljZUFkYXB0ZXI+O1xyXG4gICAgdXJpQnVpbGRlcj86IEludGVyZmFjZURlZjxVcmlCdWlsZGVyQWRhcHRlcj47XHJcbn1cclxuXHJcbi8qKiBSZWdpc3RlcnMgYWRhcHRlcnMgdXNlZCBieSBCcmVlemUgKi9cclxuZXhwb3J0IGNsYXNzIEludGVyZmFjZVJlZ2lzdHJ5IHtcclxuICAgIGFqYXggPSBuZXcgSW50ZXJmYWNlRGVmPEFqYXhBZGFwdGVyPihcImFqYXhcIik7XHJcbiAgICBtb2RlbExpYnJhcnkgPSBuZXcgSW50ZXJmYWNlRGVmPE1vZGVsTGlicmFyeUFkYXB0ZXI+KFwibW9kZWxMaWJyYXJ5XCIpO1xyXG4gICAgZGF0YVNlcnZpY2UgPSBuZXcgSW50ZXJmYWNlRGVmPERhdGFTZXJ2aWNlQWRhcHRlcj4oXCJkYXRhU2VydmljZVwiKTtcclxuICAgIHVyaUJ1aWxkZXIgPSBuZXcgSW50ZXJmYWNlRGVmPFVyaUJ1aWxkZXJBZGFwdGVyPihcInVyaUJ1aWxkZXJcIik7XHJcbn1cclxuXHJcbi8vIFRoaXMgbW9kdWxlIGRlc2NyaWJlcyB0aGUgaW50ZXJmYWNlUmVnaXN0cnkgYnkgZXh0ZW5kaW5nIGNvbmZpZ1xyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZGVjbGFyZSBtb2R1bGUgXCIuL2NvbmZpZ1wiIHtcclxuICAgIGludGVyZmFjZSBCcmVlemVDb25maWcge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgIEluaXRpYWxpemVzIGEgY29sbGVjdGlvbiBvZiBhZGFwdGVyIGltcGxlbWVudGF0aW9ucyBhbmQgbWFrZXMgZWFjaCBvbmUgdGhlIGRlZmF1bHQgZm9yIGl0cyBjb3JyZXNwb25kaW5nIGludGVyZmFjZS5cclxuICAgICAgICBAbWV0aG9kIGluaXRpYWxpemVBZGFwdGVySW5zdGFuY2VzXHJcbiAgICAgICAgQHBhcmFtIGNvbmZpZyB7T2JqZWN0fVxyXG4gICAgICAgIEBwYXJhbSBbY29uZmlnLmFqYXhdIHtTdHJpbmd9IC0gdGhlIG5hbWUgb2YgYSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgXCJhamF4XCIgYWRhcHRlclxyXG4gICAgICAgIEBwYXJhbSBbY29uZmlnLmRhdGFTZXJ2aWNlXSB7U3RyaW5nfSAtIHRoZSBuYW1lIG9mIGEgcHJldmlvdXNseSByZWdpc3RlcmVkIFwiZGF0YVNlcnZpY2VcIiBhZGFwdGVyXHJcbiAgICAgICAgQHBhcmFtIFtjb25maWcubW9kZWxMaWJyYXJ5XSB7U3RyaW5nfSAtIHRoZSBuYW1lIG9mIGEgcHJldmlvdXNseSByZWdpc3RlcmVkIFwibW9kZWxMaWJyYXJ5XCIgYWRhcHRlclxyXG4gICAgICAgIEBwYXJhbSBbY29uZmlnLnVyaUJ1aWxkZXJdIHtTdHJpbmd9IC0gdGhlIG5hbWUgb2YgYSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgXCJ1cmlCdWlsZGVyXCIgYWRhcHRlclxyXG4gICAgICAgIEByZXR1cm4gW2FycmF5IG9mIGluc3RhbmNlc11cclxuICAgICAgICAqKi9cclxuICAgICAgICBpbml0aWFsaXplQWRhcHRlckluc3RhbmNlcyhpckNvbmZpZzogSW50ZXJmYWNlUmVnaXN0cnlDb25maWcpOiB2b2lkO1xyXG5cclxuICAgICAgICAvLyBzdHJvbmdseSB0eXBlZCB2ZXJzaW9uXHJcbiAgICAgICAgaW50ZXJmYWNlUmVnaXN0cnk6IEludGVyZmFjZVJlZ2lzdHJ5O1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25maWcuaW50ZXJmYWNlUmVnaXN0cnkgPSBuZXcgSW50ZXJmYWNlUmVnaXN0cnkoKTtcclxuY29uZmlnLl9pbnRlcmZhY2VSZWdpc3RyeSA9IGNvbmZpZy5pbnRlcmZhY2VSZWdpc3RyeTtcclxuY29uZmlnLmludGVyZmFjZVJlZ2lzdHJ5Lm1vZGVsTGlicmFyeS5nZXREZWZhdWx0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghdGhpcy5kZWZhdWx0SW5zdGFuY2UpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gbG9jYXRlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSAnXCIgKyB0aGlzLm5hbWUgK1xyXG4gICAgICAgICAgICBcIicgaW50ZXJmYWNlLiAgUG9zc2libGUgb3B0aW9ucyBhcmUgJ2tvJywgJ2JhY2tpbmdTdG9yZScgb3IgJ2JhY2tib25lJy4gU2VlIHRoZSBicmVlemUuY29uZmlnLmluaXRpYWxpemVBZGFwdGVySW5zdGFuY2VzIG1ldGhvZC5cIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0SW5zdGFuY2U7XHJcbn07XHJcblxyXG4vKipcclxuSW5pdGlhbGl6ZXMgYSBjb2xsZWN0aW9uIG9mIGFkYXB0ZXIgaW1wbGVtZW50YXRpb25zIGFuZCBtYWtlcyBlYWNoIG9uZSB0aGUgZGVmYXVsdCBmb3IgaXRzIGNvcnJlc3BvbmRpbmcgaW50ZXJmYWNlLlxyXG5AbWV0aG9kIGluaXRpYWxpemVBZGFwdGVySW5zdGFuY2VzXHJcbkBwYXJhbSBjb25maWcge09iamVjdH1cclxuQHBhcmFtIFtjb25maWcuYWpheF0ge1N0cmluZ30gLSB0aGUgbmFtZSBvZiBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBcImFqYXhcIiBhZGFwdGVyXHJcbkBwYXJhbSBbY29uZmlnLmRhdGFTZXJ2aWNlXSB7U3RyaW5nfSAtIHRoZSBuYW1lIG9mIGEgcHJldmlvdXNseSByZWdpc3RlcmVkIFwiZGF0YVNlcnZpY2VcIiBhZGFwdGVyXHJcbkBwYXJhbSBbY29uZmlnLm1vZGVsTGlicmFyeV0ge1N0cmluZ30gLSB0aGUgbmFtZSBvZiBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBcIm1vZGVsTGlicmFyeVwiIGFkYXB0ZXJcclxuQHBhcmFtIFtjb25maWcudXJpQnVpbGRlcl0ge1N0cmluZ30gLSB0aGUgbmFtZSBvZiBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBcInVyaUJ1aWxkZXJcIiBhZGFwdGVyXHJcbkByZXR1cm4gW2FycmF5IG9mIGluc3RhbmNlc11cclxuKiovXHJcbmNvbmZpZy5pbml0aWFsaXplQWRhcHRlckluc3RhbmNlcyA9IGZ1bmN0aW9uIChpckNvbmZpZzogSW50ZXJmYWNlUmVnaXN0cnlDb25maWcpIHtcclxuICAgIGFzc2VydENvbmZpZyhpckNvbmZpZylcclxuICAgICAgICAud2hlcmVQYXJhbShcImRhdGFTZXJ2aWNlXCIpLmlzT3B0aW9uYWwoKVxyXG4gICAgICAgIC53aGVyZVBhcmFtKFwibW9kZWxMaWJyYXJ5XCIpLmlzT3B0aW9uYWwoKVxyXG4gICAgICAgIC53aGVyZVBhcmFtKFwiYWpheFwiKS5pc09wdGlvbmFsKClcclxuICAgICAgICAud2hlcmVQYXJhbShcInVyaUJ1aWxkZXJcIikuaXNPcHRpb25hbCgpXHJcbiAgICAgICAgLmFwcGx5QWxsKHRoaXMsIGZhbHNlKTtcclxuICAgIHJldHVybiBjb3JlLm9iamVjdE1hcChjb25maWcsIHRoaXMuaW5pdGlhbGl6ZUFkYXB0ZXJJbnN0YW5jZSk7XHJcbn07XHJcblxyXG4vKiogRGF0YVNlcnZpY2VBZGFwdGVyIEFqYXggcmVxdWVzdCBjb25maWd1cmF0aW9uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWpheENvbmZpZyB7XHJcbiAgICB1cmw6IHN0cmluZztcclxuICAgIC8qKiBHRVQsIFBPU1QsIGV0Yy4gKi9cclxuICAgIHR5cGU/OiBzdHJpbmc7XHJcbiAgICAvKioganNvbiwgZXRjLiAqL1xyXG4gICAgZGF0YVR5cGU/OiBzdHJpbmc7XHJcbiAgICBjb250ZW50VHlwZT86IHN0cmluZztcclxuICAgIGNyb3NzRG9tYWluPzogc3RyaW5nIHwgYm9vbGVhbjtcclxuICAgIGhlYWRlcnM/OiB7fTtcclxuICAgIGRhdGE/OiBhbnk7XHJcbiAgICBwYXJhbXM/OiB7fTtcclxuICAgIHN1Y2Nlc3M6IChyZXM6IEh0dHBSZXNwb25zZSkgPT4gdm9pZDtcclxuICAgIGVycm9yOiAocmVzOiAoSHR0cFJlc3BvbnNlIHwgRXJyb3IpKSA9PiB2b2lkO1xyXG59XHJcblxyXG4vKiogUmVxdWVzdCBzZW50IGJ5IEFqYXhBZGFwdGVyICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWpheFJlcXVlc3Qge1xyXG4gICAgLyoqIEFqYXhBZGFwdGVyIHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0ICovXHJcbiAgICBhZGFwdGVyOiBBamF4QWRhcHRlcjtcclxuICAgIC8qKiBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gKi9cclxuICAgIGNvbmZpZzogUmVxdWVzdEluaXQ7XHJcbiAgICAvKiogY29uZmlnIGZyb20gdGhlIERhdGFTZXJ2aWNlQWRhcHRlciB0aGF0IGNhbGxlZCB0aGUgQWpheEFkYXB0ZXIgKi9cclxuICAgIGRzYUNvbmZpZzogQWpheENvbmZpZztcclxuICAgIC8qKiBGdW5jdGlvbiBjYWxsZWQgb24gcmVzcG9uc2UgZXJyb3IgKi9cclxuICAgIGVycm9yOiAoc3RhdHVzOiBudW1iZXIsIHN0YXR1c1RleHQ6IHN0cmluZywgYm9keTogc3RyaW5nLCByZXNwb25zZTogUmVzcG9uc2UsIGVycm9yVGhyb3duOiBhbnkpID0+IHZvaWQ7XHJcbiAgICAvKiogRnVuY3Rpb24gY2FsbGVkIG9uIHJlc3BvbnNlIHN1Y2Nlc3MgKi9cclxuICAgIHN1Y2Nlc3M6IChkYXRhOiBhbnksIHN0YXR1c1RleHQ6IHN0cmluZywgcmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB2b2lkO1xyXG59XHJcblxyXG4vKiogSGFuZGxlcyBBSkFYIHJlcXVlc3RzIHRvIHNlcnZlciAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFqYXhBZGFwdGVyIGV4dGVuZHMgQmFzZUFkYXB0ZXIge1xyXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgdGhlIGFqYXggcmVxdWVzdCBhbmQgY2FsbHMgdGhlIHN1Y2Nlc3Mgb3IgZXJyb3IgZnVuY3Rpb24gKi9cclxuICAgIGFqYXgoY29uZmlnOiBBamF4Q29uZmlnKTogdm9pZDtcclxuICAgIC8qKiBDb250YWluZXIgZm9yIGhlYWRlcnMgdG8gYmUgYWRkZWQgdG8gZWFjaCByZXF1ZXN0ICovXHJcbiAgICBkZWZhdWx0U2V0dGluZ3M6IHsgaGVhZGVycz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9IH07XHJcbiAgICAvKiogRnVuY3Rpb24gdG8gYWxsb3cgbWFuaXB1bGF0aW5nIHRoZSByZXF1ZXN0IGJlZm9yZSBzZW5kaW5nICovXHJcbiAgICByZXF1ZXN0SW50ZXJjZXB0b3I/OiAocmVxOiBBamF4UmVxdWVzdCkgPT4gdm9pZDtcclxufVxyXG5cclxuLyoqIEFkYXB0cyBicmVlemUgY2hhbmdlLXRyYWNraW5nIHRvIHRoZSBVSSBmcmFtZXdvcmsgKi9cclxuZXhwb3J0IGludGVyZmFjZSBNb2RlbExpYnJhcnlBZGFwdGVyIGV4dGVuZHMgQmFzZUFkYXB0ZXIge1xyXG4gICAgZ2V0VHJhY2thYmxlUHJvcGVydHlOYW1lczogKGVudGl0eTogYW55KSA9PiBzdHJpbmdbXTtcclxuICAgIGluaXRpYWxpemVFbnRpdHlQcm90b3R5cGUocHJvdG86IE9iamVjdCk6IHZvaWQ7XHJcbiAgICBzdGFydFRyYWNraW5nKGVudGl0eTogYW55LCBlbnRpdHlDdG9yOiBGdW5jdGlvbik6IHZvaWQ7XHJcbiAgICBjcmVhdGVDdG9yPzogRnVuY3Rpb247XHJcbn1cclxuXHJcbi8qKiBSZXNoYXBlcyBkYXRhIG1vdmluZyBiZXR3ZWVuIGJyZWV6ZSBhbmQgc2VydmVyICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNlcnZpY2VBZGFwdGVyIGV4dGVuZHMgQmFzZUFkYXB0ZXIge1xyXG4gICAgZmV0Y2hNZXRhZGF0YShtZXRhZGF0YVN0b3JlOiBNZXRhZGF0YVN0b3JlLCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpOiBQcm9taXNlPGFueT47ICAvLyByZXN1bHQgb2YgUHJvbWlzZSBpcyBlaXRoZXIgcmF3TWV0YWRhdGEgb3IgYSBzdHJpbmcgZXhwbGFpbmluZyB3aHkgbm90LlxyXG4gICAgZXhlY3V0ZVF1ZXJ5KG1hcHBpbmdDb250ZXh0OiBNYXBwaW5nQ29udGV4dCk6IFByb21pc2U8UXVlcnlSZXN1bHQ+OyAgIC8vIHJlc3VsdCBvZiBleGVjdXRlUXVlcnkgd2lsbCBnZXQgcGFzc2VkIHRvIEpzb25SZXN1bHRzQWRhcHRlciBleHRyYWN0UmVzdWx0cyBtZXRob2RcclxuICAgIHNhdmVDaGFuZ2VzKHNhdmVDb250ZXh0OiBTYXZlQ29udGV4dCwgc2F2ZUJ1bmRsZTogU2F2ZUJ1bmRsZSk6IFByb21pc2U8U2F2ZVJlc3VsdD47XHJcbiAgICBjaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3I6IENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvckN0b3I7XHJcbiAgICBqc29uUmVzdWx0c0FkYXB0ZXI6IEpzb25SZXN1bHRzQWRhcHRlcjtcclxufVxyXG5cclxuLyoqIEZ1bmN0aW9uIGNhbGxlZCBieSBBamF4QWRhcHRlciBiZWZvcmUgc2VuZGluZyByZXF1ZXN0ICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWpheFJlcXVlc3RJbnRlcmNlcHRvciB7XHJcbiAgICAocmVxOiBBamF4UmVxdWVzdCkgOiB2b2lkO1xyXG4gICAgLyoqIFdoZXRoZXIgdG8gcmVtb3ZlIHRoZSBpbnRlcmNlcHRvciBhZnRlciBpdCBpcyBjYWxsZWQgKi9cclxuICAgIG9uZVRpbWU6IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKiBCdWlsZHMgVVJJIGZvciBwZXJmb3JtaW5nIHF1ZXJpZXMuICBTZXJpYWxpemVzIHRoZSBFbnRpdHlRdWVyeSBhY2NvcmRpbmcgdG8gdGhlIFVSSSBzeW50YXguICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXJpQnVpbGRlckFkYXB0ZXIgZXh0ZW5kcyBCYXNlQWRhcHRlciB7XHJcbiAgICBidWlsZFVyaShxdWVyeTogRW50aXR5UXVlcnksIG1ldGFkYXRhU3RvcmU6IE1ldGFkYXRhU3RvcmUpOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvckN0b3Ige1xyXG4gICAgbmV3IChzYXZlQ29udGV4dDogU2F2ZUNvbnRleHQsIHNhdmVCdW5kbGU6IFNhdmVCdW5kbGUpOiBDaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3I7XHJcbn1cclxuXHJcbi8qKiBBbGxvd3MgbWFuaXB1bGF0aW5nIGRhdGEgaW4gRGF0YVNlcnZpY2VBZGFwdGVyIGJlZm9yZSBzZW5kaW5nIHRvIHNlcnZlciAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvciB7XHJcbiAgICBvbmVUaW1lPzogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgIFByZXBhcmUgYW5kIHJldHVybiB0aGUgc2F2ZSBkYXRhIGZvciBhbiBlbnRpdHkgY2hhbmdlLXNldC5cclxuICBcclxuICAgICBUaGUgYWRhcHRlciBjYWxscyB0aGlzIG1ldGhvZCBmb3IgZWFjaCBlbnRpdHkgaW4gdGhlIGNoYW5nZS1zZXQsXHJcbiAgICAgYWZ0ZXIgaXQgaGFzIHByZXBhcmVkIGEgXCJjaGFuZ2UgcmVxdWVzdFwiIGZvciB0aGF0IG9iamVjdC5cclxuICBcclxuICAgICBUaGUgbWV0aG9kIGNhbiBkbyBhbnl0aGluZyB0byB0aGUgcmVxdWVzdCBidXQgaXQgbXVzdCByZXR1cm4gYSB2YWxpZCwgbm9uLW51bGwgcmVxdWVzdC5cclxuICAgICBAZXhhbXBsZVxyXG4gICAgIHRoaXMuZ2V0UmVxdWVzdCA9IGZ1bmN0aW9uIChyZXF1ZXN0LCBlbnRpdHksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIC8vIGFsdGVyIHRoZSByZXF1ZXN0IHRoYXQgdGhlIGFkYXB0ZXIgcHJlcGFyZWQgZm9yIHRoaXMgZW50aXR5XHJcbiAgICAgICAgICAgIC8vIGJhc2VkIG9uIHRoZSBlbnRpdHksIHNhdmVDb250ZXh0LCBhbmQgc2F2ZUJ1bmRsZVxyXG4gICAgICAgICAgICAvLyBlLmcuLCBhZGQgYSBjdXN0b20gaGVhZGVyIG9yIHBydW5lIHRoZSBvcmlnaW5hbFZhbHVlc01hcFxyXG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDtcclxuICAgICAgICB9O1xyXG4gICAgIEBtZXRob2QgZ2V0UmVxdWVzdFxyXG4gICAgIEBwYXJhbSByZXF1ZXN0IHtPYmplY3R9IFRoZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBhZGFwdGVyJ3MgcmVxdWVzdCB0byBzYXZlIHRoaXMgZW50aXR5LlxyXG4gICAgIEBwYXJhbSBlbnRpdHkge0VudGl0eX0gVGhlIGVudGl0eS10by1iZS1zYXZlIGFzIGl0IGlzIGluIGNhY2hlXHJcbiAgICAgQHBhcmFtIGluZGV4IHtJbnRlZ2VyfSBUaGUgemVyby1iYXNlZCBpbmRleCBvZiB0aGlzIGVudGl0eSBpbiB0aGUgY2hhbmdlLXNldCBhcnJheVxyXG4gICAgIEByZXR1cm4ge0Z1bmN0aW9ufSBUaGUgcG90ZW50aWFsbHkgcmV2aXNlZCByZXF1ZXN0LlxyXG4gICAgICoqL1xyXG4gICAgZ2V0UmVxdWVzdChyZXF1ZXN0OiBhbnksIGVudGl0eTogRW50aXR5LCBpbmRleDogbnVtYmVyKTogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgIExhc3QgY2hhbmNlIHRvIGNoYW5nZSBhbnl0aGluZyBhYm91dCB0aGUgJ3JlcXVlc3RzJyBhcnJheVxyXG4gICAgIGFmdGVyIGl0IGhhcyBiZWVuIGJ1aWx0IHdpdGggcmVxdWVzdHMgZm9yIGFsbCBvZiB0aGUgZW50aXRpZXMtdG8tYmUtc2F2ZWQuXHJcbiAgXHJcbiAgICAgVGhlICdyZXF1ZXN0cycgYXJyYXkgaXMgdGhlIHNhbWUgYXMgJ3NhdmVCdW5kbGUuZW50aXRpZXMnIGluIG1hbnkgaW1wbGVtZW50YXRpb25zXHJcbiAgXHJcbiAgICAgVGhpcyBtZXRob2QgY2FuIGRvIGFueXRoaW5nIHRvIHRoZSBhcnJheSBpbmNsdWRpbmcgYWRkIGFuZCByZW1vdmUgcmVxdWVzdHMuXHJcbiAgICAgSXQncyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgc2VydmVyIHdpbGwgYWNjZXB0IHRoZSByZXF1ZXN0cyBhcnJheSBkYXRhIGFzIHZhbGlkLlxyXG4gIFxyXG4gICAgIFJldHVybmVkIHZhbHVlIGlzIGlnbm9yZWQuXHJcbiAgICAgQGV4YW1wbGVcclxuICAgICB0aGlzLmRvbmUgPSBmdW5jdGlvbiAocmVxdWVzdHMpIHtcclxuICAgICAgICAgICAgLy8gYWx0ZXIgdGhlIGFycmF5IG9mIHJlcXVlc3RzIHJlcHJlc2VudGluZyB0aGUgZW50aXJlIGNoYW5nZS1zZXRcclxuICAgICAgICAgICAgLy8gYmFzZWQgb24gdGhlIHNhdmVDb250ZXh0IGFuZCBzYXZlQnVuZGxlXHJcbiAgICAgICAgfTtcclxuICAgICBAbWV0aG9kIGRvbmVcclxuICAgICBAcGFyYW0gcmVxdWVzdHMge0FycmF5IG9mIE9iamVjdH0gVGhlIGFkYXB0ZXIncyBhcnJheSBvZiByZXF1ZXN0IGZvciB0aGlzIGNoYW5nZXNldC5cclxuICAgICAqKi9cclxuICAgIGRvbmUocmVxdWVzdHM6IE9iamVjdFtdKTogdm9pZDtcclxufSJdfQ==
|