@candy-kingdom/bonnie 0.27.0 → 0.27.1
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.
|
@@ -79,8 +79,9 @@ class IntersectionComponent {
|
|
|
79
79
|
});
|
|
80
80
|
effect(() => {
|
|
81
81
|
const newSession = this.session();
|
|
82
|
-
if (this._session === newSession)
|
|
82
|
+
if (this._session === newSession) {
|
|
83
83
|
return;
|
|
84
|
+
}
|
|
84
85
|
console.log("reset intersection Observer");
|
|
85
86
|
this._session = newSession;
|
|
86
87
|
this.reset();
|
|
@@ -88,8 +89,9 @@ class IntersectionComponent {
|
|
|
88
89
|
inject(DestroyRef).onDestroy(() => this._intersectionObserver?.disconnect());
|
|
89
90
|
}
|
|
90
91
|
reset() {
|
|
91
|
-
if (this._intersectionObserver === undefined || this._intersectionObserver === null)
|
|
92
|
+
if (this._intersectionObserver === undefined || this._intersectionObserver === null) {
|
|
92
93
|
return;
|
|
94
|
+
}
|
|
93
95
|
this._intersectionObserver.unobserve(this._hostRef.nativeElement);
|
|
94
96
|
this._isIntersected.set(false);
|
|
95
97
|
this._intersectionObserver.observe(this._hostRef.nativeElement);
|
|
@@ -159,21 +161,26 @@ function generateSizesString(sizes) {
|
|
|
159
161
|
function matchesMediaQuery(mediaQuery) {
|
|
160
162
|
const isEmptyQuery = mediaQuery === null || mediaQuery === undefined || mediaQuery.trim().length === 0;
|
|
161
163
|
// work for SSR and browser
|
|
162
|
-
if (isEmptyQuery)
|
|
164
|
+
if (isEmptyQuery) {
|
|
163
165
|
return true;
|
|
166
|
+
}
|
|
164
167
|
// other queries disallowed in SSR
|
|
165
|
-
if (typeof window === "undefined")
|
|
168
|
+
if (typeof window === "undefined") {
|
|
166
169
|
return false;
|
|
170
|
+
}
|
|
167
171
|
const mediaQueryList = window.matchMedia(mediaQuery);
|
|
168
172
|
return mediaQueryList.matches;
|
|
169
173
|
}
|
|
170
174
|
function isLocalUrlString(url) {
|
|
171
|
-
if (url === undefined || url === null || url.trim().length === 0)
|
|
175
|
+
if (url === undefined || url === null || url.trim().length === 0) {
|
|
172
176
|
return true;
|
|
173
|
-
|
|
177
|
+
}
|
|
178
|
+
if (url.startsWith("//")) {
|
|
174
179
|
return false;
|
|
175
|
-
|
|
180
|
+
}
|
|
181
|
+
if (url.startsWith("./") || url.startsWith("/")) {
|
|
176
182
|
return true;
|
|
183
|
+
}
|
|
177
184
|
return false;
|
|
178
185
|
}
|
|
179
186
|
|
|
@@ -195,7 +202,7 @@ class SrcBaseDirective {
|
|
|
195
202
|
}
|
|
196
203
|
onSrcChange(val) {
|
|
197
204
|
if (val !== undefined && val !== null && val.sources.length === 0) {
|
|
198
|
-
console.warn(
|
|
205
|
+
console.warn("image should have sources!");
|
|
199
206
|
this.data.set(undefined);
|
|
200
207
|
return;
|
|
201
208
|
}
|
|
@@ -224,8 +231,9 @@ class SrcBaseDirective {
|
|
|
224
231
|
}
|
|
225
232
|
calcRatio() {
|
|
226
233
|
const data = this.data();
|
|
227
|
-
if (data === undefined || data === null || data.sources.length === 0)
|
|
234
|
+
if (data === undefined || data === null || data.sources.length === 0) {
|
|
228
235
|
return;
|
|
236
|
+
}
|
|
229
237
|
for (let i = 0; i < data.sources.length; i++) {
|
|
230
238
|
const source = data.sources[i];
|
|
231
239
|
const srcRatios = source.srcSet
|
|
@@ -243,8 +251,9 @@ class SrcBaseDirective {
|
|
|
243
251
|
this._ratio.set(ratio);
|
|
244
252
|
return;
|
|
245
253
|
}
|
|
246
|
-
if (typeof window === "undefined" || typeof window.matchMedia === "undefined")
|
|
254
|
+
if (typeof window === "undefined" || typeof window.matchMedia === "undefined") {
|
|
247
255
|
return;
|
|
256
|
+
}
|
|
248
257
|
const mediaQueryList = window.matchMedia(source.mediaQuery);
|
|
249
258
|
if (mediaQueryList.matches) {
|
|
250
259
|
this._ratio.set(ratio);
|
|
@@ -258,8 +267,9 @@ class SrcBaseDirective {
|
|
|
258
267
|
if (src === undefined ||
|
|
259
268
|
src === null ||
|
|
260
269
|
typeof window === "undefined" ||
|
|
261
|
-
typeof window.matchMedia === "undefined")
|
|
270
|
+
typeof window.matchMedia === "undefined") {
|
|
262
271
|
return NEVER.pipe(takeUntilDestroyed(this._destroyRef), takeUntil(this._queryChangeClearSubject));
|
|
272
|
+
}
|
|
263
273
|
const mediaQueries = src.sources
|
|
264
274
|
.map((x) => x.mediaQuery)
|
|
265
275
|
.filter(distinct)
|
|
@@ -455,8 +465,9 @@ var SizesWidthUnit;
|
|
|
455
465
|
|
|
456
466
|
class LocalizeServiceBase {
|
|
457
467
|
getLocalized(value, defaultValue, locale) {
|
|
458
|
-
if (value === undefined)
|
|
468
|
+
if (value === undefined) {
|
|
459
469
|
return defaultValue;
|
|
470
|
+
}
|
|
460
471
|
locale = locale ?? this.locale();
|
|
461
472
|
const obj = value[locale] ?? defaultValue;
|
|
462
473
|
return obj;
|
|
@@ -473,8 +484,9 @@ class LocalizeServiceBase {
|
|
|
473
484
|
class LocalizePipe {
|
|
474
485
|
_localizeService = inject(LocalizeServiceBase);
|
|
475
486
|
transform(value, locale) {
|
|
476
|
-
if (value === undefined || value === null)
|
|
487
|
+
if (value === undefined || value === null) {
|
|
477
488
|
return "";
|
|
489
|
+
}
|
|
478
490
|
return this._localizeService.getLocalizedText(value, locale);
|
|
479
491
|
}
|
|
480
492
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LocalizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
@@ -487,8 +499,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
487
499
|
class LocalizeObjectPipe {
|
|
488
500
|
_localizeService = inject(LocalizeServiceBase);
|
|
489
501
|
transform(object, locale) {
|
|
490
|
-
if (object === undefined || object === null)
|
|
502
|
+
if (object === undefined || object === null) {
|
|
491
503
|
return undefined;
|
|
504
|
+
}
|
|
492
505
|
return this._localizeService.getLocalized(object, undefined, locale);
|
|
493
506
|
}
|
|
494
507
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LocalizeObjectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
@@ -501,8 +514,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
501
514
|
class LocalizationIsNotEmptyPipe {
|
|
502
515
|
_localizeService = inject(LocalizeServiceBase);
|
|
503
516
|
transform(value, locale) {
|
|
504
|
-
if (value === undefined || value === null)
|
|
517
|
+
if (value === undefined || value === null) {
|
|
505
518
|
return false;
|
|
519
|
+
}
|
|
506
520
|
const text = this._localizeService.getLocalizedText(value, locale);
|
|
507
521
|
const isNotEmpty = text.trim().length > 0;
|
|
508
522
|
return isNotEmpty;
|
|
@@ -517,8 +531,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
517
531
|
class LocalizationIsEmptyPipe {
|
|
518
532
|
_localizeService = inject(LocalizeServiceBase);
|
|
519
533
|
transform(value, locale) {
|
|
520
|
-
if (value === undefined || value === null)
|
|
534
|
+
if (value === undefined || value === null) {
|
|
521
535
|
return true;
|
|
536
|
+
}
|
|
522
537
|
const text = this._localizeService.getLocalizedText(value, locale);
|
|
523
538
|
const isEmpty = text.trim().length === 0;
|
|
524
539
|
return isEmpty;
|
|
@@ -534,8 +549,9 @@ class LocalizeUrlPipe {
|
|
|
534
549
|
_localizeService = inject(LocalizeServiceBase);
|
|
535
550
|
_domSanitizer = inject(DomSanitizer);
|
|
536
551
|
transform(value, locale) {
|
|
537
|
-
if (value === undefined || value === null)
|
|
552
|
+
if (value === undefined || value === null) {
|
|
538
553
|
return "";
|
|
554
|
+
}
|
|
539
555
|
const urlString = this._localizeService.getLocalizedText(value, locale);
|
|
540
556
|
const safeUrl = this._domSanitizer.bypassSecurityTrustResourceUrl(urlString);
|
|
541
557
|
return safeUrl;
|
|
@@ -550,8 +566,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
550
566
|
class IsLocalUrlPipe {
|
|
551
567
|
_localizeService = inject(LocalizeServiceBase);
|
|
552
568
|
transform(value, locale) {
|
|
553
|
-
if (value === undefined || value === null)
|
|
569
|
+
if (value === undefined || value === null) {
|
|
554
570
|
return false;
|
|
571
|
+
}
|
|
555
572
|
const isLocal = this._localizeService.isLocalUrl(value, locale);
|
|
556
573
|
return isLocal;
|
|
557
574
|
}
|
|
@@ -565,8 +582,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
565
582
|
class IsNotLocalUrlPipe {
|
|
566
583
|
_localizeService = inject(LocalizeServiceBase);
|
|
567
584
|
transform(value, locale) {
|
|
568
|
-
if (value === undefined || value === null)
|
|
585
|
+
if (value === undefined || value === null) {
|
|
569
586
|
return false;
|
|
587
|
+
}
|
|
570
588
|
const isLocal = this._localizeService.isLocalUrl(value, locale);
|
|
571
589
|
return !isLocal;
|
|
572
590
|
}
|
|
@@ -579,14 +597,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
579
597
|
}] });
|
|
580
598
|
|
|
581
599
|
function getDefaultSrc(image) {
|
|
582
|
-
if (image === undefined || image === null)
|
|
600
|
+
if (image === undefined || image === null) {
|
|
583
601
|
return undefined;
|
|
602
|
+
}
|
|
584
603
|
const files = image.sources.flatMap((x) => x.srcSet).sort(descendingT((x) => x.meta.width));
|
|
585
604
|
const prefferedFiles = files.filter((x) => x.mimeType === "image/jpeg" || x.mimeType === "image/png" || x.mimeType === "image/gif");
|
|
586
|
-
if (prefferedFiles.length > 0)
|
|
605
|
+
if (prefferedFiles.length > 0) {
|
|
587
606
|
return prefferedFiles[0];
|
|
588
|
-
|
|
607
|
+
}
|
|
608
|
+
if (files.length > 0) {
|
|
589
609
|
return files[0];
|
|
610
|
+
}
|
|
590
611
|
return undefined;
|
|
591
612
|
}
|
|
592
613
|
|
|
@@ -627,8 +648,9 @@ class MarcyImageComponent {
|
|
|
627
648
|
device = inject(DeviceServiceBase);
|
|
628
649
|
constructor() {
|
|
629
650
|
const src = inject(ImageSrcDirective, { optional: true });
|
|
630
|
-
if (src === undefined || src === null)
|
|
651
|
+
if (src === undefined || src === null) {
|
|
631
652
|
throw new Error(`${MarcyImageComponent.name} should have [imgsrc] directive as source object`);
|
|
653
|
+
}
|
|
632
654
|
this.src = src;
|
|
633
655
|
effect(() => {
|
|
634
656
|
this.onSrcChange(this.src.data());
|
|
@@ -688,8 +710,9 @@ class MarcyVideoComponent {
|
|
|
688
710
|
device = inject(DeviceServiceBase);
|
|
689
711
|
_srcDir = inject(VideoSrcDirective, { optional: true });
|
|
690
712
|
constructor() {
|
|
691
|
-
if (this._srcDir === undefined || this._srcDir === null)
|
|
713
|
+
if (this._srcDir === undefined || this._srcDir === null) {
|
|
692
714
|
throw new Error(`${MarcyVideoComponent.name} should have [vidsrc] directive as source object`);
|
|
715
|
+
}
|
|
693
716
|
this.src = this._srcDir;
|
|
694
717
|
effect(() => {
|
|
695
718
|
this.src.data();
|
|
@@ -739,8 +762,9 @@ class MarcyVideoComponent {
|
|
|
739
762
|
console.log(`MarcyVideoComponent realPixelsVideoWidth ${realPixelsVideoWidth}`);
|
|
740
763
|
for (let i = 0; i < videoSources.length; i++) {
|
|
741
764
|
const videoSource = videoSources[i];
|
|
742
|
-
if (!matchesMediaQuery(videoSource.mediaQuery))
|
|
765
|
+
if (!matchesMediaQuery(videoSource.mediaQuery)) {
|
|
743
766
|
continue;
|
|
767
|
+
}
|
|
744
768
|
// SSR
|
|
745
769
|
if (typeof ref.nativeElement.canPlayType !== "function") {
|
|
746
770
|
const mp4Srcs = videoSource.srcSet
|
|
@@ -757,8 +781,9 @@ class MarcyVideoComponent {
|
|
|
757
781
|
// else prefer smallest
|
|
758
782
|
return a.meta.width <= b.meta.width ? -1 : 1;
|
|
759
783
|
}); // smallest video
|
|
760
|
-
if (fileSrcs.length === 0)
|
|
784
|
+
if (fileSrcs.length === 0) {
|
|
761
785
|
continue;
|
|
786
|
+
}
|
|
762
787
|
// console.log('sources ', fileSrcs);
|
|
763
788
|
let bestSrc = fileSrcs[0];
|
|
764
789
|
for (let i = 1; i < fileSrcs.length; i++) {
|
|
@@ -766,8 +791,9 @@ class MarcyVideoComponent {
|
|
|
766
791
|
const currentDiff = fileSrc.meta.width - realPixelsVideoWidth;
|
|
767
792
|
// console.log(`browser video currentDiff ${currentDiff}`)
|
|
768
793
|
// too big video source width
|
|
769
|
-
if (currentDiff > 0)
|
|
794
|
+
if (currentDiff > 0) {
|
|
770
795
|
break;
|
|
796
|
+
}
|
|
771
797
|
bestSrc = fileSrc;
|
|
772
798
|
}
|
|
773
799
|
console.log(`browser found suitable video ${bestSrc.url}`);
|
|
@@ -803,7 +829,7 @@ class BoneMap extends Map {
|
|
|
803
829
|
getRequired(key) {
|
|
804
830
|
const value = this.get(key);
|
|
805
831
|
if (value === undefined || value === null) {
|
|
806
|
-
throw Error(`BoneMap doesn't contain type for key = ${key}`);
|
|
832
|
+
throw new Error(`BoneMap doesn't contain type for key = ${key}`);
|
|
807
833
|
}
|
|
808
834
|
return value;
|
|
809
835
|
}
|
|
@@ -820,6 +846,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
820
846
|
selector: "[bonBoneDir]",
|
|
821
847
|
}]
|
|
822
848
|
}], propDecorators: { bone: [{ type: i0.Input, args: [{ isSignal: true, alias: "bone", required: true }] }, { type: i0.Output, args: ["boneChange"] }] } });
|
|
849
|
+
const BONE_DIRECTIVE_WITH_INPUTS_AND_OUTPUTS = {
|
|
850
|
+
directive: BoneDirective,
|
|
851
|
+
inputs: ["bone"],
|
|
852
|
+
outputs: ["boneChange"],
|
|
853
|
+
};
|
|
823
854
|
|
|
824
855
|
class SkeletonAnchorDirective {
|
|
825
856
|
viewContainerRef = inject(ViewContainerRef);
|
|
@@ -864,8 +895,9 @@ class SkeletonComponent {
|
|
|
864
895
|
const mapVal = this.map();
|
|
865
896
|
const viewContainerRef = anchor.viewContainerRef;
|
|
866
897
|
viewContainerRef.clear();
|
|
867
|
-
if (mapVal === undefined || mapVal === null)
|
|
898
|
+
if (mapVal === undefined || mapVal === null) {
|
|
868
899
|
throw new Error('add type map with input: [map]="..."');
|
|
900
|
+
}
|
|
869
901
|
for (const bone of bones) {
|
|
870
902
|
let componentType = mapVal.get(bone.type);
|
|
871
903
|
if (componentType === undefined || componentType === null) {
|
|
@@ -888,5 +920,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
888
920
|
* Generated bundle index. Do not edit.
|
|
889
921
|
*/
|
|
890
922
|
|
|
891
|
-
export { BoneDirective, BoneMap, DeviceService, DeviceServiceBase, EncodeURIComponentPipe, ImageSrcDirective, IntersectionComponent, IsLocalUrlPipe, IsNotLocalUrlPipe, LocalizationIsEmptyPipe, LocalizationIsNotEmptyPipe, LocalizeObjectPipe, LocalizePipe, LocalizeServiceBase, LocalizeUrlPipe, MarcyImageComponent, MarcyMediaComponent, MarcyVideoComponent, MediaObjectFit, MediaStatus, PublishStatus, SizesWidthUnit, SkeletonAnchorDirective, SkeletonComponent, SrcBaseDirective, UnknownBoneComponent, VideoSrcDirective, emptyBone, emptyImage, emptyLocalizedString, emptyVideo, getDefaultSrc, toHtmlPictureSources };
|
|
923
|
+
export { BONE_DIRECTIVE_WITH_INPUTS_AND_OUTPUTS, BoneDirective, BoneMap, DeviceService, DeviceServiceBase, EncodeURIComponentPipe, ImageSrcDirective, IntersectionComponent, IsLocalUrlPipe, IsNotLocalUrlPipe, LocalizationIsEmptyPipe, LocalizationIsNotEmptyPipe, LocalizeObjectPipe, LocalizePipe, LocalizeServiceBase, LocalizeUrlPipe, MarcyImageComponent, MarcyMediaComponent, MarcyVideoComponent, MediaObjectFit, MediaStatus, PublishStatus, SizesWidthUnit, SkeletonAnchorDirective, SkeletonComponent, SrcBaseDirective, UnknownBoneComponent, VideoSrcDirective, emptyBone, emptyImage, emptyLocalizedString, emptyVideo, getDefaultSrc, toHtmlPictureSources };
|
|
892
924
|
//# sourceMappingURL=candy-kingdom-bonnie.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candy-kingdom-bonnie.mjs","sources":["../../../../libs/bonnie/src/lib/core/device.service.ts","../../../../libs/bonnie/src/lib/core/device.service.base.ts","../../../../libs/bonnie/src/lib/core/emptyBone.ts","../../../../libs/bonnie/src/lib/core/emptyImage.ts","../../../../libs/bonnie/src/lib/core/emptyLocalizedString.ts","../../../../libs/bonnie/src/lib/core/emptyVideo.ts","../../../../libs/bonnie/src/lib/core/encode-uri.pipe.ts","../../../../libs/bonnie/src/lib/core/intersection.component.ts","../../../../libs/bonnie/src/lib/core/MediaObjectFit.ts","../../../../libs/bonnie/src/lib/core/MediaStatus.ts","../../../../libs/bonnie/src/lib/core/utils.ts","../../../../libs/bonnie/src/lib/core/src.directive.ts","../../../../libs/bonnie/src/lib/generated/bone.ts","../../../../libs/bonnie/src/lib/generated/file-format.ts","../../../../libs/bonnie/src/lib/generated/file-meta.ts","../../../../libs/bonnie/src/lib/generated/file-src.ts","../../../../libs/bonnie/src/lib/generated/file-src-base.ts","../../../../libs/bonnie/src/lib/generated/i-equatable.ts","../../../../libs/bonnie/src/lib/generated/i-have-data-route.ts","../../../../libs/bonnie/src/lib/generated/i-have-data-route-with-data.ts","../../../../libs/bonnie/src/lib/generated/i-have-skeleton.ts","../../../../libs/bonnie/src/lib/generated/i-page.ts","../../../../libs/bonnie/src/lib/generated/image.ts","../../../../libs/bonnie/src/lib/generated/image-meta.ts","../../../../libs/bonnie/src/lib/generated/image-source.ts","../../../../libs/bonnie/src/lib/generated/localized-object.ts","../../../../libs/bonnie/src/lib/generated/localized-string.ts","../../../../libs/bonnie/src/lib/generated/media-source.ts","../../../../libs/bonnie/src/lib/generated/media-source-base.ts","../../../../libs/bonnie/src/lib/generated/open-graph-data.ts","../../../../libs/bonnie/src/lib/generated/page.ts","../../../../libs/bonnie/src/lib/generated/page-base.ts","../../../../libs/bonnie/src/lib/generated/page-data.ts","../../../../libs/bonnie/src/lib/generated/pix-media.ts","../../../../libs/bonnie/src/lib/generated/pix-meta.ts","../../../../libs/bonnie/src/lib/generated/publish-status.ts","../../../../libs/bonnie/src/lib/generated/sizes-item.ts","../../../../libs/bonnie/src/lib/generated/sizes-width-unit.ts","../../../../libs/bonnie/src/lib/generated/svg-meta.ts","../../../../libs/bonnie/src/lib/generated/video.ts","../../../../libs/bonnie/src/lib/generated/video-meta.ts","../../../../libs/bonnie/src/lib/generated/video-source.ts","../../../../libs/bonnie/src/lib/generated/view.ts","../../../../libs/bonnie/src/lib/generated/index.ts","../../../../libs/bonnie/src/lib/localization/LocalizeServiceBase.ts","../../../../libs/bonnie/src/lib/localization/localize.pipe.ts","../../../../libs/bonnie/src/lib/marcy-image/getDefaultSrc.ts","../../../../libs/bonnie/src/lib/marcy-image/imgsrc.directive.ts","../../../../libs/bonnie/src/lib/marcy-image/toHtmlSources.ts","../../../../libs/bonnie/src/lib/marcy-image/marcy-image.component.ts","../../../../libs/bonnie/src/lib/marcy-image/marcy-image.component.html","../../../../libs/bonnie/src/lib/marcy-video/vidsrc.directive.ts","../../../../libs/bonnie/src/lib/marcy-video/marcy-video.component.ts","../../../../libs/bonnie/src/lib/marcy-video/marcy-video.component.html","../../../../libs/bonnie/src/lib/marcy-media/marcy-media.component.ts","../../../../libs/bonnie/src/lib/marcy-media/marcy-media.component.html","../../../../libs/bonnie/src/lib/skeleton/BoneMap.ts","../../../../libs/bonnie/src/lib/skeleton/bone.directive.ts","../../../../libs/bonnie/src/lib/skeleton/skeleton-anchor.directive.ts","../../../../libs/bonnie/src/lib/skeleton/unknown-bone.component.ts","../../../../libs/bonnie/src/lib/skeleton/skeleton.component.ts","../../../../libs/bonnie/src/lib/skeleton/skeleton.component.html","../../../../libs/bonnie/src/candy-kingdom-bonnie.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\nimport type { DeviceServiceBase } from \"./device.service.base\";\n\n@Injectable()\nexport class DeviceService implements DeviceServiceBase {\n\tpublic readonly devicePixelRatio = typeof window === \"undefined\" ? 1 : window.devicePixelRatio;\n\tpublic readonly isSSR = typeof window === \"undefined\";\n}\n","export abstract class DeviceServiceBase {\n\tpublic abstract get isSSR(): boolean;\n\tpublic abstract get devicePixelRatio(): number;\n}\n","import type { Bone } from \"../generated\";\n\nexport function emptyBone(): Bone {\n\treturn {\n\t\tstyle: \"\",\n\t\tmediaQuery: \"\",\n\t\tenabled: true,\n\t\ttype: \"\",\n\t};\n}\n","import type { Image } from \"../generated\";\n\nexport function emptyImage(): Image {\n\treturn {\n\t\t$type: \"image\", // todo: remove\n\t\ttype: \"image\",\n\t\tsources: [],\n\t};\n}\n","import type { LocalizedString } from \"../generated\";\n\nexport function emptyLocalizedString(): LocalizedString {\n\treturn {};\n}\n","import type { Video } from \"../generated\";\n\nexport function emptyVideo(): Video {\n\treturn {\n\t\t$type: \"video\", // todo: remove\n\t\ttype: \"video\",\n\t\tsources: [],\n\t};\n}\n","import { Pipe, type PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"encodeURIComponent\", pure: true })\nexport class EncodeURIComponentPipe implements PipeTransform {\n\tpublic transform(value: string): string {\n\t\treturn encodeURIComponent(value);\n\t}\n}\n","import {\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\teffect,\n\tinject,\n\tinput,\n\toutput,\n\tsignal,\n} from \"@angular/core\";\n\n@Component({\n\tselector: \"bon-intersection\",\n\ttemplate: \"<ng-content></ng-content>\",\n\tstyles: [\":host{display:block}\"],\n})\nexport class IntersectionComponent {\n\tpublic readonly intersected = output<void>();\n\n\tpublic readonly session = input<unknown>();\n\n\tprivate readonly _hostRef = inject(ElementRef);\n\n\tprivate readonly _intersectionObserver?: IntersectionObserver;\n\tprivate readonly _isIntersected = signal<boolean>(false);\n\n\tpublic readonly isIntersected = this._isIntersected.asReadonly();\n\n\tprivate _session: unknown; // todo: remove\n\n\tconstructor() {\n\t\tif (typeof window === \"undefined\" || typeof IntersectionObserver === \"undefined\") {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._intersectionObserver = new IntersectionObserver(this.onIntersection.bind(this));\n\n\t\teffect(() => {\n\t\t\tif (this._isIntersected()) {\n\t\t\t\tthis.intersected.emit();\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst newSession = this.session();\n\n\t\t\tif (this._session === newSession) return;\n\n\t\t\tconsole.log(\"reset intersection Observer\");\n\t\t\tthis._session = newSession;\n\t\t\tthis.reset();\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => this._intersectionObserver?.disconnect());\n\t}\n\n\tprivate reset(): void {\n\t\tif (this._intersectionObserver === undefined || this._intersectionObserver === null) return;\n\n\t\tthis._intersectionObserver.unobserve(this._hostRef.nativeElement);\n\n\t\tthis._isIntersected.set(false);\n\n\t\tthis._intersectionObserver.observe(this._hostRef.nativeElement);\n\t}\n\n\tprivate onIntersection(\n\t\tentries: IntersectionObserverEntry[],\n\t\tobserver: IntersectionObserver,\n\t): void {\n\t\tif (entries.length > 1) {\n\t\t\tconsole.warn(\"multi entries!\");\n\t\t}\n\n\t\tconst isIntersecting = entries[0].isIntersecting;\n\t\tthis._isIntersected.set(isIntersecting);\n\n\t\tconsole.log(`intersected ${isIntersecting}`, this._hostRef.nativeElement);\n\n\t\t// only once will recieve intersection\n\t\tif (isIntersecting) {\n\t\t\tobserver.unobserve(this._hostRef.nativeElement);\n\t\t}\n\t}\n}\n","export enum MediaObjectFit {\n\tOriginal = \"Original\",\n\tCover = \"Cover\",\n\tContain = \"Contain\",\n}\n","export enum MediaStatus {\n\tNotSet = \"NotSet\",\n\tNotLoaded = \"NotLoaded\",\n\tLoading = \"Loading\",\n\tLoaded = \"Loaded\",\n}\n","import type * as M_CORE from \"../generated\";\n\n// https://stackoverflow.com/questions/42136098/array-groupby-in-typescript\n\nexport const groupBy = <T, K extends keyof any>(arr: T[], key: (i: T) => K) =>\n\tarr.reduce(\n\t\t(groups, item) => {\n\t\t\t(groups[key(item)] ||= []).push(item);\n\t\t\treturn groups;\n\t\t},\n\t\t{} as Record<K, T[]>,\n\t);\n\nexport function distinct<T>(value: T, index: number, array: T[]) {\n\treturn array.indexOf(value) === index;\n}\n\nexport function ascending(a: number, b: number) {\n\treturn a - b;\n}\n\nexport function ascendingT<T>(sel: (x: T) => number): (a: T, b: T) => number {\n\treturn (a: T, b: T) => ascending(sel(a), sel(b));\n}\n\nexport function descending(a: number, b: number) {\n\treturn b - a;\n}\n\nexport function descendingT<T>(sel: (x: T) => number): (a: T, b: T) => number {\n\treturn (a: T, b: T) => descending(sel(a), sel(b));\n}\n\nexport function generateSizesString(sizes: M_CORE.SizesItem[]): string {\n\tconst sizesString = sizes\n\t\t.sort((x) => x.width)\n\t\t.map((x) => `${x.mediaQuery} ${x.width}${x.unit.toLowerCase()}`.trim())\n\t\t.join(\",\");\n\n\treturn sizesString;\n}\n\nexport function matchesMediaQuery(mediaQuery?: string): boolean {\n\tconst isEmptyQuery =\n\t\tmediaQuery === null || mediaQuery === undefined || mediaQuery.trim().length === 0;\n\n\t// work for SSR and browser\n\tif (isEmptyQuery) return true;\n\n\t// other queries disallowed in SSR\n\tif (typeof window === \"undefined\") return false;\n\n\tconst mediaQueryList = window.matchMedia(mediaQuery);\n\n\treturn mediaQueryList.matches;\n}\n\nexport function isLocalUrlString(url: string): boolean {\n\tif (url === undefined || url === null || url.trim().length === 0) return true;\n\n\tif (url.startsWith(\"//\")) return false;\n\n\tif (url.startsWith(\"./\") || url.startsWith(\"/\")) return true;\n\n\treturn false;\n}\n","import {\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tinject,\n\ttype ModelSignal,\n\toutput,\n\tsignal,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\nimport { fromEvent, merge, NEVER, type Observable, Subject, takeUntil } from \"rxjs\";\n\nimport type * as M_CORE from \"../generated\";\nimport * as utils from \"./utils\";\n\n@Directive()\nexport abstract class SrcBaseDirective<T extends M_CORE.Image | M_CORE.Video> {\n\tpublic readonly ratioChange = output<number>();\n\n\tprivate readonly _ratio = signal<number>(0);\n\tpublic readonly ratio = this._ratio.asReadonly();\n\n\tprivate readonly _queryChangeClearSubject = new Subject<void>();\n\n\tpublic abstract readonly data: ModelSignal<T | undefined>;\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ratio = this._ratio();\n\t\t\tthis.ratioChange.emit(ratio);\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst val = this.data();\n\t\t\tthis.onSrcChange(val);\n\t\t});\n\t}\n\n\tprivate onSrcChange(val: T | undefined): void {\n\t\tif (val !== undefined && val !== null && val.sources.length === 0) {\n\t\t\tconsole.warn(`image should have sources!`);\n\t\t\tthis.data.set(undefined);\n\t\t\treturn;\n\t\t}\n\n\t\t// clear mediaQuery subscriptions\n\t\tthis._queryChangeClearSubject.next();\n\n\t\t// ratio\n\t\tthis._ratio.set(0);\n\n\t\tif (val === undefined || val.sources.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst allRatios = val.sources\n\t\t\t.flatMap((x) => x.srcSet)\n\t\t\t.map((x) => x.meta.ratio)\n\t\t\t.filter(utils.distinct);\n\n\t\tif (allRatios.length === 1) {\n\t\t\t// same ratio for all\n\t\t\tthis._ratio.set(allRatios[0]);\n\t\t\treturn;\n\t\t}\n\n\t\t// todo: check if this needed to be unsubscribed\n\t\tthis.watchMediaQueries().subscribe(() => {\n\t\t\tthis.calcRatio();\n\t\t\tconsole.log(\"watchMediaQueries calcRatio\");\n\t\t});\n\n\t\tthis.calcRatio();\n\t}\n\n\tprivate calcRatio(): void {\n\t\tconst data = this.data();\n\t\tif (data === undefined || data === null || data.sources.length === 0) return;\n\n\t\tfor (let i = 0; i < data.sources.length; i++) {\n\t\t\tconst source = data.sources[i];\n\t\t\tconst srcRatios = source.srcSet\n\t\t\t\t.sort(utils.descendingT((x) => x.meta.width))\n\t\t\t\t.map((x) => x.meta.ratio)\n\t\t\t\t.filter(utils.distinct);\n\n\t\t\tif (srcRatios.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (srcRatios.length > 1) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`each source should have srcSet with same ratio. founded: ${srcRatios.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst ratio = srcRatios[0]; // most accurate ratio in biggest image\n\n\t\t\tif (source.mediaQuery.length === 0) {\n\t\t\t\tthis._ratio.set(ratio);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof window === \"undefined\" || typeof window.matchMedia === \"undefined\") return;\n\n\t\t\tconst mediaQueryList = window.matchMedia(source.mediaQuery);\n\n\t\t\tif (mediaQueryList.matches) {\n\t\t\t\tthis._ratio.set(ratio);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic watchMediaQueries(): Observable<MediaQueryListEvent> {\n\t\tconsole.log(\"watchMediaQueries\");\n\t\tconst src = this.data();\n\n\t\tif (\n\t\t\tsrc === undefined ||\n\t\t\tsrc === null ||\n\t\t\ttypeof window === \"undefined\" ||\n\t\t\ttypeof window.matchMedia === \"undefined\"\n\t\t)\n\t\t\treturn NEVER.pipe(\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t\ttakeUntil(this._queryChangeClearSubject),\n\t\t\t);\n\n\t\tconst mediaQueries = src.sources\n\t\t\t.map((x) => x.mediaQuery)\n\t\t\t.filter(utils.distinct)\n\t\t\t.filter((x) => x.length > 0);\n\n\t\tconsole.log(\"watchMediaQueries mediaQueries\", mediaQueries);\n\t\tconst queryObservables = mediaQueries.map((media) => {\n\t\t\tconst queryList = window.matchMedia(media);\n\t\t\tconst observable = fromEvent<MediaQueryListEvent>(queryList, \"change\").pipe(\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t\ttakeUntil(this._queryChangeClearSubject),\n\t\t\t);\n\n\t\t\treturn observable;\n\t\t});\n\n\t\tconst combinedObservable = merge(...queryObservables);\n\t\treturn combinedObservable;\n\t}\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface Bone {\n\tstyle: string;\n\tmediaQuery: string;\n\tenabled: boolean;\n\ttype: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface FileFormat {\n\textension: string;\n\tmimeType: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface FileMeta {\n\tbyteCount: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileMeta } from \"./file-meta\";\nimport type { FileSrcBase } from \"./file-src-base\";\n\nexport interface FileSrc<T extends FileMeta> extends FileSrcBase {\n\tmeta: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface FileSrcBase {\n\tmimeType: string;\n\turl: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport type IEquatable<_T> = {};\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface IHaveDataRoute {\n\tdataRoute: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { IHaveDataRoute } from \"./i-have-data-route\";\n\nexport interface IHaveDataRouteWithData<T> extends IHaveDataRoute {\n\tdata: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { Bone } from \"./bone\";\n\nexport interface IHaveSkeleton {\n\tbones: Bone[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PageData } from \"./page-data\";\n\nexport interface IPage<TData extends PageData> {\n\tdata: TData;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { ImageSource } from \"./image-source\";\nimport type { PixMedia } from \"./pix-media\";\n\nexport interface Image extends PixMedia {\n\treadonly $type: \"image\";\n\tsources: ImageSource[];\n\ttype: \"image\";\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMeta } from \"./pix-meta\";\n\nexport interface ImageMeta extends PixMeta {}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { ImageMeta } from \"./image-meta\";\nimport type { MediaSource } from \"./media-source\";\nimport type { SizesItem } from \"./sizes-item\";\n\nexport interface ImageSource extends MediaSource<ImageMeta> {\n\tsizes: SizesItem[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface LocalizedObject<T> {\n\t[locale: string]: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { LocalizedObject } from \"./localized-object\";\n\nexport interface LocalizedString extends LocalizedObject<string> {}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileMeta } from \"./file-meta\";\nimport type { FileSrc } from \"./file-src\";\nimport type { MediaSourceBase } from \"./media-source-base\";\n\nexport interface MediaSource<TMeta extends FileMeta> extends MediaSourceBase {\n\tsrcSet: FileSrc<TMeta>[];\n\tmediaQuery: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileSrcBase } from \"./file-src-base\";\n\nexport interface MediaSourceBase {\n\tsrcSet: FileSrcBase[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileSrc } from \"./file-src\";\nimport type { ImageMeta } from \"./image-meta\";\nimport type { LocalizedObject } from \"./localized-object\";\nimport type { LocalizedString } from \"./localized-string\";\n\nexport interface OpenGraphData {\n\ttitle: LocalizedString;\n\tdescription: LocalizedString;\n\timage: LocalizedObject<FileSrc<ImageMeta>>;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PageBase } from \"./page-base\";\nimport type { PageData } from \"./page-data\";\n\nexport interface Page<T extends PageData> extends PageBase {\n\tdata: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { Bone } from \"./bone\";\nimport type { LocalizedString } from \"./localized-string\";\nimport type { OpenGraphData } from \"./open-graph-data\";\nimport type { PublishStatus } from \"./publish-status\";\n\nexport interface PageBase {\n\tid: string;\n\turl: string;\n\troute: string;\n\torder: number;\n\tpublishStatus: PublishStatus;\n\ttitle: LocalizedString;\n\topenGraph: OpenGraphData;\n\tbones: Bone[];\n\tchildren: PageBase[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface PageData {\n\ttype: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { MediaSourceBase } from \"./media-source-base\";\n\nexport interface PixMedia {\n\tsources: MediaSourceBase[];\n\ttype: \"image\" | \"video\";\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileMeta } from \"./file-meta\";\n\nexport interface PixMeta extends FileMeta {\n\twidth: number;\n\theight: number;\n\tratio: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport enum PublishStatus {\n\tNotSet = 0,\n\tDraft = 1,\n\tPublished = 2,\n\tArchived = 3,\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { SizesWidthUnit } from \"./sizes-width-unit\";\n\nexport interface SizesItem {\n\twidth: number;\n\tunit: SizesWidthUnit;\n\tmediaQuery: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport enum SizesWidthUnit {\n\tPx = \"Px\",\n\tEm = \"Em\",\n\tVw = \"Vw\",\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMeta } from \"./pix-meta\";\n\nexport interface SvgMeta extends PixMeta {\n\tpreciseWidth: number;\n\tpreciseHeight: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMedia } from \"./pix-media\";\nimport type { VideoSource } from \"./video-source\";\n\nexport interface Video extends PixMedia {\n\treadonly $type: \"video\";\n\tsources: VideoSource[];\n\ttype: \"video\";\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMeta } from \"./pix-meta\";\n\nexport interface VideoMeta extends PixMeta {\n\tduration: number;\n\tfullFormat: string;\n\thasAudio: boolean;\n\tframeRate: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { MediaSource } from \"./media-source\";\nimport type { VideoMeta } from \"./video-meta\";\n\nexport interface VideoSource extends MediaSource<VideoMeta> {}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { Bone } from \"./bone\";\n\nexport interface View {\n\tid: string;\n\tcode: string;\n\tbones: Bone[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport * from \"./bone\";\nexport * from \"./file-format\";\nexport * from \"./file-meta\";\nexport * from \"./file-src\";\nexport * from \"./file-src-base\";\nexport * from \"./i-equatable\";\nexport * from \"./i-have-data-route\";\nexport * from \"./i-have-data-route-with-data\";\nexport * from \"./i-have-skeleton\";\nexport * from \"./i-page\";\nexport * from \"./image\";\nexport * from \"./image-meta\";\nexport * from \"./image-source\";\nexport * from \"./localized-object\";\nexport * from \"./localized-string\";\nexport * from \"./media-source\";\nexport * from \"./media-source-base\";\nexport * from \"./open-graph-data\";\nexport * from \"./page\";\nexport * from \"./page-base\";\nexport * from \"./page-data\";\nexport * from \"./pix-media\";\nexport * from \"./pix-meta\";\nexport * from \"./publish-status\";\nexport * from \"./sizes-item\";\nexport * from \"./sizes-width-unit\";\nexport * from \"./svg-meta\";\nexport * from \"./video\";\nexport * from \"./video-meta\";\nexport * from \"./video-source\";\nexport * from \"./view\";\n","import type { Signal } from \"@angular/core\";\n\nimport { isLocalUrlString } from \"../core/utils\";\nimport type { LocalizedObject, LocalizedString } from \"../generated\";\n\nexport abstract class LocalizeServiceBase {\n\tpublic abstract get locale(): Signal<string>;\n\n\tpublic getLocalized<T>(value: LocalizedObject<T>, defaultValue: T, locale?: string): T {\n\t\tif (value === undefined) return defaultValue;\n\n\t\tlocale = locale ?? this.locale();\n\n\t\tconst obj = value[locale] ?? defaultValue;\n\t\treturn obj;\n\t}\n\n\tpublic getLocalizedText(value: LocalizedString, locale?: string): string {\n\t\treturn this.getLocalized<string>(value, \"\", locale);\n\t}\n\n\tpublic isLocalUrl(value: LocalizedString, locale?: string): boolean {\n\t\tconst url = this.getLocalizedText(value, locale);\n\t\treturn isLocalUrlString(url);\n\t}\n}\n","import { inject, Pipe, type PipeTransform } from \"@angular/core\";\nimport { DomSanitizer, type SafeResourceUrl } from \"@angular/platform-browser\";\n\nimport type { LocalizedObject, LocalizedString } from \"../generated\";\nimport { LocalizeServiceBase } from \"./LocalizeServiceBase\";\n\n@Pipe({ name: \"localize\", pure: false })\nexport class LocalizePipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): string {\n\t\tif (value === undefined || value === null) return \"\";\n\n\t\treturn this._localizeService.getLocalizedText(value, locale);\n\t}\n}\n\n@Pipe({ name: \"localizeObject\", pure: false })\nexport class LocalizeObjectPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform<T>(object: LocalizedObject<T>, locale?: string): T | undefined {\n\t\tif (object === undefined || object === null) return undefined;\n\n\t\treturn this._localizeService.getLocalized<T | undefined>(object, undefined, locale);\n\t}\n}\n\n@Pipe({ name: \"localizationIsNotEmpty\", pure: false })\nexport class LocalizationIsNotEmptyPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) return false;\n\n\t\tconst text = this._localizeService.getLocalizedText(value, locale);\n\n\t\tconst isNotEmpty = text.trim().length > 0;\n\t\treturn isNotEmpty;\n\t}\n}\n\n@Pipe({ name: \"localizationIsEmpty\", pure: false })\nexport class LocalizationIsEmptyPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) return true;\n\n\t\tconst text = this._localizeService.getLocalizedText(value, locale);\n\n\t\tconst isEmpty = text.trim().length === 0;\n\t\treturn isEmpty;\n\t}\n}\n\n@Pipe({ name: \"localizeUrl\", pure: false })\nexport class LocalizeUrlPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\tprivate readonly _domSanitizer = inject(DomSanitizer);\n\n\tpublic transform(value: LocalizedString, locale?: string): SafeResourceUrl {\n\t\tif (value === undefined || value === null) return \"\";\n\n\t\tconst urlString = this._localizeService.getLocalizedText(value, locale);\n\t\tconst safeUrl = this._domSanitizer.bypassSecurityTrustResourceUrl(urlString);\n\t\treturn safeUrl;\n\t}\n}\n\n@Pipe({ name: \"isLocalUrl\", pure: false })\nexport class IsLocalUrlPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) return false;\n\n\t\tconst isLocal = this._localizeService.isLocalUrl(value, locale);\n\t\treturn isLocal;\n\t}\n}\n\n@Pipe({ name: \"isNotLocalUrl\", pure: false })\nexport class IsNotLocalUrlPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) return false;\n\n\t\tconst isLocal = this._localizeService.isLocalUrl(value, locale);\n\t\treturn !isLocal;\n\t}\n}\n","import * as utils from \"../core/utils\";\nimport type * as M_CORE from \"../generated\";\n\nexport function getDefaultSrc(\n\timage: M_CORE.Image | undefined,\n): M_CORE.FileSrc<M_CORE.ImageMeta> | undefined {\n\tif (image === undefined || image === null) return undefined;\n\n\tconst files = image.sources.flatMap((x) => x.srcSet).sort(utils.descendingT((x) => x.meta.width));\n\n\tconst prefferedFiles = files.filter(\n\t\t(x) => x.mimeType === \"image/jpeg\" || x.mimeType === \"image/png\" || x.mimeType === \"image/gif\",\n\t);\n\n\tif (prefferedFiles.length > 0) return prefferedFiles[0];\n\n\tif (files.length > 0) return files[0];\n\n\treturn undefined;\n}\n","import { Directive, model } from \"@angular/core\";\n\nimport { SrcBaseDirective } from \"../core/src.directive\";\nimport type * as M_CORE from \"../generated\";\n\n@Directive({\n\tselector: \"[imgsrc]\",\n})\nexport class ImageSrcDirective extends SrcBaseDirective<M_CORE.Image> {\n\tpublic readonly data = model<M_CORE.Image | undefined>(undefined, { alias: \"imgsrc\" });\n}\n","import * as utils from \"../core/utils\";\nimport type * as M_CORE from \"../generated\";\nimport type { IHtmlPictureSource } from \"./IHtmlPictureSource\";\n\nexport function toHtmlPictureSources(imageSource: M_CORE.ImageSource): IHtmlPictureSource[] {\n\tconst sizes = utils.generateSizesString(imageSource.sizes);\n\tconst groupedByMime = utils.groupBy(imageSource.srcSet, (x) => x.mimeType);\n\n\tconst simpleSources: IHtmlPictureSource[] = [];\n\n\tfor (const mime in groupedByMime) {\n\t\tconst fileSrcs = groupedByMime[mime].sort(utils.ascendingT((x) => x.meta.width));\n\n\t\tconst srcSet = fileSrcs.map((x) => `${x.url} ${x.meta.width}w`).join(\",\");\n\n\t\tconst source: IHtmlPictureSource = { mime, sizes, srcSet, media: imageSource.mediaQuery };\n\n\t\tsimpleSources.push(source);\n\t}\n\n\treturn simpleSources;\n}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, effect, inject, input, output, signal } from \"@angular/core\";\n\nimport { DeviceServiceBase } from \"../core/device.service.base\";\nimport { IntersectionComponent } from \"../core/intersection.component\";\nimport { MediaObjectFit } from \"../core/MediaObjectFit\";\nimport { MediaStatus } from \"../core/MediaStatus\";\nimport type * as M_CORE from \"../generated\";\nimport { getDefaultSrc } from \"./getDefaultSrc\";\nimport type { IHtmlPictureSource } from \"./IHtmlPictureSource\";\nimport { ImageSrcDirective } from \"./imgsrc.directive\";\nimport { toHtmlPictureSources } from \"./toHtmlSources\";\n\n@Component({\n\tselector: \"bon-image\",\n\n\timports: [NgTemplateOutlet, IntersectionComponent],\n\ttemplateUrl: \"./marcy-image.component.html\",\n\tstyleUrl: \"./marcy-image.component.scss\",\n})\nexport class MarcyImageComponent {\n\tpublic readonly MediaStatus = MediaStatus;\n\tpublic readonly MarcyObjectFit = MediaObjectFit;\n\n\tpublic readonly src: ImageSrcDirective;\n\n\tpublic readonly isLoaded = output<void>();\n\tpublic readonly objectFit = input<MediaObjectFit>(MediaObjectFit.Original);\n\n\tpublic readonly sources = signal<IHtmlPictureSource[]>([]);\n\tpublic readonly status = signal<MediaStatus>(MediaStatus.NotSet);\n\tpublic readonly defaultSrc = signal(\"\");\n\n\tpublic readonly device = inject(DeviceServiceBase);\n\n\tconstructor() {\n\t\tconst src = inject(ImageSrcDirective, { optional: true });\n\n\t\tif (src === undefined || src === null)\n\t\t\tthrow new Error(\n\t\t\t\t`${MarcyImageComponent.name} should have [imgsrc] directive as source object`,\n\t\t\t);\n\n\t\tthis.src = src;\n\n\t\teffect(() => {\n\t\t\tthis.onSrcChange(this.src.data());\n\t\t});\n\n\t\teffect(() => {\n\t\t\tif (this.status() === MediaStatus.Loaded) {\n\t\t\t\tthis.isLoaded.emit();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate onSrcChange(val: M_CORE.Image | undefined) {\n\t\tthis.defaultSrc.set(getDefaultSrc(val)?.url ?? \"\");\n\n\t\tif (val === undefined || val === null || val.sources.length === 0) {\n\t\t\tthis.sources.set([]);\n\t\t\tthis.status.set(MediaStatus.NotSet);\n\t\t\treturn;\n\t\t}\n\n\t\tconst newSources = val.sources.flatMap(toHtmlPictureSources);\n\t\tthis.sources.set(newSources);\n\t\tthis.status.set(MediaStatus.NotLoaded);\n\t}\n\n\tpublic onLoad() {\n\t\tthis.status.set(MediaStatus.Loaded);\n\t}\n}\n","@if (sources().length > 0) {\n <div [class.knownRatio]=\"src.ratio() > 0 && objectFit() === MarcyObjectFit.Original\"\n [class.cover]=\"objectFit() === MarcyObjectFit.Cover\"\n [class.contain]=\"objectFit() === MarcyObjectFit.Contain\"\n [class.loaded]=\"status() === MediaStatus.Loaded\"\n class=\"picture-container\">\n\n <ng-template #pictureTemplate>\n <picture>\n @for (source of sources(); track $index) {\n <source [srcset]=\"source.srcSet\"\n [attr.media]=\"source.media.length > 0 ? source.media : undefined\"\n [attr.type]=\"source.mime.length > 0 ? source.mime : undefined\"\n [attr.sizes]=\"source.sizes.length > 0 ? source.sizes : undefined\" />\n }\n <img [src]=\"defaultSrc()\" (load)=\"onLoad()\" alt=\"\" />\n </picture>\n </ng-template>\n\n @if (device.isSSR) {\n <noscript>\n <ng-container *ngTemplateOutlet=\"pictureTemplate\"></ng-container>\n </noscript>\n } @else {\n <bon-intersection #intersectionZone [session]=\"src\">\n @if (intersectionZone.isIntersected()) {\n <ng-container *ngTemplateOutlet=\"pictureTemplate\"></ng-container>\n }\n </bon-intersection>\n }\n\n @if (src.ratio() > 0 && objectFit() === MarcyObjectFit.Original) {\n <div [style.padding-top]=\"100 / src.ratio() +'%'\"></div>\n }\n </div>\n}\n","import { Directive, model } from \"@angular/core\";\n\nimport { SrcBaseDirective } from \"../core/src.directive\";\nimport type * as M_CORE from \"../generated\";\n\n@Directive({\n\tselector: \"[vidsrc]\",\n})\nexport class VideoSrcDirective extends SrcBaseDirective<M_CORE.Video> {\n\tpublic readonly data = model<M_CORE.Video | undefined>(undefined, { alias: \"vidsrc\" });\n}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport {\n\tComponent,\n\ttype ElementRef,\n\teffect,\n\tinject,\n\tinput,\n\toutput,\n\tsignal,\n\tviewChild,\n} from \"@angular/core\";\n\nimport { DeviceServiceBase } from \"../core/device.service.base\";\nimport { IntersectionComponent } from \"../core/intersection.component\";\nimport { MediaObjectFit } from \"../core/MediaObjectFit\";\nimport { MediaStatus } from \"../core/MediaStatus\";\nimport { descendingT, matchesMediaQuery } from \"../core/utils\";\nimport type * as M_CORE from \"../generated\";\nimport { VideoSrcDirective } from \"./vidsrc.directive\";\n\nfunction isWebM(src: M_CORE.FileSrc<M_CORE.ImageMeta>): boolean {\n\treturn src.mimeType === \"video/webm\";\n}\n\n@Component({\n\tselector: \"bon-video\",\n\n\timports: [NgTemplateOutlet, IntersectionComponent],\n\ttemplateUrl: \"./marcy-video.component.html\",\n\tstyleUrl: \"./marcy-video.component.scss\",\n})\nexport class MarcyVideoComponent {\n\tpublic readonly MediaStatus = MediaStatus;\n\tpublic readonly MarcyObjectFit = MediaObjectFit;\n\n\tpublic readonly src: VideoSrcDirective;\n\n\tpublic readonly isLoaded = output<void>();\n\n\tpublic readonly objectFit = input<MediaObjectFit>(MediaObjectFit.Original);\n\n\tpublic readonly videoRef = viewChild<ElementRef<HTMLVideoElement>>(\"video\");\n\n\tpublic readonly status = signal<MediaStatus>(MediaStatus.NotSet);\n\tpublic readonly source = signal<M_CORE.FileSrc<M_CORE.VideoMeta> | undefined>(undefined);\n\n\tpublic readonly device = inject(DeviceServiceBase);\n\n\tprivate readonly _srcDir = inject(VideoSrcDirective, { optional: true });\n\n\tconstructor() {\n\t\tif (this._srcDir === undefined || this._srcDir === null)\n\t\t\tthrow new Error(\n\t\t\t\t`${MarcyVideoComponent.name} should have [vidsrc] directive as source object`,\n\t\t\t);\n\n\t\tthis.src = this._srcDir;\n\n\t\teffect(() => {\n\t\t\tthis.src.data();\n\t\t\tthis.videoRef();\n\t\t\tthis.updateSources();\n\t\t\tthis.subscribeToMediaQueryChange();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tif (this.status() === MediaStatus.Loaded) {\n\t\t\t\tthis.isLoaded.emit();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate subscribeToMediaQueryChange(): void {\n\t\tthis.src.watchMediaQueries().subscribe(() => {\n\t\t\tconsole.log(\"MarcyVideoComponent watchMediaQueries\");\n\t\t\tthis.updateSources();\n\t\t});\n\t}\n\n\tprivate updateSources() {\n\t\tconsole.log(\"MarcyVideoComponent updateSources\");\n\n\t\tthis.source.set(this.findMoreSuitableSource());\n\n\t\tconsole.log(\"MarcyVideoComponent new source\", this.source());\n\n\t\tconst src = this.source();\n\n\t\tif (this.status() === MediaStatus.NotSet && src === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (src === undefined) {\n\t\t\tthis.status.set(MediaStatus.NotSet);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.status.set(MediaStatus.NotLoaded);\n\t}\n\n\tpublic onLoad() {\n\t\tthis.status.set(MediaStatus.Loaded);\n\t}\n\n\tprivate findMoreSuitableSource(): M_CORE.FileSrc<M_CORE.VideoMeta> | undefined {\n\t\tconst ref = this.videoRef();\n\t\tif (ref === undefined) {\n\t\t\tconsole.log(\"skipping findMoreSuitableSource. videoRef is empty still\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst videoSources = this.src.data()?.sources ?? [];\n\n\t\tconst currentVideoWidth = ref.nativeElement.clientWidth;\n\t\tconst realPixelsVideoWidth = this.device.devicePixelRatio * currentVideoWidth;\n\n\t\tconsole.log(`MarcyVideoComponent currentVideoWidth ${currentVideoWidth}`);\n\t\tconsole.log(`MarcyVideoComponent realPixelsVideoWidth ${realPixelsVideoWidth}`);\n\n\t\tfor (let i = 0; i < videoSources.length; i++) {\n\t\t\tconst videoSource = videoSources[i];\n\n\t\t\tif (!matchesMediaQuery(videoSource.mediaQuery)) continue;\n\n\t\t\t// SSR\n\t\t\tif (typeof ref.nativeElement.canPlayType !== \"function\") {\n\t\t\t\tconst mp4Srcs = videoSource.srcSet\n\t\t\t\t\t.filter((x) => x.mimeType === \"video/mp4\")\n\t\t\t\t\t.sort(descendingT((x) => x.meta.width));\n\n\t\t\t\treturn mp4Srcs[0];\n\t\t\t}\n\n\t\t\tconst fileSrcs = videoSource.srcSet\n\t\t\t\t.filter((x) => ref.nativeElement.canPlayType(x.mimeType))\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\tif (a.meta.width === b.meta.width) {\n\t\t\t\t\t\treturn isWebM(a) ? -1 : 1; // if same width prefer webM\n\t\t\t\t\t}\n\n\t\t\t\t\t// else prefer smallest\n\t\t\t\t\treturn a.meta.width <= b.meta.width ? -1 : 1;\n\t\t\t\t}); // smallest video\n\n\t\t\tif (fileSrcs.length === 0) continue;\n\n\t\t\t// console.log('sources ', fileSrcs);\n\n\t\t\tlet bestSrc = fileSrcs[0];\n\n\t\t\tfor (let i = 1; i < fileSrcs.length; i++) {\n\t\t\t\tconst fileSrc = fileSrcs[i];\n\n\t\t\t\tconst currentDiff = fileSrc.meta.width - realPixelsVideoWidth;\n\n\t\t\t\t// console.log(`browser video currentDiff ${currentDiff}`)\n\n\t\t\t\t// too big video source width\n\t\t\t\tif (currentDiff > 0) break;\n\n\t\t\t\tbestSrc = fileSrc;\n\t\t\t}\n\n\t\t\tconsole.log(`browser found suitable video ${bestSrc.url}`);\n\n\t\t\treturn bestSrc;\n\t\t}\n\n\t\treturn undefined;\n\t}\n}\n","<div\n [class.knownRatio]=\"\n src.ratio() > 0 && objectFit() === MarcyObjectFit.Original\n \"\n [class.cover]=\"objectFit() === MarcyObjectFit.Cover\"\n [class.contain]=\"objectFit() === MarcyObjectFit.Contain\"\n [class.loaded]=\"status() === MediaStatus.Loaded\"\n class=\"video-container\"\n>\n @if (device.isSSR) {\n <ng-container *ngTemplateOutlet=\"ssrTemplate\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"browserTemplate\"></ng-container>\n }\n\n <ng-template #videoTemplate>\n <video\n #video\n [src]=\"source()?.url ?? ''\"\n (load)=\"onLoad()\"\n (canplay)=\"video.muted = true; video.play()\"\n playsInline\n autoplay\n loop\n muted\n ></video>\n </ng-template>\n\n <ng-template #ssrTemplate>\n @if (device.isSSR) {\n <noscript>\n <ng-container *ngTemplateOutlet=\"videoTemplate\"></ng-container>\n </noscript>\n }\n </ng-template>\n\n <ng-template #browserTemplate>\n <bon-intersection #intersectionZone [session]=\"src\">\n <ng-container *ngTemplateOutlet=\"videoTemplate\"></ng-container>\n </bon-intersection>\n </ng-template>\n\n @if (src.ratio() > 0 && objectFit() === MarcyObjectFit.Original) {\n <div [style.padding-top]=\"100 / src.ratio() + '%'\"></div>\n }\n</div>\n","import { Component, input, output } from \"@angular/core\";\n\nimport { MediaObjectFit } from \"../core/MediaObjectFit\";\nimport type * as M_CORE from \"../generated\";\nimport { ImageSrcDirective } from \"../marcy-image\";\nimport { MarcyImageComponent } from \"../marcy-image/marcy-image.component\";\nimport { VideoSrcDirective } from \"../marcy-video\";\nimport { MarcyVideoComponent } from \"../marcy-video/marcy-video.component\";\n\n@Component({\n\tselector: \"bon-media\",\n\n\timports: [MarcyImageComponent, MarcyVideoComponent, VideoSrcDirective, ImageSrcDirective],\n\ttemplateUrl: \"./marcy-media.component.html\",\n\tstyleUrl: \"./marcy-media.component.scss\",\n})\nexport class MarcyMediaComponent {\n\tpublic readonly MarcyObjectFit = MediaObjectFit;\n\n\tpublic readonly isLoaded = output<void>();\n\n\tpublic readonly src = input<M_CORE.Video | M_CORE.Image | undefined>();\n\tpublic readonly objectFit = input<MediaObjectFit>(MediaObjectFit.Original);\n\n\tpublic onLoad() {\n\t\tthis.isLoaded.emit();\n\t}\n}\n","@if (src(); as mediaSrc) {\n @if (mediaSrc.type === 'image') {\n <bon-image\n [imgsrc]=\"mediaSrc\"\n [objectFit]=\"objectFit()\"\n (isLoaded)=\"onLoad()\"\n ></bon-image>\n } @else if (mediaSrc.type === 'video') {\n <bon-video\n [vidsrc]=\"mediaSrc\"\n [objectFit]=\"objectFit()\"\n (isLoaded)=\"onLoad()\"\n ></bon-video>\n }\n}\n","import type { Type } from \"@angular/core\";\n\nimport type { IBoneComponent } from \"./IBoneComponent\";\n\nexport class BoneMap extends Map<string, Type<any>> {\n\tpublic getRequired(key: string): Type<IBoneComponent> {\n\t\tconst value = this.get(key);\n\n\t\tif (value === undefined || value === null) {\n\t\t\tthrow Error(`BoneMap doesn't contain type for key = ${key}`);\n\t\t}\n\n\t\treturn value;\n\t}\n}\n","import { Directive, model } from \"@angular/core\";\n\nimport type { Bone } from \"../generated\";\n\n@Directive({\n\tselector: \"[bonBoneDir]\",\n})\nexport class BoneDirective<T extends Bone = Bone> {\n\tpublic readonly bone = model.required<T>();\n}\n","import { Directive, inject, ViewContainerRef } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[bonSkeletonAnchor]\",\n})\nexport class SkeletonAnchorDirective {\n\tpublic readonly viewContainerRef = inject(ViewContainerRef);\n}\n","import { JsonPipe } from \"@angular/common\";\nimport { Component, inject } from \"@angular/core\";\n\nimport type { Bone } from \"../generated\";\nimport { BoneDirective } from \"./bone.directive\";\nimport type { IBoneComponent } from \"./IBoneComponent\";\n\n@Component({\n\tselector: \"bon-unknown-bone\",\n\n\timports: [JsonPipe],\n\thostDirectives: [{ directive: BoneDirective, inputs: [\"bone\"], outputs: [\"boneChange\"] }],\n\ttemplate: `@if (bd.bone(); as bone) {\n <h2>unknown bone {{bone.type}}</h2>\n <div>{{bone | json}}</div>\n } @else{\n bone is undefined\n }`,\n\tstyles: [\n\t\t`:host{\n display: block;\n border: 2px solid red;\n box-sizing: border-box;\n }`,\n\t],\n})\nexport class UnknownBoneComponent implements IBoneComponent {\n\tpublic readonly bd = inject(BoneDirective<Bone>, { host: true });\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\teffect,\n\tinput,\n\ttype Type,\n\tviewChild,\n} from \"@angular/core\";\n\nimport type { Bone } from \"../generated\";\nimport type { IBoneComponent } from \"./IBoneComponent\";\nimport { SkeletonAnchorDirective } from \"./skeleton-anchor.directive\";\nimport { UnknownBoneComponent } from \"./unknown-bone.component\";\n\n@Component({\n\tselector: \"bon-skeleton\",\n\timports: [SkeletonAnchorDirective],\n\ttemplateUrl: \"./skeleton.component.html\",\n\tstyleUrl: \"./skeleton.component.scss\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonComponent {\n\tpublic readonly skeletonAnchor = viewChild.required(SkeletonAnchorDirective);\n\n\tpublic readonly map = input.required<Map<string, Type<IBoneComponent>>>();\n\n\tpublic readonly bones = input.required<Bone[]>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst anchor = this.skeletonAnchor();\n\t\t\tconst bones = this.bones();\n\t\t\tconst mapVal = this.map();\n\n\t\t\tconst viewContainerRef = anchor.viewContainerRef;\n\t\t\tviewContainerRef.clear();\n\n\t\t\tif (mapVal === undefined || mapVal === null)\n\t\t\t\tthrow new Error('add type map with input: [map]=\"...\"');\n\n\t\t\tfor (const bone of bones) {\n\t\t\t\tlet componentType = mapVal.get(bone.type);\n\n\t\t\t\tif (componentType === undefined || componentType === null) {\n\t\t\t\t\tconsole.warn(`Mapping type for ${bone.type} not found`);\n\t\t\t\t\tcomponentType = UnknownBoneComponent;\n\t\t\t\t}\n\n\t\t\t\tviewContainerRef.createComponent(componentType).setInput(\"bone\", bone);\n\t\t\t}\n\t\t});\n\t}\n}\n","<ng-template bonSkeletonAnchor></ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["utils.distinct","utils.descendingT","utils.generateSizesString","utils.groupBy","utils.ascendingT","i1.BoneDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"candy-kingdom-bonnie.mjs","sources":["../../../../libs/bonnie/src/lib/core/device.service.ts","../../../../libs/bonnie/src/lib/core/device.service.base.ts","../../../../libs/bonnie/src/lib/core/emptyBone.ts","../../../../libs/bonnie/src/lib/core/emptyImage.ts","../../../../libs/bonnie/src/lib/core/emptyLocalizedString.ts","../../../../libs/bonnie/src/lib/core/emptyVideo.ts","../../../../libs/bonnie/src/lib/core/encode-uri.pipe.ts","../../../../libs/bonnie/src/lib/core/intersection.component.ts","../../../../libs/bonnie/src/lib/core/MediaObjectFit.ts","../../../../libs/bonnie/src/lib/core/MediaStatus.ts","../../../../libs/bonnie/src/lib/core/utils.ts","../../../../libs/bonnie/src/lib/core/src.directive.ts","../../../../libs/bonnie/src/lib/generated/bone.ts","../../../../libs/bonnie/src/lib/generated/file-format.ts","../../../../libs/bonnie/src/lib/generated/file-meta.ts","../../../../libs/bonnie/src/lib/generated/file-src.ts","../../../../libs/bonnie/src/lib/generated/file-src-base.ts","../../../../libs/bonnie/src/lib/generated/i-equatable.ts","../../../../libs/bonnie/src/lib/generated/i-have-data-route.ts","../../../../libs/bonnie/src/lib/generated/i-have-data-route-with-data.ts","../../../../libs/bonnie/src/lib/generated/i-have-skeleton.ts","../../../../libs/bonnie/src/lib/generated/i-page.ts","../../../../libs/bonnie/src/lib/generated/image.ts","../../../../libs/bonnie/src/lib/generated/image-meta.ts","../../../../libs/bonnie/src/lib/generated/image-source.ts","../../../../libs/bonnie/src/lib/generated/localized-object.ts","../../../../libs/bonnie/src/lib/generated/localized-string.ts","../../../../libs/bonnie/src/lib/generated/media-source.ts","../../../../libs/bonnie/src/lib/generated/media-source-base.ts","../../../../libs/bonnie/src/lib/generated/open-graph-data.ts","../../../../libs/bonnie/src/lib/generated/page.ts","../../../../libs/bonnie/src/lib/generated/page-base.ts","../../../../libs/bonnie/src/lib/generated/page-data.ts","../../../../libs/bonnie/src/lib/generated/pix-media.ts","../../../../libs/bonnie/src/lib/generated/pix-meta.ts","../../../../libs/bonnie/src/lib/generated/publish-status.ts","../../../../libs/bonnie/src/lib/generated/sizes-item.ts","../../../../libs/bonnie/src/lib/generated/sizes-width-unit.ts","../../../../libs/bonnie/src/lib/generated/svg-meta.ts","../../../../libs/bonnie/src/lib/generated/video.ts","../../../../libs/bonnie/src/lib/generated/video-meta.ts","../../../../libs/bonnie/src/lib/generated/video-source.ts","../../../../libs/bonnie/src/lib/generated/view.ts","../../../../libs/bonnie/src/lib/generated/index.ts","../../../../libs/bonnie/src/lib/localization/LocalizeServiceBase.ts","../../../../libs/bonnie/src/lib/localization/localize.pipe.ts","../../../../libs/bonnie/src/lib/marcy-image/getDefaultSrc.ts","../../../../libs/bonnie/src/lib/marcy-image/imgsrc.directive.ts","../../../../libs/bonnie/src/lib/marcy-image/toHtmlSources.ts","../../../../libs/bonnie/src/lib/marcy-image/marcy-image.component.ts","../../../../libs/bonnie/src/lib/marcy-image/marcy-image.component.html","../../../../libs/bonnie/src/lib/marcy-video/vidsrc.directive.ts","../../../../libs/bonnie/src/lib/marcy-video/marcy-video.component.ts","../../../../libs/bonnie/src/lib/marcy-video/marcy-video.component.html","../../../../libs/bonnie/src/lib/marcy-media/marcy-media.component.ts","../../../../libs/bonnie/src/lib/marcy-media/marcy-media.component.html","../../../../libs/bonnie/src/lib/skeleton/BoneMap.ts","../../../../libs/bonnie/src/lib/skeleton/bone.directive.ts","../../../../libs/bonnie/src/lib/skeleton/skeleton-anchor.directive.ts","../../../../libs/bonnie/src/lib/skeleton/unknown-bone.component.ts","../../../../libs/bonnie/src/lib/skeleton/skeleton.component.ts","../../../../libs/bonnie/src/lib/skeleton/skeleton.component.html","../../../../libs/bonnie/src/candy-kingdom-bonnie.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\nimport type { DeviceServiceBase } from \"./device.service.base\";\n\n@Injectable()\nexport class DeviceService implements DeviceServiceBase {\n\tpublic readonly devicePixelRatio = typeof window === \"undefined\" ? 1 : window.devicePixelRatio;\n\tpublic readonly isSSR = typeof window === \"undefined\";\n}\n","export abstract class DeviceServiceBase {\n\tpublic abstract get isSSR(): boolean;\n\tpublic abstract get devicePixelRatio(): number;\n}\n","import type { Bone } from \"../generated\";\n\nexport function emptyBone(): Bone {\n\treturn {\n\t\tstyle: \"\",\n\t\tmediaQuery: \"\",\n\t\tenabled: true,\n\t\ttype: \"\",\n\t};\n}\n","import type { Image } from \"../generated\";\n\nexport function emptyImage(): Image {\n\treturn {\n\t\t$type: \"image\", // todo: remove\n\t\ttype: \"image\",\n\t\tsources: [],\n\t};\n}\n","import type { LocalizedString } from \"../generated\";\n\nexport function emptyLocalizedString(): LocalizedString {\n\treturn {};\n}\n","import type { Video } from \"../generated\";\n\nexport function emptyVideo(): Video {\n\treturn {\n\t\t$type: \"video\", // todo: remove\n\t\ttype: \"video\",\n\t\tsources: [],\n\t};\n}\n","import { Pipe, type PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"encodeURIComponent\", pure: true })\nexport class EncodeURIComponentPipe implements PipeTransform {\n\tpublic transform(value: string): string {\n\t\treturn encodeURIComponent(value);\n\t}\n}\n","import {\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\teffect,\n\tinject,\n\tinput,\n\toutput,\n\tsignal,\n} from \"@angular/core\";\n\n@Component({\n\tselector: \"bon-intersection\",\n\ttemplate: \"<ng-content></ng-content>\",\n\tstyles: [\":host{display:block}\"],\n})\nexport class IntersectionComponent {\n\tpublic readonly intersected = output<void>();\n\n\tpublic readonly session = input<unknown>();\n\n\tprivate readonly _hostRef = inject(ElementRef);\n\n\tprivate readonly _intersectionObserver?: IntersectionObserver;\n\tprivate readonly _isIntersected = signal<boolean>(false);\n\n\tpublic readonly isIntersected = this._isIntersected.asReadonly();\n\n\tprivate _session: unknown; // todo: remove\n\n\tconstructor() {\n\t\tif (typeof window === \"undefined\" || typeof IntersectionObserver === \"undefined\") {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._intersectionObserver = new IntersectionObserver(this.onIntersection.bind(this));\n\n\t\teffect(() => {\n\t\t\tif (this._isIntersected()) {\n\t\t\t\tthis.intersected.emit();\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst newSession = this.session();\n\n\t\t\tif (this._session === newSession) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconsole.log(\"reset intersection Observer\");\n\t\t\tthis._session = newSession;\n\t\t\tthis.reset();\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => this._intersectionObserver?.disconnect());\n\t}\n\n\tprivate reset(): void {\n\t\tif (this._intersectionObserver === undefined || this._intersectionObserver === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._intersectionObserver.unobserve(this._hostRef.nativeElement);\n\n\t\tthis._isIntersected.set(false);\n\n\t\tthis._intersectionObserver.observe(this._hostRef.nativeElement);\n\t}\n\n\tprivate onIntersection(\n\t\tentries: IntersectionObserverEntry[],\n\t\tobserver: IntersectionObserver,\n\t): void {\n\t\tif (entries.length > 1) {\n\t\t\tconsole.warn(\"multi entries!\");\n\t\t}\n\n\t\tconst isIntersecting = entries[0].isIntersecting;\n\t\tthis._isIntersected.set(isIntersecting);\n\n\t\tconsole.log(`intersected ${isIntersecting}`, this._hostRef.nativeElement);\n\n\t\t// only once will recieve intersection\n\t\tif (isIntersecting) {\n\t\t\tobserver.unobserve(this._hostRef.nativeElement);\n\t\t}\n\t}\n}\n","export enum MediaObjectFit {\n\tOriginal = \"Original\",\n\tCover = \"Cover\",\n\tContain = \"Contain\",\n}\n","export enum MediaStatus {\n\tNotSet = \"NotSet\",\n\tNotLoaded = \"NotLoaded\",\n\tLoading = \"Loading\",\n\tLoaded = \"Loaded\",\n}\n","import type * as M_CORE from \"../generated\";\n\n// https://stackoverflow.com/questions/42136098/array-groupby-in-typescript\n\nexport const groupBy = <T, K extends keyof any>(arr: T[], key: (i: T) => K) =>\n\tarr.reduce(\n\t\t(groups, item) => {\n\t\t\t(groups[key(item)] ||= []).push(item);\n\t\t\treturn groups;\n\t\t},\n\t\t{} as Record<K, T[]>,\n\t);\n\nexport function distinct<T>(value: T, index: number, array: T[]) {\n\treturn array.indexOf(value) === index;\n}\n\nexport function ascending(a: number, b: number) {\n\treturn a - b;\n}\n\nexport function ascendingT<T>(sel: (x: T) => number): (a: T, b: T) => number {\n\treturn (a: T, b: T) => ascending(sel(a), sel(b));\n}\n\nexport function descending(a: number, b: number) {\n\treturn b - a;\n}\n\nexport function descendingT<T>(sel: (x: T) => number): (a: T, b: T) => number {\n\treturn (a: T, b: T) => descending(sel(a), sel(b));\n}\n\nexport function generateSizesString(sizes: M_CORE.SizesItem[]): string {\n\tconst sizesString = sizes\n\t\t.sort((x) => x.width)\n\t\t.map((x) => `${x.mediaQuery} ${x.width}${x.unit.toLowerCase()}`.trim())\n\t\t.join(\",\");\n\n\treturn sizesString;\n}\n\nexport function matchesMediaQuery(mediaQuery?: string): boolean {\n\tconst isEmptyQuery =\n\t\tmediaQuery === null || mediaQuery === undefined || mediaQuery.trim().length === 0;\n\n\t// work for SSR and browser\n\tif (isEmptyQuery) {\n\t\treturn true;\n\t}\n\n\t// other queries disallowed in SSR\n\tif (typeof window === \"undefined\") {\n\t\treturn false;\n\t}\n\n\tconst mediaQueryList = window.matchMedia(mediaQuery);\n\n\treturn mediaQueryList.matches;\n}\n\nexport function isLocalUrlString(url: string): boolean {\n\tif (url === undefined || url === null || url.trim().length === 0) {\n\t\treturn true;\n\t}\n\n\tif (url.startsWith(\"//\")) {\n\t\treturn false;\n\t}\n\n\tif (url.startsWith(\"./\") || url.startsWith(\"/\")) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","import {\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tinject,\n\ttype ModelSignal,\n\toutput,\n\tsignal,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\nimport { fromEvent, merge, NEVER, type Observable, Subject, takeUntil } from \"rxjs\";\n\nimport type * as M_CORE from \"../generated\";\nimport * as utils from \"./utils\";\n\n@Directive()\nexport abstract class SrcBaseDirective<T extends M_CORE.Image | M_CORE.Video> {\n\tpublic readonly ratioChange = output<number>();\n\n\tprivate readonly _ratio = signal<number>(0);\n\tpublic readonly ratio = this._ratio.asReadonly();\n\n\tprivate readonly _queryChangeClearSubject = new Subject<void>();\n\n\tpublic abstract readonly data: ModelSignal<T | undefined>;\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ratio = this._ratio();\n\t\t\tthis.ratioChange.emit(ratio);\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst val = this.data();\n\t\t\tthis.onSrcChange(val);\n\t\t});\n\t}\n\n\tprivate onSrcChange(val: T | undefined): void {\n\t\tif (val !== undefined && val !== null && val.sources.length === 0) {\n\t\t\tconsole.warn(\"image should have sources!\");\n\t\t\tthis.data.set(undefined);\n\t\t\treturn;\n\t\t}\n\n\t\t// clear mediaQuery subscriptions\n\t\tthis._queryChangeClearSubject.next();\n\n\t\t// ratio\n\t\tthis._ratio.set(0);\n\n\t\tif (val === undefined || val.sources.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst allRatios = val.sources\n\t\t\t.flatMap((x) => x.srcSet)\n\t\t\t.map((x) => x.meta.ratio)\n\t\t\t.filter(utils.distinct);\n\n\t\tif (allRatios.length === 1) {\n\t\t\t// same ratio for all\n\t\t\tthis._ratio.set(allRatios[0]);\n\t\t\treturn;\n\t\t}\n\n\t\t// todo: check if this needed to be unsubscribed\n\t\tthis.watchMediaQueries().subscribe(() => {\n\t\t\tthis.calcRatio();\n\t\t\tconsole.log(\"watchMediaQueries calcRatio\");\n\t\t});\n\n\t\tthis.calcRatio();\n\t}\n\n\tprivate calcRatio(): void {\n\t\tconst data = this.data();\n\t\tif (data === undefined || data === null || data.sources.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < data.sources.length; i++) {\n\t\t\tconst source = data.sources[i];\n\t\t\tconst srcRatios = source.srcSet\n\t\t\t\t.sort(utils.descendingT((x) => x.meta.width))\n\t\t\t\t.map((x) => x.meta.ratio)\n\t\t\t\t.filter(utils.distinct);\n\n\t\t\tif (srcRatios.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (srcRatios.length > 1) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`each source should have srcSet with same ratio. founded: ${srcRatios.join(\", \")}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst ratio = srcRatios[0]; // most accurate ratio in biggest image\n\n\t\t\tif (source.mediaQuery.length === 0) {\n\t\t\t\tthis._ratio.set(ratio);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof window === \"undefined\" || typeof window.matchMedia === \"undefined\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst mediaQueryList = window.matchMedia(source.mediaQuery);\n\n\t\t\tif (mediaQueryList.matches) {\n\t\t\t\tthis._ratio.set(ratio);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic watchMediaQueries(): Observable<MediaQueryListEvent> {\n\t\tconsole.log(\"watchMediaQueries\");\n\t\tconst src = this.data();\n\n\t\tif (\n\t\t\tsrc === undefined ||\n\t\t\tsrc === null ||\n\t\t\ttypeof window === \"undefined\" ||\n\t\t\ttypeof window.matchMedia === \"undefined\"\n\t\t) {\n\t\t\treturn NEVER.pipe(\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t\ttakeUntil(this._queryChangeClearSubject),\n\t\t\t);\n\t\t}\n\n\t\tconst mediaQueries = src.sources\n\t\t\t.map((x) => x.mediaQuery)\n\t\t\t.filter(utils.distinct)\n\t\t\t.filter((x) => x.length > 0);\n\n\t\tconsole.log(\"watchMediaQueries mediaQueries\", mediaQueries);\n\t\tconst queryObservables = mediaQueries.map((media) => {\n\t\t\tconst queryList = window.matchMedia(media);\n\t\t\tconst observable = fromEvent<MediaQueryListEvent>(queryList, \"change\").pipe(\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t\ttakeUntil(this._queryChangeClearSubject),\n\t\t\t);\n\n\t\t\treturn observable;\n\t\t});\n\n\t\tconst combinedObservable = merge(...queryObservables);\n\t\treturn combinedObservable;\n\t}\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface Bone {\n\tstyle: string;\n\tmediaQuery: string;\n\tenabled: boolean;\n\ttype: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface FileFormat {\n\textension: string;\n\tmimeType: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface FileMeta {\n\tbyteCount: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileMeta } from \"./file-meta\";\nimport type { FileSrcBase } from \"./file-src-base\";\n\nexport interface FileSrc<T extends FileMeta> extends FileSrcBase {\n\tmeta: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface FileSrcBase {\n\tmimeType: string;\n\turl: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport type IEquatable<_T> = {};\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface IHaveDataRoute {\n\tdataRoute: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { IHaveDataRoute } from \"./i-have-data-route\";\n\nexport interface IHaveDataRouteWithData<T> extends IHaveDataRoute {\n\tdata: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { Bone } from \"./bone\";\n\nexport interface IHaveSkeleton {\n\tbones: Bone[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PageData } from \"./page-data\";\n\nexport interface IPage<TData extends PageData> {\n\tdata: TData;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { ImageSource } from \"./image-source\";\nimport type { PixMedia } from \"./pix-media\";\n\nexport interface Image extends PixMedia {\n\treadonly $type: \"image\";\n\tsources: ImageSource[];\n\ttype: \"image\";\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMeta } from \"./pix-meta\";\n\nexport interface ImageMeta extends PixMeta {}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { ImageMeta } from \"./image-meta\";\nimport type { MediaSource } from \"./media-source\";\nimport type { SizesItem } from \"./sizes-item\";\n\nexport interface ImageSource extends MediaSource<ImageMeta> {\n\tsizes: SizesItem[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface LocalizedObject<T> {\n\t[locale: string]: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { LocalizedObject } from \"./localized-object\";\n\nexport interface LocalizedString extends LocalizedObject<string> {}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileMeta } from \"./file-meta\";\nimport type { FileSrc } from \"./file-src\";\nimport type { MediaSourceBase } from \"./media-source-base\";\n\nexport interface MediaSource<TMeta extends FileMeta> extends MediaSourceBase {\n\tsrcSet: FileSrc<TMeta>[];\n\tmediaQuery: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileSrcBase } from \"./file-src-base\";\n\nexport interface MediaSourceBase {\n\tsrcSet: FileSrcBase[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileSrc } from \"./file-src\";\nimport type { ImageMeta } from \"./image-meta\";\nimport type { LocalizedObject } from \"./localized-object\";\nimport type { LocalizedString } from \"./localized-string\";\n\nexport interface OpenGraphData {\n\ttitle: LocalizedString;\n\tdescription: LocalizedString;\n\timage: LocalizedObject<FileSrc<ImageMeta>>;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PageBase } from \"./page-base\";\nimport type { PageData } from \"./page-data\";\n\nexport interface Page<T extends PageData> extends PageBase {\n\tdata: T;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { Bone } from \"./bone\";\nimport type { LocalizedString } from \"./localized-string\";\nimport type { OpenGraphData } from \"./open-graph-data\";\nimport type { PublishStatus } from \"./publish-status\";\n\nexport interface PageBase {\n\tid: string;\n\turl: string;\n\troute: string;\n\torder: number;\n\tpublishStatus: PublishStatus;\n\ttitle: LocalizedString;\n\topenGraph: OpenGraphData;\n\tbones: Bone[];\n\tchildren: PageBase[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport interface PageData {\n\ttype: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { MediaSourceBase } from \"./media-source-base\";\n\nexport interface PixMedia {\n\tsources: MediaSourceBase[];\n\ttype: \"image\" | \"video\";\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { FileMeta } from \"./file-meta\";\n\nexport interface PixMeta extends FileMeta {\n\twidth: number;\n\theight: number;\n\tratio: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport enum PublishStatus {\n\tNotSet = 0,\n\tDraft = 1,\n\tPublished = 2,\n\tArchived = 3,\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { SizesWidthUnit } from \"./sizes-width-unit\";\n\nexport interface SizesItem {\n\twidth: number;\n\tunit: SizesWidthUnit;\n\tmediaQuery: string;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport enum SizesWidthUnit {\n\tPx = \"Px\",\n\tEm = \"Em\",\n\tVw = \"Vw\",\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMeta } from \"./pix-meta\";\n\nexport interface SvgMeta extends PixMeta {\n\tpreciseWidth: number;\n\tpreciseHeight: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMedia } from \"./pix-media\";\nimport type { VideoSource } from \"./video-source\";\n\nexport interface Video extends PixMedia {\n\treadonly $type: \"video\";\n\tsources: VideoSource[];\n\ttype: \"video\";\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { PixMeta } from \"./pix-meta\";\n\nexport interface VideoMeta extends PixMeta {\n\tduration: number;\n\tfullFormat: string;\n\thasAudio: boolean;\n\tframeRate: number;\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { MediaSource } from \"./media-source\";\nimport type { VideoMeta } from \"./video-meta\";\n\nexport interface VideoSource extends MediaSource<VideoMeta> {}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nimport type { Bone } from \"./bone\";\n\nexport interface View {\n\tid: string;\n\tcode: string;\n\tbones: Bone[];\n}\n","/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport * from \"./bone\";\nexport * from \"./file-format\";\nexport * from \"./file-meta\";\nexport * from \"./file-src\";\nexport * from \"./file-src-base\";\nexport * from \"./i-equatable\";\nexport * from \"./i-have-data-route\";\nexport * from \"./i-have-data-route-with-data\";\nexport * from \"./i-have-skeleton\";\nexport * from \"./i-page\";\nexport * from \"./image\";\nexport * from \"./image-meta\";\nexport * from \"./image-source\";\nexport * from \"./localized-object\";\nexport * from \"./localized-string\";\nexport * from \"./media-source\";\nexport * from \"./media-source-base\";\nexport * from \"./open-graph-data\";\nexport * from \"./page\";\nexport * from \"./page-base\";\nexport * from \"./page-data\";\nexport * from \"./pix-media\";\nexport * from \"./pix-meta\";\nexport * from \"./publish-status\";\nexport * from \"./sizes-item\";\nexport * from \"./sizes-width-unit\";\nexport * from \"./svg-meta\";\nexport * from \"./video\";\nexport * from \"./video-meta\";\nexport * from \"./video-source\";\nexport * from \"./view\";\n","import type { Signal } from \"@angular/core\";\n\nimport { isLocalUrlString } from \"../core/utils\";\nimport type { LocalizedObject, LocalizedString } from \"../generated\";\n\nexport abstract class LocalizeServiceBase {\n\tpublic abstract get locale(): Signal<string>;\n\n\tpublic getLocalized<T>(value: LocalizedObject<T>, defaultValue: T, locale?: string): T {\n\t\tif (value === undefined) {\n\t\t\treturn defaultValue;\n\t\t}\n\n\t\tlocale = locale ?? this.locale();\n\n\t\tconst obj = value[locale] ?? defaultValue;\n\t\treturn obj;\n\t}\n\n\tpublic getLocalizedText(value: LocalizedString, locale?: string): string {\n\t\treturn this.getLocalized<string>(value, \"\", locale);\n\t}\n\n\tpublic isLocalUrl(value: LocalizedString, locale?: string): boolean {\n\t\tconst url = this.getLocalizedText(value, locale);\n\t\treturn isLocalUrlString(url);\n\t}\n}\n","import { inject, Pipe, type PipeTransform } from \"@angular/core\";\nimport { DomSanitizer, type SafeResourceUrl } from \"@angular/platform-browser\";\n\nimport type { LocalizedObject, LocalizedString } from \"../generated\";\nimport { LocalizeServiceBase } from \"./LocalizeServiceBase\";\n\n@Pipe({ name: \"localize\", pure: false })\nexport class LocalizePipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): string {\n\t\tif (value === undefined || value === null) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn this._localizeService.getLocalizedText(value, locale);\n\t}\n}\n\n@Pipe({ name: \"localizeObject\", pure: false })\nexport class LocalizeObjectPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform<T>(object: LocalizedObject<T>, locale?: string): T | undefined {\n\t\tif (object === undefined || object === null) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this._localizeService.getLocalized<T | undefined>(object, undefined, locale);\n\t}\n}\n\n@Pipe({ name: \"localizationIsNotEmpty\", pure: false })\nexport class LocalizationIsNotEmptyPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst text = this._localizeService.getLocalizedText(value, locale);\n\n\t\tconst isNotEmpty = text.trim().length > 0;\n\t\treturn isNotEmpty;\n\t}\n}\n\n@Pipe({ name: \"localizationIsEmpty\", pure: false })\nexport class LocalizationIsEmptyPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst text = this._localizeService.getLocalizedText(value, locale);\n\n\t\tconst isEmpty = text.trim().length === 0;\n\t\treturn isEmpty;\n\t}\n}\n\n@Pipe({ name: \"localizeUrl\", pure: false })\nexport class LocalizeUrlPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\tprivate readonly _domSanitizer = inject(DomSanitizer);\n\n\tpublic transform(value: LocalizedString, locale?: string): SafeResourceUrl {\n\t\tif (value === undefined || value === null) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst urlString = this._localizeService.getLocalizedText(value, locale);\n\t\tconst safeUrl = this._domSanitizer.bypassSecurityTrustResourceUrl(urlString);\n\t\treturn safeUrl;\n\t}\n}\n\n@Pipe({ name: \"isLocalUrl\", pure: false })\nexport class IsLocalUrlPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst isLocal = this._localizeService.isLocalUrl(value, locale);\n\t\treturn isLocal;\n\t}\n}\n\n@Pipe({ name: \"isNotLocalUrl\", pure: false })\nexport class IsNotLocalUrlPipe implements PipeTransform {\n\tprivate readonly _localizeService = inject(LocalizeServiceBase);\n\n\tpublic transform(value: LocalizedString, locale?: string): boolean {\n\t\tif (value === undefined || value === null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst isLocal = this._localizeService.isLocalUrl(value, locale);\n\t\treturn !isLocal;\n\t}\n}\n","import * as utils from \"../core/utils\";\nimport type * as M_CORE from \"../generated\";\n\nexport function getDefaultSrc(\n\timage: M_CORE.Image | undefined,\n): M_CORE.FileSrc<M_CORE.ImageMeta> | undefined {\n\tif (image === undefined || image === null) {\n\t\treturn undefined;\n\t}\n\n\tconst files = image.sources.flatMap((x) => x.srcSet).sort(utils.descendingT((x) => x.meta.width));\n\n\tconst prefferedFiles = files.filter(\n\t\t(x) => x.mimeType === \"image/jpeg\" || x.mimeType === \"image/png\" || x.mimeType === \"image/gif\",\n\t);\n\n\tif (prefferedFiles.length > 0) {\n\t\treturn prefferedFiles[0];\n\t}\n\n\tif (files.length > 0) {\n\t\treturn files[0];\n\t}\n\n\treturn undefined;\n}\n","import { Directive, model } from \"@angular/core\";\n\nimport { SrcBaseDirective } from \"../core/src.directive\";\nimport type * as M_CORE from \"../generated\";\n\n@Directive({\n\tselector: \"[imgsrc]\",\n})\nexport class ImageSrcDirective extends SrcBaseDirective<M_CORE.Image> {\n\tpublic readonly data = model<M_CORE.Image | undefined>(undefined, { alias: \"imgsrc\" });\n}\n","import * as utils from \"../core/utils\";\nimport type * as M_CORE from \"../generated\";\nimport type { IHtmlPictureSource } from \"./IHtmlPictureSource\";\n\nexport function toHtmlPictureSources(imageSource: M_CORE.ImageSource): IHtmlPictureSource[] {\n\tconst sizes = utils.generateSizesString(imageSource.sizes);\n\tconst groupedByMime = utils.groupBy(imageSource.srcSet, (x) => x.mimeType);\n\n\tconst simpleSources: IHtmlPictureSource[] = [];\n\n\tfor (const mime in groupedByMime) {\n\t\tconst fileSrcs = groupedByMime[mime].sort(utils.ascendingT((x) => x.meta.width));\n\n\t\tconst srcSet = fileSrcs.map((x) => `${x.url} ${x.meta.width}w`).join(\",\");\n\n\t\tconst source: IHtmlPictureSource = { mime, sizes, srcSet, media: imageSource.mediaQuery };\n\n\t\tsimpleSources.push(source);\n\t}\n\n\treturn simpleSources;\n}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, effect, inject, input, output, signal } from \"@angular/core\";\n\nimport { DeviceServiceBase } from \"../core/device.service.base\";\nimport { IntersectionComponent } from \"../core/intersection.component\";\nimport { MediaObjectFit } from \"../core/MediaObjectFit\";\nimport { MediaStatus } from \"../core/MediaStatus\";\nimport type * as M_CORE from \"../generated\";\nimport { getDefaultSrc } from \"./getDefaultSrc\";\nimport type { IHtmlPictureSource } from \"./IHtmlPictureSource\";\nimport { ImageSrcDirective } from \"./imgsrc.directive\";\nimport { toHtmlPictureSources } from \"./toHtmlSources\";\n\n@Component({\n\tselector: \"bon-image\",\n\n\timports: [NgTemplateOutlet, IntersectionComponent],\n\ttemplateUrl: \"./marcy-image.component.html\",\n\tstyleUrl: \"./marcy-image.component.scss\",\n})\nexport class MarcyImageComponent {\n\tpublic readonly MediaStatus = MediaStatus;\n\tpublic readonly MarcyObjectFit = MediaObjectFit;\n\n\tpublic readonly src: ImageSrcDirective;\n\n\tpublic readonly isLoaded = output<void>();\n\tpublic readonly objectFit = input<MediaObjectFit>(MediaObjectFit.Original);\n\n\tpublic readonly sources = signal<IHtmlPictureSource[]>([]);\n\tpublic readonly status = signal<MediaStatus>(MediaStatus.NotSet);\n\tpublic readonly defaultSrc = signal(\"\");\n\n\tpublic readonly device = inject(DeviceServiceBase);\n\n\tconstructor() {\n\t\tconst src = inject(ImageSrcDirective, { optional: true });\n\n\t\tif (src === undefined || src === null) {\n\t\t\tthrow new Error(\n\t\t\t\t`${MarcyImageComponent.name} should have [imgsrc] directive as source object`,\n\t\t\t);\n\t\t}\n\n\t\tthis.src = src;\n\n\t\teffect(() => {\n\t\t\tthis.onSrcChange(this.src.data());\n\t\t});\n\n\t\teffect(() => {\n\t\t\tif (this.status() === MediaStatus.Loaded) {\n\t\t\t\tthis.isLoaded.emit();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate onSrcChange(val: M_CORE.Image | undefined) {\n\t\tthis.defaultSrc.set(getDefaultSrc(val)?.url ?? \"\");\n\n\t\tif (val === undefined || val === null || val.sources.length === 0) {\n\t\t\tthis.sources.set([]);\n\t\t\tthis.status.set(MediaStatus.NotSet);\n\t\t\treturn;\n\t\t}\n\n\t\tconst newSources = val.sources.flatMap(toHtmlPictureSources);\n\t\tthis.sources.set(newSources);\n\t\tthis.status.set(MediaStatus.NotLoaded);\n\t}\n\n\tpublic onLoad() {\n\t\tthis.status.set(MediaStatus.Loaded);\n\t}\n}\n","@if (sources().length > 0) {\n <div [class.knownRatio]=\"src.ratio() > 0 && objectFit() === MarcyObjectFit.Original\"\n [class.cover]=\"objectFit() === MarcyObjectFit.Cover\"\n [class.contain]=\"objectFit() === MarcyObjectFit.Contain\"\n [class.loaded]=\"status() === MediaStatus.Loaded\"\n class=\"picture-container\">\n\n <ng-template #pictureTemplate>\n <picture>\n @for (source of sources(); track $index) {\n <source [srcset]=\"source.srcSet\"\n [attr.media]=\"source.media.length > 0 ? source.media : undefined\"\n [attr.type]=\"source.mime.length > 0 ? source.mime : undefined\"\n [attr.sizes]=\"source.sizes.length > 0 ? source.sizes : undefined\" />\n }\n <img [src]=\"defaultSrc()\" (load)=\"onLoad()\" alt=\"\" />\n </picture>\n </ng-template>\n\n @if (device.isSSR) {\n <noscript>\n <ng-container *ngTemplateOutlet=\"pictureTemplate\"></ng-container>\n </noscript>\n } @else {\n <bon-intersection #intersectionZone [session]=\"src\">\n @if (intersectionZone.isIntersected()) {\n <ng-container *ngTemplateOutlet=\"pictureTemplate\"></ng-container>\n }\n </bon-intersection>\n }\n\n @if (src.ratio() > 0 && objectFit() === MarcyObjectFit.Original) {\n <div [style.padding-top]=\"100 / src.ratio() +'%'\"></div>\n }\n </div>\n}\n","import { Directive, model } from \"@angular/core\";\n\nimport { SrcBaseDirective } from \"../core/src.directive\";\nimport type * as M_CORE from \"../generated\";\n\n@Directive({\n\tselector: \"[vidsrc]\",\n})\nexport class VideoSrcDirective extends SrcBaseDirective<M_CORE.Video> {\n\tpublic readonly data = model<M_CORE.Video | undefined>(undefined, { alias: \"vidsrc\" });\n}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport {\n\tComponent,\n\ttype ElementRef,\n\teffect,\n\tinject,\n\tinput,\n\toutput,\n\tsignal,\n\tviewChild,\n} from \"@angular/core\";\n\nimport { DeviceServiceBase } from \"../core/device.service.base\";\nimport { IntersectionComponent } from \"../core/intersection.component\";\nimport { MediaObjectFit } from \"../core/MediaObjectFit\";\nimport { MediaStatus } from \"../core/MediaStatus\";\nimport { descendingT, matchesMediaQuery } from \"../core/utils\";\nimport type * as M_CORE from \"../generated\";\nimport { VideoSrcDirective } from \"./vidsrc.directive\";\n\nfunction isWebM(src: M_CORE.FileSrc<M_CORE.ImageMeta>): boolean {\n\treturn src.mimeType === \"video/webm\";\n}\n\n@Component({\n\tselector: \"bon-video\",\n\n\timports: [NgTemplateOutlet, IntersectionComponent],\n\ttemplateUrl: \"./marcy-video.component.html\",\n\tstyleUrl: \"./marcy-video.component.scss\",\n})\nexport class MarcyVideoComponent {\n\tpublic readonly MediaStatus = MediaStatus;\n\tpublic readonly MarcyObjectFit = MediaObjectFit;\n\n\tpublic readonly src: VideoSrcDirective;\n\n\tpublic readonly isLoaded = output<void>();\n\n\tpublic readonly objectFit = input<MediaObjectFit>(MediaObjectFit.Original);\n\n\tpublic readonly videoRef = viewChild<ElementRef<HTMLVideoElement>>(\"video\");\n\n\tpublic readonly status = signal<MediaStatus>(MediaStatus.NotSet);\n\tpublic readonly source = signal<M_CORE.FileSrc<M_CORE.VideoMeta> | undefined>(undefined);\n\n\tpublic readonly device = inject(DeviceServiceBase);\n\n\tprivate readonly _srcDir = inject(VideoSrcDirective, { optional: true });\n\n\tconstructor() {\n\t\tif (this._srcDir === undefined || this._srcDir === null) {\n\t\t\tthrow new Error(\n\t\t\t\t`${MarcyVideoComponent.name} should have [vidsrc] directive as source object`,\n\t\t\t);\n\t\t}\n\n\t\tthis.src = this._srcDir;\n\n\t\teffect(() => {\n\t\t\tthis.src.data();\n\t\t\tthis.videoRef();\n\t\t\tthis.updateSources();\n\t\t\tthis.subscribeToMediaQueryChange();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tif (this.status() === MediaStatus.Loaded) {\n\t\t\t\tthis.isLoaded.emit();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate subscribeToMediaQueryChange(): void {\n\t\tthis.src.watchMediaQueries().subscribe(() => {\n\t\t\tconsole.log(\"MarcyVideoComponent watchMediaQueries\");\n\t\t\tthis.updateSources();\n\t\t});\n\t}\n\n\tprivate updateSources() {\n\t\tconsole.log(\"MarcyVideoComponent updateSources\");\n\n\t\tthis.source.set(this.findMoreSuitableSource());\n\n\t\tconsole.log(\"MarcyVideoComponent new source\", this.source());\n\n\t\tconst src = this.source();\n\n\t\tif (this.status() === MediaStatus.NotSet && src === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (src === undefined) {\n\t\t\tthis.status.set(MediaStatus.NotSet);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.status.set(MediaStatus.NotLoaded);\n\t}\n\n\tpublic onLoad() {\n\t\tthis.status.set(MediaStatus.Loaded);\n\t}\n\n\tprivate findMoreSuitableSource(): M_CORE.FileSrc<M_CORE.VideoMeta> | undefined {\n\t\tconst ref = this.videoRef();\n\t\tif (ref === undefined) {\n\t\t\tconsole.log(\"skipping findMoreSuitableSource. videoRef is empty still\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst videoSources = this.src.data()?.sources ?? [];\n\n\t\tconst currentVideoWidth = ref.nativeElement.clientWidth;\n\t\tconst realPixelsVideoWidth = this.device.devicePixelRatio * currentVideoWidth;\n\n\t\tconsole.log(`MarcyVideoComponent currentVideoWidth ${currentVideoWidth}`);\n\t\tconsole.log(`MarcyVideoComponent realPixelsVideoWidth ${realPixelsVideoWidth}`);\n\n\t\tfor (let i = 0; i < videoSources.length; i++) {\n\t\t\tconst videoSource = videoSources[i];\n\n\t\t\tif (!matchesMediaQuery(videoSource.mediaQuery)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// SSR\n\t\t\tif (typeof ref.nativeElement.canPlayType !== \"function\") {\n\t\t\t\tconst mp4Srcs = videoSource.srcSet\n\t\t\t\t\t.filter((x) => x.mimeType === \"video/mp4\")\n\t\t\t\t\t.sort(descendingT((x) => x.meta.width));\n\n\t\t\t\treturn mp4Srcs[0];\n\t\t\t}\n\n\t\t\tconst fileSrcs = videoSource.srcSet\n\t\t\t\t.filter((x) => ref.nativeElement.canPlayType(x.mimeType))\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\tif (a.meta.width === b.meta.width) {\n\t\t\t\t\t\treturn isWebM(a) ? -1 : 1; // if same width prefer webM\n\t\t\t\t\t}\n\n\t\t\t\t\t// else prefer smallest\n\t\t\t\t\treturn a.meta.width <= b.meta.width ? -1 : 1;\n\t\t\t\t}); // smallest video\n\n\t\t\tif (fileSrcs.length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// console.log('sources ', fileSrcs);\n\n\t\t\tlet bestSrc = fileSrcs[0];\n\n\t\t\tfor (let i = 1; i < fileSrcs.length; i++) {\n\t\t\t\tconst fileSrc = fileSrcs[i];\n\n\t\t\t\tconst currentDiff = fileSrc.meta.width - realPixelsVideoWidth;\n\n\t\t\t\t// console.log(`browser video currentDiff ${currentDiff}`)\n\n\t\t\t\t// too big video source width\n\t\t\t\tif (currentDiff > 0) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbestSrc = fileSrc;\n\t\t\t}\n\n\t\t\tconsole.log(`browser found suitable video ${bestSrc.url}`);\n\n\t\t\treturn bestSrc;\n\t\t}\n\n\t\treturn undefined;\n\t}\n}\n","<div\n [class.knownRatio]=\"\n src.ratio() > 0 && objectFit() === MarcyObjectFit.Original\n \"\n [class.cover]=\"objectFit() === MarcyObjectFit.Cover\"\n [class.contain]=\"objectFit() === MarcyObjectFit.Contain\"\n [class.loaded]=\"status() === MediaStatus.Loaded\"\n class=\"video-container\"\n>\n @if (device.isSSR) {\n <ng-container *ngTemplateOutlet=\"ssrTemplate\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"browserTemplate\"></ng-container>\n }\n\n <ng-template #videoTemplate>\n <video\n #video\n [src]=\"source()?.url ?? ''\"\n (load)=\"onLoad()\"\n (canplay)=\"video.muted = true; video.play()\"\n playsInline\n autoplay\n loop\n muted\n ></video>\n </ng-template>\n\n <ng-template #ssrTemplate>\n @if (device.isSSR) {\n <noscript>\n <ng-container *ngTemplateOutlet=\"videoTemplate\"></ng-container>\n </noscript>\n }\n </ng-template>\n\n <ng-template #browserTemplate>\n <bon-intersection #intersectionZone [session]=\"src\">\n <ng-container *ngTemplateOutlet=\"videoTemplate\"></ng-container>\n </bon-intersection>\n </ng-template>\n\n @if (src.ratio() > 0 && objectFit() === MarcyObjectFit.Original) {\n <div [style.padding-top]=\"100 / src.ratio() + '%'\"></div>\n }\n</div>\n","import { Component, input, output } from \"@angular/core\";\n\nimport { MediaObjectFit } from \"../core/MediaObjectFit\";\nimport type * as M_CORE from \"../generated\";\nimport { ImageSrcDirective } from \"../marcy-image\";\nimport { MarcyImageComponent } from \"../marcy-image/marcy-image.component\";\nimport { VideoSrcDirective } from \"../marcy-video\";\nimport { MarcyVideoComponent } from \"../marcy-video/marcy-video.component\";\n\n@Component({\n\tselector: \"bon-media\",\n\n\timports: [MarcyImageComponent, MarcyVideoComponent, VideoSrcDirective, ImageSrcDirective],\n\ttemplateUrl: \"./marcy-media.component.html\",\n\tstyleUrl: \"./marcy-media.component.scss\",\n})\nexport class MarcyMediaComponent {\n\tpublic readonly MarcyObjectFit = MediaObjectFit;\n\n\tpublic readonly isLoaded = output<void>();\n\n\tpublic readonly src = input<M_CORE.Video | M_CORE.Image | undefined>();\n\tpublic readonly objectFit = input<MediaObjectFit>(MediaObjectFit.Original);\n\n\tpublic onLoad() {\n\t\tthis.isLoaded.emit();\n\t}\n}\n","@if (src(); as mediaSrc) {\n @if (mediaSrc.type === 'image') {\n <bon-image\n [imgsrc]=\"mediaSrc\"\n [objectFit]=\"objectFit()\"\n (isLoaded)=\"onLoad()\"\n ></bon-image>\n } @else if (mediaSrc.type === 'video') {\n <bon-video\n [vidsrc]=\"mediaSrc\"\n [objectFit]=\"objectFit()\"\n (isLoaded)=\"onLoad()\"\n ></bon-video>\n }\n}\n","import type { Type } from \"@angular/core\";\n\nimport type { IBoneComponent } from \"./IBoneComponent\";\n\nexport class BoneMap extends Map<string, Type<any>> {\n\tpublic getRequired(key: string): Type<IBoneComponent> {\n\t\tconst value = this.get(key);\n\n\t\tif (value === undefined || value === null) {\n\t\t\tthrow new Error(`BoneMap doesn't contain type for key = ${key}`);\n\t\t}\n\n\t\treturn value;\n\t}\n}\n","import { Directive, model } from \"@angular/core\";\n\nimport type { Bone } from \"../generated\";\n\n@Directive({\n\tselector: \"[bonBoneDir]\",\n})\nexport class BoneDirective<T extends Bone = Bone> {\n\tpublic readonly bone = model.required<T>();\n}\n\nexport const BONE_DIRECTIVE_WITH_INPUTS_AND_OUTPUTS = {\n\tdirective: BoneDirective,\n\tinputs: [\"bone\"],\n\toutputs: [\"boneChange\"],\n};\n","import { Directive, inject, ViewContainerRef } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[bonSkeletonAnchor]\",\n})\nexport class SkeletonAnchorDirective {\n\tpublic readonly viewContainerRef = inject(ViewContainerRef);\n}\n","import { JsonPipe } from \"@angular/common\";\nimport { Component, inject } from \"@angular/core\";\n\nimport type { Bone } from \"../generated\";\nimport { BoneDirective } from \"./bone.directive\";\nimport type { IBoneComponent } from \"./IBoneComponent\";\n\n@Component({\n\tselector: \"bon-unknown-bone\",\n\n\timports: [JsonPipe],\n\thostDirectives: [{ directive: BoneDirective, inputs: [\"bone\"], outputs: [\"boneChange\"] }],\n\ttemplate: `@if (bd.bone(); as bone) {\n <h2>unknown bone {{bone.type}}</h2>\n <div>{{bone | json}}</div>\n } @else{\n bone is undefined\n }`,\n\tstyles: [\n\t\t`:host{\n display: block;\n border: 2px solid red;\n box-sizing: border-box;\n }`,\n\t],\n})\nexport class UnknownBoneComponent implements IBoneComponent {\n\tpublic readonly bd = inject(BoneDirective<Bone>, { host: true });\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\teffect,\n\tinput,\n\ttype Type,\n\tviewChild,\n} from \"@angular/core\";\n\nimport type { Bone } from \"../generated\";\nimport type { IBoneComponent } from \"./IBoneComponent\";\nimport { SkeletonAnchorDirective } from \"./skeleton-anchor.directive\";\nimport { UnknownBoneComponent } from \"./unknown-bone.component\";\n\n@Component({\n\tselector: \"bon-skeleton\",\n\timports: [SkeletonAnchorDirective],\n\ttemplateUrl: \"./skeleton.component.html\",\n\tstyleUrl: \"./skeleton.component.scss\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonComponent {\n\tpublic readonly skeletonAnchor = viewChild.required(SkeletonAnchorDirective);\n\n\tpublic readonly map = input.required<Map<string, Type<IBoneComponent>>>();\n\n\tpublic readonly bones = input.required<Bone[]>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst anchor = this.skeletonAnchor();\n\t\t\tconst bones = this.bones();\n\t\t\tconst mapVal = this.map();\n\n\t\t\tconst viewContainerRef = anchor.viewContainerRef;\n\t\t\tviewContainerRef.clear();\n\n\t\t\tif (mapVal === undefined || mapVal === null) {\n\t\t\t\tthrow new Error('add type map with input: [map]=\"...\"');\n\t\t\t}\n\n\t\t\tfor (const bone of bones) {\n\t\t\t\tlet componentType = mapVal.get(bone.type);\n\n\t\t\t\tif (componentType === undefined || componentType === null) {\n\t\t\t\t\tconsole.warn(`Mapping type for ${bone.type} not found`);\n\t\t\t\t\tcomponentType = UnknownBoneComponent;\n\t\t\t\t}\n\n\t\t\t\tviewContainerRef.createComponent(componentType).setInput(\"bone\", bone);\n\t\t\t}\n\t\t});\n\t}\n}\n","<ng-template bonSkeletonAnchor></ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["utils.distinct","utils.descendingT","utils.generateSizesString","utils.groupBy","utils.ascendingT","i1.BoneDirective"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -504,6 +504,11 @@ declare class BoneDirective<T extends Bone = Bone> {
|
|
|
504
504
|
static ɵfac: i0.ɵɵFactoryDeclaration<BoneDirective<any>, never>;
|
|
505
505
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BoneDirective<any>, "[bonBoneDir]", never, { "bone": { "alias": "bone"; "required": true; "isSignal": true; }; }, { "bone": "boneChange"; }, never, never, true, never>;
|
|
506
506
|
}
|
|
507
|
+
declare const BONE_DIRECTIVE_WITH_INPUTS_AND_OUTPUTS: {
|
|
508
|
+
directive: typeof BoneDirective;
|
|
509
|
+
inputs: string[];
|
|
510
|
+
outputs: string[];
|
|
511
|
+
};
|
|
507
512
|
|
|
508
513
|
interface IBoneComponent {
|
|
509
514
|
bd: BoneDirective;
|
|
@@ -534,5 +539,5 @@ declare class UnknownBoneComponent implements IBoneComponent {
|
|
|
534
539
|
static ɵcmp: i0.ɵɵComponentDeclaration<UnknownBoneComponent, "bon-unknown-bone", never, {}, {}, never, never, true, [{ directive: typeof BoneDirective; inputs: { "bone": "bone"; }; outputs: { "boneChange": "boneChange"; }; }]>;
|
|
535
540
|
}
|
|
536
541
|
|
|
537
|
-
export { BoneDirective, BoneMap, DeviceService, DeviceServiceBase, EncodeURIComponentPipe, ImageSrcDirective, IntersectionComponent, IsLocalUrlPipe, IsNotLocalUrlPipe, LocalizationIsEmptyPipe, LocalizationIsNotEmptyPipe, LocalizeObjectPipe, LocalizePipe, LocalizeServiceBase, LocalizeUrlPipe, MarcyImageComponent, MarcyMediaComponent, MarcyVideoComponent, MediaObjectFit, MediaStatus, PublishStatus, SizesWidthUnit, SkeletonAnchorDirective, SkeletonComponent, SrcBaseDirective, UnknownBoneComponent, VideoSrcDirective, emptyBone, emptyImage, emptyLocalizedString, emptyVideo, getDefaultSrc, toHtmlPictureSources };
|
|
542
|
+
export { BONE_DIRECTIVE_WITH_INPUTS_AND_OUTPUTS, BoneDirective, BoneMap, DeviceService, DeviceServiceBase, EncodeURIComponentPipe, ImageSrcDirective, IntersectionComponent, IsLocalUrlPipe, IsNotLocalUrlPipe, LocalizationIsEmptyPipe, LocalizationIsNotEmptyPipe, LocalizeObjectPipe, LocalizePipe, LocalizeServiceBase, LocalizeUrlPipe, MarcyImageComponent, MarcyMediaComponent, MarcyVideoComponent, MediaObjectFit, MediaStatus, PublishStatus, SizesWidthUnit, SkeletonAnchorDirective, SkeletonComponent, SrcBaseDirective, UnknownBoneComponent, VideoSrcDirective, emptyBone, emptyImage, emptyLocalizedString, emptyVideo, getDefaultSrc, toHtmlPictureSources };
|
|
538
543
|
export type { Bone, FileFormat, FileMeta, FileSrc, FileSrcBase, FileSrcFileMeta, FileSrcImageMeta, IBoneComponent, IEquatable, IHaveDataRoute, IHaveDataRouteWithData, IHaveSkeleton, IHtmlPictureSource, IPage, Image, ImageMeta, ImageSource, LocalizedObject, LocalizedString, MediaSource, MediaSourceBase, OpenGraphData, Page, PageBase, PageData, PixMedia, PixMediaUnion, PixMeta, SizesItem, SvgMeta, Video, VideoMeta, VideoSource, View };
|