Merge branch 'develop' into feature/Table
# Conflicts: # VDS.xcodeproj/project.pbxproj Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
@ -8,44 +8,31 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1808BEBC2BA41C3200129230 /* CarouselScrollbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1808BEBB2BA41C3200129230 /* CarouselScrollbar.swift */; };
|
||||
1808BEC02BA456B700129230 /* CarouselScrollbarChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 1808BEBF2BA456B700129230 /* CarouselScrollbarChangeLog.txt */; };
|
||||
1832AC572BA0791D008AE476 /* BreadcrumbCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832AC562BA0791D008AE476 /* BreadcrumbCellItem.swift */; };
|
||||
1842B1DF2BECE28B0021AFCA /* CalendarDateViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1842B1DE2BECE28B0021AFCA /* CalendarDateViewCell.swift */; };
|
||||
1842B1E12BECE7B70021AFCA /* CalendarHeaderReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1842B1E02BECE7B70021AFCA /* CalendarHeaderReusableView.swift */; };
|
||||
1842B1E32BECF0A20021AFCA /* CalendarFooterReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1842B1E22BECF0A10021AFCA /* CalendarFooterReusableView.swift */; };
|
||||
18450CF12BA1B19C009FDF2A /* BreadcrumbsChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 18450CF02BA1B19C009FDF2A /* BreadcrumbsChangeLog.txt */; };
|
||||
1855EC662BAABF2A002ACAC2 /* BreadcrumbItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1855EC652BAABF2A002ACAC2 /* BreadcrumbItemModel.swift */; };
|
||||
186B2A8A2B88DA7F001AB71F /* TextAreaChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 186B2A892B88DA7F001AB71F /* TextAreaChangeLog.txt */; };
|
||||
186D13CB2BBA8B1500986B53 /* DropdownSelect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 186D13CA2BBA8B1500986B53 /* DropdownSelect.swift */; };
|
||||
186D13CF2BBC36EF00986B53 /* DropdownSelectChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 186D13CE2BBC36EE00986B53 /* DropdownSelectChangeLog.txt */; };
|
||||
18792A902B7431F2008C0D29 /* ButtonIconBadgeIndicatorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18792A8F2B7431F2008C0D29 /* ButtonIconBadgeIndicatorModel.swift */; };
|
||||
18A3F12A2BD9298900498E4A /* Calendar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18A3F1292BD9298900498E4A /* Calendar.swift */; };
|
||||
18A65A022B96E848006602CC /* Breadcrumbs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18A65A012B96E848006602CC /* Breadcrumbs.swift */; };
|
||||
18A65A042B96F050006602CC /* BreadcrumbItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18A65A032B96F050006602CC /* BreadcrumbItem.swift */; };
|
||||
18B463A42BBD3C46005C4528 /* DropdownOptionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18B463A32BBD3C46005C4528 /* DropdownOptionModel.swift */; };
|
||||
18BDEE822B75316E00452358 /* ButtonIconChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 18BDEE812B75316E00452358 /* ButtonIconChangeLog.txt */; };
|
||||
18FEA1AD2BDD137500A56439 /* CalendarIndicatorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18FEA1AC2BDD137500A56439 /* CalendarIndicatorModel.swift */; };
|
||||
18FEA1B52BE0E63600A56439 /* Date+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18FEA1B42BE0E63600A56439 /* Date+Extension.swift */; };
|
||||
18FEA1B92BE1301700A56439 /* CalendarChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 18FEA1B82BE1301700A56439 /* CalendarChangeLog.txt */; };
|
||||
440B84CA2BD8E0E9004A732A /* Table.swift in Sources */ = {isa = PBXBuildFile; fileRef = 440B84C92BD8E0E9004A732A /* Table.swift */; };
|
||||
443DBAFA2BDA303F0021497E /* TableCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 443DBAF92BDA303F0021497E /* TableCellItem.swift */; };
|
||||
445BA07829C07B3D0036A7C5 /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 445BA07729C07B3D0036A7C5 /* Notification.swift */; };
|
||||
44604AD429CE186A00E62B51 /* NotificationButtonModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44604AD329CE186A00E62B51 /* NotificationButtonModel.swift */; };
|
||||
44604AD729CE196600E62B51 /* Line.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44604AD629CE196600E62B51 /* Line.swift */; };
|
||||
44A952D92BE384C40009F874 /* TableItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44A952D82BE384C40009F874 /* TableItemModel.swift */; };
|
||||
44A952DD2BE3DA820009F874 /* TableFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44A952DC2BE3DA820009F874 /* TableFlowLayout.swift */; };
|
||||
44BD43B62C04866600644F87 /* TableRowModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44BD43B52C04866600644F87 /* TableRowModel.swift */; };
|
||||
44CCF4952C0493A1005C9C5E /* TableChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 44CCF4942C0493A1005C9C5E /* TableChangeLog.txt */; };
|
||||
5F21D7BF28DCEB3D003E7CD6 /* Useable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F21D7BE28DCEB3D003E7CD6 /* Useable.swift */; };
|
||||
5FC35BE328D51405004EBEAC /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC35BE228D51405004EBEAC /* Button.swift */; };
|
||||
710607952B91A99500F2863F /* TitleletChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 710607942B91A99500F2863F /* TitleletChangeLog.txt */; };
|
||||
7115BD3C2B84C0C200E0A610 /* TileContainerChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 7115BD3B2B84C0C200E0A610 /* TileContainerChangeLog.txt */; };
|
||||
71ACE89C2BA0451200FB6ADC /* PaginationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71ACE89B2BA0451200FB6ADC /* PaginationContainer.swift */; };
|
||||
71ACE89E2BA1CC1700FB6ADC /* TiletEyebrowModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71ACE89D2BA1CC1700FB6ADC /* TiletEyebrowModel.swift */; };
|
||||
71B23C2D2B91FA690027F7D9 /* Pagination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71B23C2C2B91FA690027F7D9 /* Pagination.swift */; };
|
||||
71B5FCBB2B95A0CA00269BCC /* PaginationChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 71B5FCBA2B95A0CA00269BCC /* PaginationChangeLog.txt */; };
|
||||
71BFA70A2B7F70E6000DCE33 /* DropShadowable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71BFA7092B7F70E6000DCE33 /* DropShadowable.swift */; };
|
||||
71C02B382B7BD98F00E93E66 /* NotificationChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 71C02B372B7BD98F00E93E66 /* NotificationChangeLog.txt */; };
|
||||
71FC86DA2B96F44C00700965 /* PaginationButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71FC86D92B96F44C00700965 /* PaginationButton.swift */; };
|
||||
71FC86DC2B96F4C800700965 /* PaginationCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71FC86DB2B96F4C800700965 /* PaginationCellItem.swift */; };
|
||||
71FC86DE2B9738B900700965 /* SurfaceConfigurationValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71FC86DD2B9738B900700965 /* SurfaceConfigurationValue.swift */; };
|
||||
@ -104,7 +91,6 @@
|
||||
EA5E3058295105A40082B959 /* Tilelet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5E3057295105A40082B959 /* Tilelet.swift */; };
|
||||
EA5E305A29510F8B0082B959 /* EnumSubset.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5E305929510F8B0082B959 /* EnumSubset.swift */; };
|
||||
EA5F86C82A1BD99100BC83E4 /* TabModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5F86C72A1BD99100BC83E4 /* TabModel.swift */; };
|
||||
EA5F86CC2A1D28B500BC83E4 /* ReleaseNotes.txt in Resources */ = {isa = PBXBuildFile; fileRef = EA5F86CB2A1D28B500BC83E4 /* ReleaseNotes.txt */; };
|
||||
EA5F86D02A1F936100BC83E4 /* TabsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5F86CF2A1F936100BC83E4 /* TabsContainer.swift */; };
|
||||
EA6642952BCEBF9500D81DC4 /* TextLinkModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6642942BCEBF9500D81DC4 /* TextLinkModel.swift */; };
|
||||
EA6F330E2B911E9000BACAB9 /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6F330D2B911E9000BACAB9 /* TextView.swift */; };
|
||||
@ -165,7 +151,6 @@
|
||||
EAC58C162BED0E0300BA39FA /* InlineAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC58C152BED0E0300BA39FA /* InlineAction.swift */; };
|
||||
EAC58C182BED0E2300BA39FA /* SecurityCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC58C172BED0E2300BA39FA /* SecurityCode.swift */; };
|
||||
EAC58C232BF2824200BA39FA /* DatePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC58C222BF2824200BA39FA /* DatePicker.swift */; };
|
||||
EAC58C252BF2A7FB00BA39FA /* DatePickerChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAC58C242BF2A7FB00BA39FA /* DatePickerChangeLog.txt */; };
|
||||
EAC58C272BF4116200BA39FA /* DatePickerCalendarModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC58C262BF4116200BA39FA /* DatePickerCalendarModel.swift */; };
|
||||
EAC58C292BF4118C00BA39FA /* DatePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC58C282BF4118C00BA39FA /* DatePickerViewController.swift */; };
|
||||
EAC71A1D2A2E155A00E47A9F /* Checkbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC71A1C2A2E155A00E47A9F /* Checkbox.swift */; };
|
||||
@ -183,20 +168,8 @@
|
||||
EAD068942A560C13002E3A2D /* LoaderLaunchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD068932A560C13002E3A2D /* LoaderLaunchable.swift */; };
|
||||
EAD8D2C128BFDE8B006EB6A6 /* UIGestureRecognizer+Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8D2C028BFDE8B006EB6A6 /* UIGestureRecognizer+Publisher.swift */; };
|
||||
EAE785312BA0A438009428EA /* UIImage+Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAE785302BA0A438009428EA /* UIImage+Helper.swift */; };
|
||||
EAEEEC922B1F807300531FC2 /* BadgeChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEEC912B1F807300531FC2 /* BadgeChangeLog.txt */; };
|
||||
EAEEEC962B1F893B00531FC2 /* ButtonChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEEC952B1F893B00531FC2 /* ButtonChangeLog.txt */; };
|
||||
EAEEEC982B1F8DD100531FC2 /* LineChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEEC972B1F8DD100531FC2 /* LineChangeLog.txt */; };
|
||||
EAEEEC9A2B1F8E4400531FC2 /* TextLinkChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEEC992B1F8E4400531FC2 /* TextLinkChangeLog.txt */; };
|
||||
EAEEEC9C2B1F8F0700531FC2 /* TextLinkCaretChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEEC9B2B1F8F0700531FC2 /* TextLinkCaretChangeLog.txt */; };
|
||||
EAEEEC9E2B1F8F7700531FC2 /* ButtonGroupChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEEC9D2B1F8F7700531FC2 /* ButtonGroupChangeLog.txt */; };
|
||||
EAEEECA02B1F908200531FC2 /* BadgeIndicatorChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEEC9F2B1F908200531FC2 /* BadgeIndicatorChangeLog.txt */; };
|
||||
EAEEECA22B1F92AD00531FC2 /* LabelChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEECA12B1F92AD00531FC2 /* LabelChangeLog.txt */; };
|
||||
EAEEECA42B1F934600531FC2 /* IconChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEECA32B1F934600531FC2 /* IconChangeLog.txt */; };
|
||||
EAEEECA72B1F952000531FC2 /* TabsChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEECA62B1F952000531FC2 /* TabsChangeLog.txt */; };
|
||||
EAEEECA92B1F969700531FC2 /* TooltipChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEECA82B1F969700531FC2 /* TooltipChangeLog.txt */; };
|
||||
EAEEECAB2B1FBF2A00531FC2 /* ToggleChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEECAA2B1FBF2900531FC2 /* ToggleChangeLog.txt */; };
|
||||
EAEEECAD2B1FC1A600531FC2 /* TitleLockupChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEECAC2B1FC1A600531FC2 /* TitleLockupChangeLog.txt */; };
|
||||
EAEEECAF2B1FC2BA00531FC2 /* ToggleViewChangeLog.txt in Resources */ = {isa = PBXBuildFile; fileRef = EAEEECAE2B1FC2BA00531FC2 /* ToggleViewChangeLog.txt */; };
|
||||
EAF193422C134F3400C68D18 /* Table.swift in Sources */ = {isa = PBXBuildFile; fileRef = 440B84C92BD8E0E9004A732A /* Table.swift */; };
|
||||
EAF193432C134F3800C68D18 /* TableCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 443DBAF92BDA303F0021497E /* TableCellItem.swift */; };
|
||||
EAF1FE9929D4850E00101452 /* Clickable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF1FE9829D4850E00101452 /* Clickable.swift */; };
|
||||
EAF1FE9B29DB1A6000101452 /* Changeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF1FE9A29DB1A6000101452 /* Changeable.swift */; };
|
||||
EAF7F0952899861000B287F5 /* CheckboxItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF7F0932899861000B287F5 /* CheckboxItem.swift */; };
|
||||
@ -331,6 +304,8 @@
|
||||
EA6642942BCEBF9500D81DC4 /* TextLinkModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextLinkModel.swift; sourceTree = "<group>"; };
|
||||
EA6F330D2B911E9000BACAB9 /* TextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextView.swift; sourceTree = "<group>"; };
|
||||
EA78C7952C00CAC200430AD1 /* Groupable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Groupable.swift; sourceTree = "<group>"; };
|
||||
EA78C7A12C0E63D200430AD1 /* vds-dev.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "vds-dev.xcconfig"; sourceTree = "<group>"; };
|
||||
EA78C7A22C0E63DD00430AD1 /* vds.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = vds.xcconfig; sourceTree = "<group>"; };
|
||||
EA81410A2A0E8E3C004F60D2 /* ButtonIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonIcon.swift; sourceTree = "<group>"; };
|
||||
EA81410F2A127066004F60D2 /* UIColor+VDSColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+VDSColor.swift"; sourceTree = "<group>"; };
|
||||
EA89200328AECF4B006B9984 /* UITextField+Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Publisher.swift"; sourceTree = "<group>"; };
|
||||
@ -796,6 +771,8 @@
|
||||
EA3361FF2891E14C0071C351 /* Fonts */,
|
||||
EAA5EEB828ECD24B003B3210 /* Icons.xcassets */,
|
||||
EA5F86CB2A1D28B500BC83E4 /* ReleaseNotes.txt */,
|
||||
EA78C7A12C0E63D200430AD1 /* vds-dev.xcconfig */,
|
||||
EA78C7A22C0E63DD00430AD1 /* vds.xcconfig */,
|
||||
);
|
||||
path = SupportingFiles;
|
||||
sourceTree = "<group>";
|
||||
@ -1106,6 +1083,7 @@
|
||||
EA336168288B19200071C351 /* Sources */,
|
||||
EA336169288B19200071C351 /* Frameworks */,
|
||||
EA33616A288B19200071C351 /* Resources */,
|
||||
EA78C79E2C0E4FFB00430AD1 /* Add ChangeLog.txt Files */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -1176,39 +1154,12 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EAEEECA42B1F934600531FC2 /* IconChangeLog.txt in Resources */,
|
||||
7115BD3C2B84C0C200E0A610 /* TileContainerChangeLog.txt in Resources */,
|
||||
EA3362042891E14D0071C351 /* VerizonNHGeTX-Bold.otf in Resources */,
|
||||
44CCF4952C0493A1005C9C5E /* TableChangeLog.txt in Resources */,
|
||||
71C02B382B7BD98F00E93E66 /* NotificationChangeLog.txt in Resources */,
|
||||
EAEEECA72B1F952000531FC2 /* TabsChangeLog.txt in Resources */,
|
||||
186B2A8A2B88DA7F001AB71F /* TextAreaChangeLog.txt in Resources */,
|
||||
EAEEEC962B1F893B00531FC2 /* ButtonChangeLog.txt in Resources */,
|
||||
710607952B91A99500F2863F /* TitleletChangeLog.txt in Resources */,
|
||||
EA5F86CC2A1D28B500BC83E4 /* ReleaseNotes.txt in Resources */,
|
||||
EAEEEC982B1F8DD100531FC2 /* LineChangeLog.txt in Resources */,
|
||||
EAEEECA22B1F92AD00531FC2 /* LabelChangeLog.txt in Resources */,
|
||||
EA3362072891E14D0071C351 /* VerizonNHGeDS-Regular.otf in Resources */,
|
||||
EAEEEC9A2B1F8E4400531FC2 /* TextLinkChangeLog.txt in Resources */,
|
||||
1808BEC02BA456B700129230 /* CarouselScrollbarChangeLog.txt in Resources */,
|
||||
EAEEECAF2B1FC2BA00531FC2 /* ToggleViewChangeLog.txt in Resources */,
|
||||
EAEEEC922B1F807300531FC2 /* BadgeChangeLog.txt in Resources */,
|
||||
EAEEEC9E2B1F8F7700531FC2 /* ButtonGroupChangeLog.txt in Resources */,
|
||||
18BDEE822B75316E00452358 /* ButtonIconChangeLog.txt in Resources */,
|
||||
EA3362062891E14D0071C351 /* VerizonNHGeTX-Regular.otf in Resources */,
|
||||
EA3362052891E14D0071C351 /* VerizonNHGeDS-Bold.otf in Resources */,
|
||||
18450CF12BA1B19C009FDF2A /* BreadcrumbsChangeLog.txt in Resources */,
|
||||
EAEEECA02B1F908200531FC2 /* BadgeIndicatorChangeLog.txt in Resources */,
|
||||
EAA5EEB928ECD24B003B3210 /* Icons.xcassets in Resources */,
|
||||
EAEEECA92B1F969700531FC2 /* TooltipChangeLog.txt in Resources */,
|
||||
186D13CF2BBC36EF00986B53 /* DropdownSelectChangeLog.txt in Resources */,
|
||||
18FEA1B92BE1301700A56439 /* CalendarChangeLog.txt in Resources */,
|
||||
EAEEEC9C2B1F8F0700531FC2 /* TextLinkCaretChangeLog.txt in Resources */,
|
||||
EAA5EEE428F5B855003B3210 /* VerizonNHGDS-Light.otf in Resources */,
|
||||
EAC58C252BF2A7FB00BA39FA /* DatePickerChangeLog.txt in Resources */,
|
||||
71B5FCBB2B95A0CA00269BCC /* PaginationChangeLog.txt in Resources */,
|
||||
EAEEECAD2B1FC1A600531FC2 /* TitleLockupChangeLog.txt in Resources */,
|
||||
EAEEECAB2B1FBF2A00531FC2 /* ToggleChangeLog.txt in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -1221,6 +1172,28 @@
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
EA78C79E2C0E4FFB00430AD1 /* Add ChangeLog.txt Files */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Add ChangeLog.txt Files";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\necho \"TARGET_BUILD_DIR: ${TARGET_BUILD_DIR}\"\necho \"UNLOCALIZED_RESOURCES_FOLDER_PATH: ${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\necho \"Build Directory: ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n\nif [ $VDS_ADD_CHANGELOG_FILES -eq 1 ]; then \n echo \"Adding ChangeLog.txt files...\"\n \n # Find all files matching the pattern recursively\n TXT_FILES=$(find \"${SRCROOT}\" -name \"*ChangeLog.txt\")\n\n # Add each file \n for FILE in $TXT_FILES; do \n cp \"$FILE\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n echo \"Added $FILE to ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n done\n\n TXT_FILES=$(find \"${SRCROOT}\" -name \"ReleaseNotes.txt\")\n\n # Add each file \n for FILE in $TXT_FILES; do \n cp \"$FILE\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n echo \"Added $FILE to ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n done\n\nelse \n echo \"Skipping adding of ChangeLog.txt files\"\nfi\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
EA336168288B19200071C351 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
@ -1272,6 +1245,7 @@
|
||||
EAC58BFD2BE935C300BA39FA /* TitleLockupTextColor.swift in Sources */,
|
||||
EAACB89A2B927108006A3869 /* Valuing.swift in Sources */,
|
||||
EAE785312BA0A438009428EA /* UIImage+Helper.swift in Sources */,
|
||||
EAF193422C134F3400C68D18 /* Table.swift in Sources */,
|
||||
EAB5FEF5292D371F00998C17 /* ButtonBase.swift in Sources */,
|
||||
44A952D92BE384C40009F874 /* TableItemModel.swift in Sources */,
|
||||
EA978EC5291D6AFE00ACC883 /* AnyLabelAttribute.swift in Sources */,
|
||||
@ -1305,7 +1279,6 @@
|
||||
EAC9258F2911C9DE00091998 /* EntryFieldBase.swift in Sources */,
|
||||
EAB1D2EA28AE84AA00DAE764 /* UIControlPublisher.swift in Sources */,
|
||||
EAD068922A560B65002E3A2D /* LoaderViewController.swift in Sources */,
|
||||
443DBAFA2BDA303F0021497E /* TableCellItem.swift in Sources */,
|
||||
44BD43B62C04866600644F87 /* TableRowModel.swift in Sources */,
|
||||
71FC86DA2B96F44C00700965 /* PaginationButton.swift in Sources */,
|
||||
EABFEB642A26473700C4C106 /* NSAttributedString.swift in Sources */,
|
||||
@ -1322,13 +1295,13 @@
|
||||
EAC58C0A2BED004E00BA39FA /* FieldType.swift in Sources */,
|
||||
EA471F3A2A95587500CE9E58 /* LayoutConstraintable.swift in Sources */,
|
||||
EAC58C292BF4118C00BA39FA /* DatePickerViewController.swift in Sources */,
|
||||
EAF193432C134F3800C68D18 /* TableCellItem.swift in Sources */,
|
||||
EAB1D2CF28ABEF2B00DAE764 /* Typography+Base.swift in Sources */,
|
||||
EA0D1C3B2A6AD51B00E5C127 /* Typogprahy+Styles.swift in Sources */,
|
||||
EAF7F09A2899B17200B287F5 /* CATransaction.swift in Sources */,
|
||||
EAC58C162BED0E0300BA39FA /* InlineAction.swift in Sources */,
|
||||
EA0D1C3D2A6AD57600E5C127 /* Typography+Enums.swift in Sources */,
|
||||
EAF1FE9B29DB1A6000101452 /* Changeable.swift in Sources */,
|
||||
440B84CA2BD8E0E9004A732A /* Table.swift in Sources */,
|
||||
EAC58C0C2BED01D500BA39FA /* Telephone.swift in Sources */,
|
||||
EAF7F0A2289AFB3900B287F5 /* Errorable.swift in Sources */,
|
||||
EA8E40912A7D3F6300934ED3 /* UIView+Accessibility.swift in Sources */,
|
||||
@ -1421,6 +1394,7 @@
|
||||
/* Begin XCBuildConfiguration section */
|
||||
EA33617E288B19210071C351 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EA78C7A12C0E63D200430AD1 /* vds-dev.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
@ -1484,6 +1458,7 @@
|
||||
};
|
||||
EA33617F288B19210071C351 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EA78C7A22C0E63DD00430AD1 /* vds.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
@ -1541,11 +1516,12 @@
|
||||
};
|
||||
EA336181288B19210071C351 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EA78C7A12C0E63D200430AD1 /* vds-dev.xcconfig */;
|
||||
buildSettings = {
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 64;
|
||||
CURRENT_PROJECT_VERSION = 65;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@ -1578,11 +1554,12 @@
|
||||
};
|
||||
EA336182288B19210071C351 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EA78C7A22C0E63DD00430AD1 /* vds.xcconfig */;
|
||||
buildSettings = {
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 64;
|
||||
CURRENT_PROJECT_VERSION = 65;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
@ -1615,6 +1592,7 @@
|
||||
};
|
||||
EA336184288B19210071C351 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EA78C7A12C0E63D200430AD1 /* vds-dev.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
@ -1632,6 +1610,7 @@
|
||||
};
|
||||
EA336185288B19210071C351 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EA78C7A22C0E63DD00430AD1 /* vds.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1530"
|
||||
version = "1.8">
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
|
||||
@ -161,7 +161,8 @@ open class SelectorItemBase<Selector: SelectorControlable>: Control, Errorable,
|
||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
|
||||
|
||||
selectorView.isAccessibilityElement = false
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .button
|
||||
addSubview(mainStackView)
|
||||
|
||||
@ -13,78 +13,14 @@ final class BreadcrumbCellItem: UICollectionViewCell {
|
||||
|
||||
///Identifier for the BreadcrumbCellItem
|
||||
static let identifier: String = String(describing: BreadcrumbCellItem.self)
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Properties
|
||||
//--------------------------------------------------
|
||||
internal var stackView: UIStackView = {
|
||||
return UIStackView().with {
|
||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||
$0.axis = .horizontal
|
||||
$0.distribution = .fill
|
||||
$0.alignment = .fill
|
||||
$0.spacing = VDSLayout.space1X
|
||||
$0.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
|
||||
$0.setContentHuggingPriority(.defaultHigh, for: .horizontal)
|
||||
}
|
||||
}()
|
||||
|
||||
internal var breadCrumbItem: BreadcrumbItem?
|
||||
|
||||
///separator label
|
||||
private var separator: Label = Label().with {
|
||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||
$0.textAlignment = .left
|
||||
$0.numberOfLines = 1
|
||||
$0.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
|
||||
$0.setContentHuggingPriority(.defaultHigh, for: .horizontal)
|
||||
$0.text = "/"
|
||||
}
|
||||
|
||||
private let textColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark)
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Initializers
|
||||
//--------------------------------------------------
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
setUp()
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
super.init(coder: coder)
|
||||
setUp()
|
||||
}
|
||||
|
||||
///Configuring the cell with default setup
|
||||
private func setUp() {
|
||||
separator.textColorConfiguration = textColorConfiguration.eraseToAnyColorable()
|
||||
contentView.addSubview(stackView)
|
||||
stackView.pinToSuperView()
|
||||
separator.backgroundColor = .clear
|
||||
}
|
||||
|
||||
|
||||
///Updating the breadCrumbItem and UI based on the selected flag along with the surface
|
||||
func update(surface: Surface, hideSlash: Bool, breadCrumbItem: BreadcrumbItem) {
|
||||
//update surface
|
||||
separator.surface = surface
|
||||
breadCrumbItem.surface = surface
|
||||
func update(breadCrumbItem: BreadcrumbItem) {
|
||||
contentView.subviews.forEach{$0.removeFromSuperview()}
|
||||
contentView.addSubview(breadCrumbItem)
|
||||
breadCrumbItem.pinToSuperView()
|
||||
breadCrumbItem.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
|
||||
breadCrumbItem.setContentHuggingPriority(.defaultLow, for: .horizontal)
|
||||
|
||||
//remove previous views
|
||||
stackView.arrangedSubviews.forEach { $0.removeFromSuperview() }
|
||||
|
||||
//add to stack
|
||||
stackView.addArrangedSubview(separator)
|
||||
stackView.addArrangedSubview(breadCrumbItem)
|
||||
stackView.setCustomSpacing(VDSLayout.space1X, after: separator)
|
||||
|
||||
//update separator
|
||||
separator.textColor = textColorConfiguration.getColor(surface)
|
||||
separator.isHidden = hideSlash
|
||||
self.breadCrumbItem = breadCrumbItem
|
||||
setNeedsLayout()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -42,23 +42,28 @@ open class BreadcrumbItem: ButtonBase {
|
||||
textColorConfiguration.getColor(self)
|
||||
}
|
||||
|
||||
/// The natural size for the receiving view, considering only properties of the view itself.
|
||||
open override var intrinsicContentSize: CGSize {
|
||||
guard let titleLabel else { return super.intrinsicContentSize }
|
||||
// Calculate the titleLabel's intrinsic content size
|
||||
let labelSize = titleLabel.sizeThatFits(CGSize(width: self.frame.width, height: CGFloat.greatestFiniteMagnitude))
|
||||
// Adjust the size if needed (add any additional padding if your design requires)
|
||||
let adjustedSize = CGSize(width: labelSize.width + contentEdgeInsets.left + contentEdgeInsets.right,
|
||||
height: labelSize.height + contentEdgeInsets.top + contentEdgeInsets.bottom)
|
||||
return adjustedSize
|
||||
/// Determines if a slash is predended or not.
|
||||
open var hideSlash: Bool = false { didSet { setNeedsUpdate() } }
|
||||
|
||||
private var slashText = "/ "
|
||||
|
||||
open override var textAttributes: [any LabelAttributeModel]? {
|
||||
hideSlash
|
||||
? nil
|
||||
: [ColorLabelAttribute(location: 0,
|
||||
length: 1,
|
||||
color: surface == .light ? VDSColor.elementsPrimaryOnlight : VDSColor.elementsPrimaryOndark),
|
||||
TextStyleLabelAttribute(location: 0,
|
||||
length: 1,
|
||||
textStyle: .bodySmall)
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Properties
|
||||
//--------------------------------------------------
|
||||
private var textColorConfiguration = ControlColorConfiguration().with {
|
||||
$0.setSurfaceColors(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark, forState: .normal)
|
||||
$0.setSurfaceColors(VDSColor.interactiveActiveOnlight, VDSColor.interactiveActiveOndark, forState: .disabled)
|
||||
$0.setSurfaceColors(VDSColor.interactiveActiveOnlight, VDSColor.interactiveActiveOndark, forState: .highlighted)
|
||||
$0.setSurfaceColors(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark, forState: .selected)
|
||||
}
|
||||
@ -69,15 +74,51 @@ open class BreadcrumbItem: ButtonBase {
|
||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
|
||||
titleLabel?.numberOfLines = 0
|
||||
titleLabel?.lineBreakMode = .byWordWrapping
|
||||
contentHorizontalAlignment = .left
|
||||
|
||||
isAccessibilityElement = true
|
||||
accessibilityTraits = .link
|
||||
contentHorizontalAlignment = .leading
|
||||
|
||||
}
|
||||
|
||||
/// Used to make changes to the View based off a change events or from local properties.
|
||||
open override func updateView() {
|
||||
//always call last so the label is rendered
|
||||
super.updateView()
|
||||
|
||||
//clear the arrays holding actions
|
||||
accessibilityCustomActions = []
|
||||
if let text, !text.isEmpty {
|
||||
var updatedText = text
|
||||
if updatedText.hasPrefix(slashText) && hideSlash {
|
||||
updatedText = String(updatedText.dropFirst(slashText.count))
|
||||
} else if !hideSlash, !updatedText.hasPrefix(slashText) {
|
||||
updatedText = slashText + updatedText
|
||||
}
|
||||
|
||||
//create the primary string
|
||||
let mutableText = NSMutableAttributedString.mutableText(for: updatedText,
|
||||
textStyle: textStyle,
|
||||
useScaledFont: useScaledFont,
|
||||
textColor: textColor,
|
||||
alignment: titleLabel?.textAlignment ?? .center,
|
||||
lineBreakMode: titleLabel?.lineBreakMode ?? .byTruncatingTail)
|
||||
|
||||
//apply any attributes
|
||||
if let attributes = textAttributes {
|
||||
mutableText.apply(attributes: attributes)
|
||||
}
|
||||
|
||||
//set the attributed text
|
||||
setAttributedTitle(mutableText, for: .normal)
|
||||
setAttributedTitle(mutableText, for: .highlighted)
|
||||
invalidateIntrinsicContentSize()
|
||||
} else {
|
||||
setAttributedTitle(nil, for: .normal)
|
||||
setAttributedTitle(nil, for: .highlighted)
|
||||
titleLabel?.text = nil
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -12,9 +12,6 @@ extension Breadcrumbs {
|
||||
|
||||
///Text that goes in the breadcrumb item
|
||||
public var text: String
|
||||
|
||||
/// Whether the Item can be clicked.
|
||||
public var enabled: Bool
|
||||
|
||||
/// The Breadcrumb link to links to its respective page.
|
||||
public var selected: Bool
|
||||
@ -22,9 +19,8 @@ extension Breadcrumbs {
|
||||
///Click event when you click on a breadcrumb item
|
||||
public var onClick: ((BreadcrumbItem) -> Void)?
|
||||
|
||||
public init(text: String, enabeled: Bool = true, selected: Bool = false, onClick: ((BreadcrumbItem) -> Void)? = nil) {
|
||||
public init(text: String, selected: Bool = false, onClick: ((BreadcrumbItem) -> Void)? = nil) {
|
||||
self.text = text
|
||||
self.enabled = enabeled
|
||||
self.selected = selected
|
||||
self.onClick = onClick
|
||||
}
|
||||
|
||||
@ -32,13 +32,6 @@ open class Breadcrumbs: View {
|
||||
}
|
||||
}
|
||||
|
||||
/// Current Surface and this is used to pass down to child objects that implement Surfacable
|
||||
override open var surface: Surface {
|
||||
didSet {
|
||||
breadcrumbs.forEach { $0.surface = surface }
|
||||
}
|
||||
}
|
||||
|
||||
open override var accessibilityElements: [Any]? {
|
||||
get {
|
||||
return [containerView, breadcrumbs]
|
||||
@ -99,7 +92,6 @@ open class Breadcrumbs: View {
|
||||
breadcrumbs = breadcrumbModels.compactMap({ model in
|
||||
let breadcrumbItem = BreadcrumbItem()
|
||||
breadcrumbItem.text = model.text
|
||||
breadcrumbItem.isEnabled = model.enabled
|
||||
breadcrumbItem.isSelected = model.selected
|
||||
breadcrumbItem.onClick = { [weak self] breadcrumb in
|
||||
guard let self, breadcrumb.isEnabled else { return }
|
||||
@ -166,17 +158,22 @@ extension Breadcrumbs: UICollectionViewDelegate, UICollectionViewDataSource, But
|
||||
|
||||
public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
||||
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: BreadcrumbCellItem.identifier, for: indexPath) as? BreadcrumbCellItem else { return UICollectionViewCell() }
|
||||
let hideSlash = indexPath.row == 0
|
||||
cell.update(surface: surface, hideSlash: hideSlash, breadCrumbItem: breadcrumbs[indexPath.row])
|
||||
let breadcrumb = breadcrumbs[indexPath.row]
|
||||
breadcrumb.hideSlash = breadcrumb == breadcrumbs.first
|
||||
breadcrumb.surface = surface
|
||||
cell.update(breadCrumbItem: breadcrumb)
|
||||
return cell
|
||||
}
|
||||
|
||||
public func collectionView(_ collectionView: UICollectionView, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
|
||||
|
||||
let breadcrumb = breadcrumbs[indexPath.row]
|
||||
let intrinsicSize = breadcrumb.intrinsicContentSize
|
||||
let separatorFullWidth: CGFloat = indexPath.row == 0 ? 0 : VDSLayout.space1X + separatorWidth
|
||||
let cellwidth = intrinsicSize.width + separatorFullWidth
|
||||
return .init(width: min(cellwidth, collectionView.frame.width), height: intrinsicSize.height)
|
||||
breadcrumb.hideSlash = breadcrumb == breadcrumbs.first
|
||||
|
||||
let maxWidth = frame.width
|
||||
let intrinsicSize = breadcrumb.titleLabel!.sizeThatFits(.init(width: maxWidth, height: CGFloat.greatestFiniteMagnitude))
|
||||
let cellwidth = min(maxWidth, intrinsicSize.width)
|
||||
return .init(width: cellwidth, height: intrinsicSize.height)
|
||||
}
|
||||
|
||||
public func collectionView(_ collectionView: UICollectionView, buttonBaseAtIndexPath indexPath: IndexPath) -> ButtonBase {
|
||||
|
||||
@ -67,15 +67,20 @@ open class CalendarBase: Control, Changeable {
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Properties
|
||||
//--------------------------------------------------
|
||||
internal var containerSize: CGSize { CGSize(width: 328, height: 336) }
|
||||
internal var containerSize: CGSize { CGSize(width: widthDefault, height: 336) }
|
||||
internal var calendar = Calendar.current
|
||||
|
||||
private let cellItemSize = CGSize(width: 40, height: 40)
|
||||
private let headerHeight = 88.0
|
||||
private let footerHeight = 40.0
|
||||
private let calendarWidth = 304.0
|
||||
private let screenThreeSixty = 360.0
|
||||
private let widthDefault = 328.0
|
||||
private let widthTight = 320.0
|
||||
|
||||
private var heightConstraint: NSLayoutConstraint?
|
||||
private var collectionViewLeadingConstraint: NSLayoutConstraint?
|
||||
private var collectionViewHeightConstraint: NSLayoutConstraint?
|
||||
private var containerWidthConstraint: NSLayoutConstraint?
|
||||
private var containerHeightConstraint: NSLayoutConstraint?
|
||||
private var selectedIndexPath : IndexPath?
|
||||
private var dates: [Date] = []
|
||||
@ -115,7 +120,7 @@ open class CalendarBase: Control, Changeable {
|
||||
//--------------------------------------------------
|
||||
internal var containerBorderColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsPrimaryOnlight , VDSColor.elementsPrimaryOndark)
|
||||
internal var backgroundColorConfiguration = SurfaceColorConfiguration(VDSFormControlsColor.backgroundOnlight, VDSFormControlsColor.backgroundOndark)
|
||||
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Overrides
|
||||
//--------------------------------------------------
|
||||
@ -126,28 +131,23 @@ open class CalendarBase: Control, Changeable {
|
||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||
open override func setup() {
|
||||
super.setup()
|
||||
isAccessibilityElement = true
|
||||
isAccessibilityElement = false
|
||||
accessibilityLabel = "Calendar"
|
||||
addSubview(containerView)
|
||||
containerView
|
||||
.pinTop()
|
||||
.pinBottom()
|
||||
.pinLeadingGreaterThanOrEqualTo()
|
||||
.pinTrailingLessThanOrEqualTo()
|
||||
.width(containerSize.width)
|
||||
.heightGreaterThanEqualTo(containerSize.height)
|
||||
containerView.centerXAnchor.constraint(equalTo: centerXAnchor).activate()
|
||||
|
||||
// Calendar View
|
||||
containerView.addSubview(collectionView)
|
||||
let calendarHeight = containerSize.height - (2 * VDSLayout.space4X)
|
||||
let spacing = (containerSize.width - calendarWidth) / 2
|
||||
|
||||
collectionView
|
||||
.pinTop(VDSLayout.space4X)
|
||||
.pinBottom(VDSLayout.space4X)
|
||||
.pinLeading(spacing)
|
||||
.pinTrailing(spacing)
|
||||
.width(calendarWidth)
|
||||
.heightGreaterThanEqualTo(calendarHeight)
|
||||
|
||||
@ -163,16 +163,14 @@ open class CalendarBase: Control, Changeable {
|
||||
displayDate = fallsBetween ? displayDate : minDate
|
||||
fetchDates(with: displayDate)
|
||||
}
|
||||
|
||||
containerView.layer.backgroundColor = backgroundColorConfiguration.getColor(self).cgColor
|
||||
containerView.backgroundColor = transparentBackground ? .clear : backgroundColorConfiguration.getColor(self)
|
||||
containerView.layer.cornerRadius = VDSFormControls.borderRadius
|
||||
if hideContainerBorder {
|
||||
containerView.layer.borderColor = nil
|
||||
containerView.layer.borderWidth = 0
|
||||
containerView.layer.cornerRadius = 0
|
||||
} else {
|
||||
containerView.layer.borderColor = containerBorderColorConfiguration.getColor(self).cgColor
|
||||
containerView.layer.borderWidth = VDSFormControls.borderWidth
|
||||
containerView.layer.cornerRadius = VDSFormControls.borderRadius
|
||||
}
|
||||
}
|
||||
|
||||
@ -191,8 +189,6 @@ open class CalendarBase: Control, Changeable {
|
||||
// MARK: - Private Methods
|
||||
//--------------------------------------------------
|
||||
func fetchDates(with aDate: Date) {
|
||||
heightConstraint?.isActive = false
|
||||
containerHeightConstraint?.isActive = false
|
||||
days.removeAll()
|
||||
dates = aDate.calendarDisplayDays
|
||||
|
||||
@ -204,17 +200,35 @@ open class CalendarBase: Control, Changeable {
|
||||
days.append(date.getDay())
|
||||
}
|
||||
}
|
||||
|
||||
updateViewConstraints()
|
||||
}
|
||||
|
||||
func updateViewConstraints() {
|
||||
collectionView.reloadData()
|
||||
|
||||
// container width && collection view leading
|
||||
collectionViewLeadingConstraint?.isActive = false
|
||||
containerWidthConstraint?.isActive = false
|
||||
var width = containerView.frame.size.width
|
||||
width = ((width > 0) && (width < screenThreeSixty)) ? ((width > widthTight) && (width < screenThreeSixty)) ? widthTight : containerView.frame.size.width : widthDefault
|
||||
let spacing = (width - calendarWidth) / 2
|
||||
collectionViewLeadingConstraint = collectionView.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: spacing)
|
||||
containerWidthConstraint = containerView.widthAnchor.constraint(equalToConstant: calendarWidth + ( 2 * spacing))
|
||||
collectionViewLeadingConstraint?.isActive = true
|
||||
containerWidthConstraint?.isActive = true
|
||||
|
||||
|
||||
// container height && collection view height
|
||||
collectionViewHeightConstraint?.isActive = false
|
||||
containerHeightConstraint?.isActive = false
|
||||
var height = collectionView.collectionViewLayout.collectionViewContentSize.height
|
||||
height = height > 0 ? height : containerSize.height
|
||||
heightConstraint = collectionView.heightAnchor.constraint(equalToConstant: height)
|
||||
containerHeightConstraint = containerView.heightAnchor.constraint(equalToConstant: height + (2 * VDSLayout.space4X))
|
||||
heightConstraint?.isActive = true
|
||||
collectionViewHeightConstraint = collectionView.heightAnchor.constraint(equalToConstant: height)
|
||||
containerHeightConstraint?.isActive = true
|
||||
collectionViewHeightConstraint?.isActive = true
|
||||
layoutIfNeeded()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension CalendarBase: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
|
||||
|
||||
@ -31,6 +31,8 @@ class CalendarFooterReusableView: UICollectionReusableView {
|
||||
|
||||
internal var containerView = View().with {
|
||||
$0.clipsToBounds = true
|
||||
$0.isAccessibilityElement = true
|
||||
$0.accessibilityLabel = "Legend"
|
||||
}
|
||||
|
||||
private let flowLayout = LeftAlignedCollectionViewFlowLayout().with {
|
||||
@ -39,7 +41,7 @@ class CalendarFooterReusableView: UICollectionReusableView {
|
||||
$0.minimumInteritemSpacing = VDSLayout.space4X
|
||||
$0.scrollDirection = .vertical
|
||||
}
|
||||
|
||||
|
||||
open lazy var legendCollectionView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout).with {
|
||||
$0.isScrollEnabled = false
|
||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||
@ -55,7 +57,8 @@ class CalendarFooterReusableView: UICollectionReusableView {
|
||||
}
|
||||
|
||||
private var topConstraint: NSLayoutConstraint?
|
||||
|
||||
private var legendLabels: [Label] = []
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Initializers
|
||||
//--------------------------------------------------
|
||||
@ -69,6 +72,13 @@ class CalendarFooterReusableView: UICollectionReusableView {
|
||||
setUp()
|
||||
}
|
||||
|
||||
open override var accessibilityElements: [Any]? {
|
||||
get {
|
||||
return [containerView, legendLabels]
|
||||
}
|
||||
set { super.accessibilityElements = newValue }
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Methods
|
||||
//--------------------------------------------------
|
||||
@ -94,6 +104,7 @@ class CalendarFooterReusableView: UICollectionReusableView {
|
||||
func update(with surface: Surface, indicators: [CalendarBase.CalendarIndicatorModel]) {
|
||||
self.items = indicators
|
||||
self.surface = surface
|
||||
legendLabels.removeAll()
|
||||
legendCollectionView.reloadData()
|
||||
|
||||
var height = legendCollectionView.collectionViewLayout.collectionViewContentSize.height
|
||||
@ -124,6 +135,7 @@ extension CalendarFooterReusableView: UICollectionViewDelegate, UICollectionView
|
||||
surface: self.surface,
|
||||
clearFullcircle: indexPath.row == 1,
|
||||
drawSemiCircle: indexPath.row == 2)
|
||||
legendLabels.append(cell.title)
|
||||
return cell
|
||||
}
|
||||
|
||||
@ -144,12 +156,12 @@ private class LegendCollectionViewCell: UICollectionViewCell {
|
||||
|
||||
private let indicatorColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsSecondaryOnlight, VDSColor.elementsSecondaryOndark)
|
||||
|
||||
private var title: Label = Label().with {
|
||||
open var title: Label = Label().with {
|
||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||
$0.textAlignment = .left
|
||||
$0.numberOfLines = 1
|
||||
$0.textStyle = .bodySmall
|
||||
$0.isAccessibilityElement = false
|
||||
$0.isAccessibilityElement = true
|
||||
$0.backgroundColor = .clear
|
||||
}
|
||||
|
||||
|
||||
@ -86,7 +86,7 @@ class CalendarHeaderReusableView: UICollectionReusableView {
|
||||
$0.numberOfLines = 1
|
||||
$0.textStyle = .boldBodySmall
|
||||
$0.backgroundColor = .clear
|
||||
$0.isAccessibilityElement = false
|
||||
$0.isAccessibilityElement = true
|
||||
}
|
||||
|
||||
internal let daysOfWeek = Date.capitalizedFirstLettersOfWeekdays
|
||||
@ -212,7 +212,7 @@ private class collectionViewCell: UICollectionViewCell {
|
||||
$0.numberOfLines = 1
|
||||
$0.textStyle = .bodySmall
|
||||
$0.backgroundColor = .clear
|
||||
$0.isAccessibilityElement = false
|
||||
$0.isAccessibilityElement = true
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
|
||||
@ -147,12 +147,7 @@ open class DatePicker: EntryFieldBase, DatePickerViewControllerDelegate, UIPopov
|
||||
|
||||
open override func updateAccessibility() {
|
||||
super.updateAccessibility()
|
||||
let label = "Date Picker, \(isReadOnly ? ", read only" : "")"
|
||||
if let errorText, showError {
|
||||
fieldStackView.accessibilityLabel = "\(label) ,error, \(errorText)"
|
||||
} else {
|
||||
fieldStackView.accessibilityLabel = label
|
||||
}
|
||||
fieldStackView.accessibilityLabel = "Date Picker, \(accessibilityLabelText)"
|
||||
fieldStackView.accessibilityHint = isReadOnly || !isEnabled ? "" : "Double tap to open."
|
||||
fieldStackView.accessibilityValue = value
|
||||
}
|
||||
@ -186,8 +181,11 @@ open class DatePicker: EntryFieldBase, DatePickerViewControllerDelegate, UIPopov
|
||||
|
||||
internal func didSelectDate(_ controller: DatePickerViewController, date: Date) {
|
||||
selectedDate = date
|
||||
controller.dismiss(animated: true)
|
||||
sendActions(for: .valueChanged)
|
||||
controller.dismiss(animated: true) { [weak self] in
|
||||
guard let self else { return }
|
||||
self.sendActions(for: .valueChanged)
|
||||
UIAccessibility.post(notification: .layoutChanged, argument: self.fieldStackView)
|
||||
}
|
||||
}
|
||||
|
||||
public func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
|
||||
|
||||
@ -148,7 +148,7 @@ open class DropdownSelect: EntryFieldBase {
|
||||
optionsPicker.isHidden = true
|
||||
dropdownField.inputView = optionsPicker
|
||||
dropdownField.inputAccessoryView = {
|
||||
let accessView = UIView(frame: .init(origin: .zero, size: .init(width: UIScreen.main.bounds.width, height: 44)))
|
||||
let accessView = UIView(frame: .init(origin: .zero, size: .init(width: UIScreen.main.bounds.width, height: containerSize.height)))
|
||||
accessView.backgroundColor = .white
|
||||
accessView.addBorder(side: .top, width: 1, color: .lightGray)
|
||||
let done = UIButton(type: .system)
|
||||
@ -168,6 +168,7 @@ open class DropdownSelect: EntryFieldBase {
|
||||
self?.launchPicker()
|
||||
}
|
||||
.store(in: &subscribers)
|
||||
containerView.height(44)
|
||||
}
|
||||
|
||||
open override func getFieldContainer() -> UIView {
|
||||
@ -267,7 +268,7 @@ open class DropdownSelect: EntryFieldBase {
|
||||
|
||||
open override func updateErrorLabel() {
|
||||
super.updateErrorLabel()
|
||||
if !showError && !hasInternalError {
|
||||
if !showError && !hasInternalError || !optionsPicker.isHidden {
|
||||
statusIcon.name = .downCaret
|
||||
}
|
||||
statusIcon.surface = surface
|
||||
@ -277,12 +278,7 @@ open class DropdownSelect: EntryFieldBase {
|
||||
|
||||
open override func updateAccessibility() {
|
||||
super.updateAccessibility()
|
||||
let label = "Dropdown Select, \(isReadOnly ? ", read only" : "")"
|
||||
if let errorText, showError {
|
||||
fieldStackView.accessibilityLabel = "\(label) ,error, \(errorText)"
|
||||
} else {
|
||||
fieldStackView.accessibilityLabel = label
|
||||
}
|
||||
fieldStackView.accessibilityLabel = "Dropdown Select, \(accessibilityLabelText)"
|
||||
fieldStackView.accessibilityHint = isReadOnly || !isEnabled ? "" : "Double tap to open."
|
||||
fieldStackView.accessibilityValue = value
|
||||
}
|
||||
@ -348,6 +344,7 @@ extension DropdownSelect: UIPickerViewDelegate, UIPickerViewDataSource {
|
||||
}
|
||||
optionsPicker.isHidden = !optionsPicker.isHidden
|
||||
updateContainerView()
|
||||
updateErrorLabel()
|
||||
}
|
||||
|
||||
public func numberOfComponents(in pickerView: UIPickerView) -> Int {
|
||||
|
||||
@ -141,7 +141,7 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
setNeedsUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///AttributedText that will be used in the label.
|
||||
override open var attributedText: NSAttributedString? {
|
||||
didSet {
|
||||
@ -169,7 +169,16 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
}
|
||||
|
||||
/// Whether the View is enabled or not.
|
||||
open override var isEnabled: Bool { didSet { setNeedsUpdate() } }
|
||||
/// Since the UILabel itselfs draws a different color for the "disabled state", I have to track
|
||||
/// local variable to deal with color and always enforce this UILabel is always enabled.
|
||||
private var _fakeIsEnabled: Bool = true
|
||||
open override var isEnabled: Bool {
|
||||
get { true }
|
||||
set {
|
||||
_fakeIsEnabled = newValue
|
||||
setNeedsUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Configuration Properties
|
||||
@ -282,7 +291,21 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
styleAttributedText(attributedText)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private struct FakeEnabled: Enabling, Surfaceable {
|
||||
var surface: Surface
|
||||
var isEnabled: Bool
|
||||
}
|
||||
|
||||
/// Var to deal with the UILabel.isEnabled property causing issues with
|
||||
/// textColor when it is false, I am now using a struct to draw and manage
|
||||
/// colors instead of this class itself and this class will always be enabled
|
||||
private var _textColor: UIColor {
|
||||
let fake = FakeEnabled(surface: surface, isEnabled: _fakeIsEnabled)
|
||||
return textColorConfiguration.getColor(fake)
|
||||
}
|
||||
|
||||
private func styleText(_ newValue: String!) {
|
||||
defer { invalidateIntrinsicContentSize() }
|
||||
guard let newValue, !newValue.isEmpty else {
|
||||
@ -291,17 +314,18 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
super.text = newValue
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
//clear out accessibility
|
||||
accessibilityElements?.removeAll()
|
||||
accessibilityCustomActions = []
|
||||
|
||||
|
||||
//create the primary string
|
||||
let mutableText = NSMutableAttributedString.mutableText(for: newValue,
|
||||
textStyle: textStyle,
|
||||
useScaledFont: useScaledFont,
|
||||
textColor: textColorConfiguration.getColor(self),
|
||||
textColor: _textColor,
|
||||
alignment: textAlignment,
|
||||
lineBreakMode: lineBreakMode)
|
||||
|
||||
applyAttributes(mutableText)
|
||||
|
||||
// Set attributed text to match typography
|
||||
@ -316,6 +340,10 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
return
|
||||
}
|
||||
|
||||
//clear out accessibility
|
||||
accessibilityElements?.removeAll()
|
||||
accessibilityCustomActions = []
|
||||
|
||||
let mutableText = NSMutableAttributedString(attributedString: newValue)
|
||||
|
||||
applyAttributes(mutableText)
|
||||
@ -327,7 +355,7 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
private func applyAttributes(_ mutableAttributedString: NSMutableAttributedString) {
|
||||
actions = []
|
||||
|
||||
if let attributes = attributes {
|
||||
if let attributes {
|
||||
mutableAttributedString.apply(attributes: attributes)
|
||||
}
|
||||
}
|
||||
@ -338,7 +366,7 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
|
||||
|
||||
let mutableAttributedString = NSMutableAttributedString(attributedString: attributedText)
|
||||
|
||||
if let attributes = attributes {
|
||||
if let attributes {
|
||||
//loop through the models attributes
|
||||
for attribute in attributes {
|
||||
|
||||
|
||||
@ -243,6 +243,11 @@ open class RadioBoxItem: Control, Changeable, FormFieldable, Groupable {
|
||||
open override func updateAccessibility() {
|
||||
super.updateAccessibility()
|
||||
setAccessibilityLabel(for: [textLabel, subTextLabel, subTextRightLabel])
|
||||
if let currentAccessibilityLabel = accessibilityLabel {
|
||||
accessibilityLabel = "Radiobox, \(currentAccessibilityLabel)"
|
||||
} else {
|
||||
accessibilityLabel = "Radiobox"
|
||||
}
|
||||
if let accessibilityValueText {
|
||||
accessibilityValue = strikethrough
|
||||
? "\(strikethroughAccessibilityText), \(accessibilityValueText)"
|
||||
|
||||
@ -101,6 +101,14 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
/// This is set by a local method.
|
||||
internal var bottomContainerView: UIView!
|
||||
|
||||
internal var containerBackgroundColor: UIColor {
|
||||
if showError || hasInternalError {
|
||||
return backgroundColorConfiguration.getColor(self)
|
||||
} else {
|
||||
return transparentBackground ? .clear : backgroundColorConfiguration.getColor(self)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Constraints
|
||||
//--------------------------------------------------
|
||||
@ -139,7 +147,7 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
$0.setSurfaceColors(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOnlight, forState: [.focused, .error])
|
||||
$0.setSurfaceColors(VDSColor.interactiveDisabledOnlight, VDSColor.interactiveDisabledOndark, forState: .disabled)
|
||||
$0.setSurfaceColors(VDSColor.feedbackErrorOnlight, VDSColor.feedbackErrorOndark, forState: .error)
|
||||
$0.setSurfaceColors(VDSColor.interactiveDisabledOnlight, VDSColor.interactiveDisabledOndark, forState: [.disabled,.error])
|
||||
$0.setSurfaceColors(VDSFormControlsColor.borderReadonlyOnlight, VDSFormControlsColor.borderReadonlyOndark, forState: .readonly)
|
||||
}
|
||||
|
||||
internal let iconColorConfiguration = ControlColorConfiguration().with {
|
||||
@ -192,8 +200,13 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
open override var state: UIControl.State {
|
||||
get {
|
||||
var state = super.state
|
||||
if showError || hasInternalError {
|
||||
state.insert(.error)
|
||||
if isEnabled {
|
||||
if !isReadOnly && (showError || hasInternalError){
|
||||
state.insert(.error)
|
||||
}
|
||||
if isReadOnly {
|
||||
state.insert(.readonly)
|
||||
}
|
||||
}
|
||||
return state
|
||||
}
|
||||
@ -228,6 +241,23 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
|
||||
open var rules = [AnyRule<String>]()
|
||||
|
||||
open var accessibilityLabelText: String {
|
||||
var accessibilityLabels = [String]()
|
||||
if let text = titleLabel.text {
|
||||
accessibilityLabels.append(text)
|
||||
}
|
||||
if isReadOnly {
|
||||
accessibilityLabels.append("read only")
|
||||
}
|
||||
if !isEnabled {
|
||||
accessibilityLabels.append("dimmed")
|
||||
}
|
||||
if let errorText, showError {
|
||||
accessibilityLabels.append("error, \(errorText)")
|
||||
}
|
||||
return accessibilityLabels.joined(separator: ", ")
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Overrides
|
||||
//--------------------------------------------------
|
||||
@ -363,7 +393,7 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
if isEnabled {
|
||||
let optionColorAttr = ColorLabelAttribute(location: oldText.count + 1,
|
||||
length: 8,
|
||||
color: VDSColor.elementsSecondaryOnlight)
|
||||
color: secondaryColorConfiguration.getColor(self))
|
||||
|
||||
attributes.append(optionColorAttr)
|
||||
}
|
||||
@ -436,7 +466,7 @@ open class EntryFieldBase: Control, Changeable, FormFieldInternalValidatable {
|
||||
}
|
||||
|
||||
internal func updateContainerView() {
|
||||
containerView.backgroundColor = backgroundColorConfiguration.getColor(self)
|
||||
containerView.backgroundColor = containerBackgroundColor
|
||||
containerView.layer.borderColor = borderColorConfiguration.getColor(self).cgColor
|
||||
containerView.layer.borderWidth = VDSFormControls.borderWidth
|
||||
containerView.layer.cornerRadius = VDSFormControls.borderRadius
|
||||
|
||||
@ -9,7 +9,20 @@ import Foundation
|
||||
import UIKit
|
||||
|
||||
extension InputField {
|
||||
|
||||
public class CreditCardNumberRule: Rule, Withable {
|
||||
public var cardType: CreditCardType?
|
||||
public var errorMessage: String = "You have exceeded the character limit."
|
||||
|
||||
public func isValid(value: String?) -> Bool {
|
||||
guard let count = value?.count, let min = cardType?.minLength, let max = cardType?.maxLength else { return true }
|
||||
if min == max {
|
||||
return count == max
|
||||
} else {
|
||||
return count >= min && count <= max
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum CreditCardType: String, CaseIterable {
|
||||
case generic
|
||||
case visa
|
||||
@ -19,6 +32,7 @@ extension InputField {
|
||||
case dinersClub
|
||||
case jcb
|
||||
case unionPay
|
||||
case placeholder
|
||||
|
||||
public func imageName(surface: Surface) -> String {
|
||||
func getImageName(_ surface: Surface, name: String) -> String {
|
||||
@ -29,22 +43,30 @@ extension InputField {
|
||||
case .mastercard: return "mastercard"
|
||||
case .amex: return "amex"
|
||||
case .discover: return "discover"
|
||||
case .dinersClub: return "dinersClub"//getImageName(surface, name: "dinersClub")
|
||||
case .dinersClub: return getImageName(surface, name: "dinersClub")
|
||||
case .jcb: return "jcb"
|
||||
case .unionPay: return getImageName(surface, name: "unionPay")
|
||||
default: return getImageName(surface, name: "generic")
|
||||
case .generic: return getImageName(surface, name: "generic")
|
||||
default: return getImageName(surface, name: "placeholder")
|
||||
}
|
||||
}
|
||||
|
||||
var separatorIndices: [Int] {
|
||||
func separatorIndices(_ length: Int) -> [Int] {
|
||||
var indices: [Int] = [4, 8, 12]
|
||||
switch self {
|
||||
case .dinersClub:
|
||||
return [4, 10]
|
||||
case .amex, .dinersClub:
|
||||
indices = [4, 10]
|
||||
case .unionPay:
|
||||
if length == 19 {
|
||||
indices = [5]
|
||||
}
|
||||
default:
|
||||
return [4, 8, 12]
|
||||
break
|
||||
}
|
||||
|
||||
return indices
|
||||
}
|
||||
|
||||
|
||||
var securityCodeLength: Int {
|
||||
if self == .amex {
|
||||
return 4
|
||||
@ -53,9 +75,21 @@ extension InputField {
|
||||
}
|
||||
}
|
||||
|
||||
var minLength: Int {
|
||||
switch self {
|
||||
case .visa: return 13
|
||||
case .amex: return 15
|
||||
case .dinersClub: return 14
|
||||
default: return 16
|
||||
}
|
||||
}
|
||||
|
||||
var maxLength: Int {
|
||||
switch self {
|
||||
case .visa: return 19
|
||||
case .amex: return 15
|
||||
case .dinersClub: return 14
|
||||
case .unionPay: return 19
|
||||
default: return 16
|
||||
}
|
||||
}
|
||||
@ -129,9 +163,8 @@ extension InputField {
|
||||
|
||||
override func appendRules(_ inputField: InputField) {
|
||||
if let text = inputField.textField.text, text.count > 0 {
|
||||
let rule = CharacterCountRule().copyWith {
|
||||
$0.maxLength = inputField.cardType.maxLength
|
||||
$0.compareType = .equals
|
||||
let rule = CreditCardNumberRule().copyWith {
|
||||
$0.cardType = inputField.cardType
|
||||
$0.errorMessage = "Enter a valid credit card."
|
||||
}
|
||||
inputField.rules.append(.init(rule))
|
||||
@ -141,7 +174,7 @@ extension InputField {
|
||||
override func textFieldDidBeginEditing(_ inputField: InputField, textField: UITextField) {
|
||||
//reset the textField when you start editing
|
||||
value = nil
|
||||
inputField.cardType = .generic
|
||||
inputField.cardType = .placeholder
|
||||
textField.text = ""
|
||||
inputField.validate()
|
||||
updateLeftImage(inputField)
|
||||
@ -203,8 +236,8 @@ extension InputField {
|
||||
|
||||
/// Private
|
||||
internal func formatCreditCardNumber(_ cardType: CreditCardType, number: String) -> String {
|
||||
let formattedInput = number.filter { $0.isNumber } // Remove any existing slashes
|
||||
return String.format(formattedInput, indices: cardType.separatorIndices, with: " ")
|
||||
let rawNumber = number.filter { $0.isNumber } // Remove any existing slashes
|
||||
return String.format(rawNumber, indices: cardType.separatorIndices(rawNumber.count), with: " ")
|
||||
}
|
||||
|
||||
internal func updateCardTypeIcon(_ inputField: InputField, rawNumber: String) {
|
||||
@ -222,9 +255,8 @@ extension InputField {
|
||||
guard rawNumber.count == cardType.maxLength else { return formatCreditCardNumber(cardType, number: number) }
|
||||
let lastFourDigits = rawNumber.suffix(4)
|
||||
let maskedSection = String(repeating: "•", count: 12)
|
||||
let formattedMaskSection = String.format(maskedSection, indices: cardType.separatorIndices, with: " ")
|
||||
let formattedMaskSection = String.format(maskedSection, indices: cardType.separatorIndices(rawNumber.count), with: " ")
|
||||
return formattedMaskSection + " " + lastFourDigits
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -10,6 +10,18 @@ import UIKit
|
||||
|
||||
extension InputField {
|
||||
|
||||
public class DateRule: Rule, Withable {
|
||||
public var dateFormat: DateFormat?
|
||||
public var errorMessage: String = "Enter a valid date"
|
||||
private let dateFormatter = DateFormatter()
|
||||
|
||||
public func isValid(value: String?) -> Bool {
|
||||
guard let value, let dateFormat, !value.isEmpty else { return true }
|
||||
dateFormatter.dateFormat = dateFormat.formatString
|
||||
return dateFormatter.date(from: value) != nil
|
||||
}
|
||||
}
|
||||
|
||||
public enum DateFormat: String, CaseIterable {
|
||||
case mmyy
|
||||
case mmddyy
|
||||
@ -46,6 +58,102 @@ extension InputField {
|
||||
case .mmddyyyy: [2,4]
|
||||
}
|
||||
}
|
||||
|
||||
public func isValid(_ date: String) -> Bool {
|
||||
let allowedCharacters = CharacterSet(charactersIn: "0123456789/")
|
||||
|
||||
// Check if the input contains only allowed characters
|
||||
if date.rangeOfCharacter(from: allowedCharacters.inverted) != nil || date.isEmpty {
|
||||
return false
|
||||
}
|
||||
|
||||
let components = date.split(separator: "/")
|
||||
|
||||
|
||||
func isMonth(_ month: String) -> Bool {
|
||||
switch month.count {
|
||||
case 1:
|
||||
guard let month = Int(month), (0...1).contains(month) else { return false }
|
||||
return true
|
||||
case 2:
|
||||
guard let month = Int(month), (1...12).contains(month) else { return false }
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func isDay(_ day: String) -> Bool {
|
||||
switch day.count {
|
||||
case 1:
|
||||
guard let day = Int(day),(1...3).contains(day) else { return false }
|
||||
return true
|
||||
case 2:
|
||||
guard let day = Int(day), (1...31).contains(day) else { return false }
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func isYear(_ year: String, max: Int) -> Bool {
|
||||
guard year.count <= max else {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
switch self {
|
||||
case .mmyy:
|
||||
if components.count > 2 {
|
||||
return false
|
||||
}
|
||||
|
||||
// Validate month part
|
||||
if components.count > 0, let monthPart = components.first {
|
||||
if !isMonth(String(monthPart)) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// Validate year part
|
||||
if components.count > 1, let yearPart = components.last {
|
||||
if !isYear(String(yearPart), max: 2) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
case .mmddyy, .mmddyyyy:
|
||||
if components.count > 3 {
|
||||
return false
|
||||
}
|
||||
|
||||
// Validate month part
|
||||
if components.count > 0, let monthPart = components.first {
|
||||
if !isMonth(String(monthPart)) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// Validate day part
|
||||
if components.count > 1 {
|
||||
let dayPart = components[1]
|
||||
if !isDay(String(dayPart)) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// Validate year part
|
||||
if components.count > 2, let yearPart = components.last {
|
||||
if !isYear(String(yearPart), max: self == .mmddyy ? 2 : 4) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class DateHandler: FieldTypeHandler {
|
||||
@ -58,16 +166,15 @@ extension InputField {
|
||||
|
||||
override func updateView(_ inputField: InputField) {
|
||||
minWidth = 114.0
|
||||
placeholderText = inputField.dateFormat.placeholderText
|
||||
|
||||
//placeholderText = inputField.dateFormat.placeholderText
|
||||
inputField.textField.formatText = inputField.dateFormat.placeholderText
|
||||
super.updateView(inputField)
|
||||
}
|
||||
|
||||
override func appendRules(_ inputField: InputField) {
|
||||
if let text = inputField.textField.text, text.count > 0 {
|
||||
let rule = CharacterCountRule().copyWith {
|
||||
$0.maxLength = inputField.dateFormat.maxLength
|
||||
$0.compareType = .equals
|
||||
let rule = DateRule().copyWith {
|
||||
$0.dateFormat = inputField.dateFormat
|
||||
$0.errorMessage = "Enter a valid date."
|
||||
}
|
||||
inputField.rules.append(.init(rule))
|
||||
@ -86,9 +193,13 @@ extension InputField {
|
||||
if newText.count > inputField.dateFormat.maxLength {
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
if newText.count <= inputField.dateFormat.maxLength {
|
||||
textField.text = String.format(newText, indices: inputField.dateFormat.separatorIndices, with: "/")
|
||||
let rawNumber = newText.filter { $0.isNumber }
|
||||
let formatted = String.format(rawNumber, indices: inputField.dateFormat.separatorIndices, with: "/")
|
||||
if inputField.dateFormat.isValid(formatted) || formatted.isEmpty {
|
||||
textField.text = formatted
|
||||
}
|
||||
return false
|
||||
} else {
|
||||
return true
|
||||
|
||||
@ -34,6 +34,14 @@ open class InputField: EntryFieldBase {
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Properties
|
||||
//--------------------------------------------------
|
||||
internal override var containerBackgroundColor: UIColor {
|
||||
if showSuccess {
|
||||
return backgroundColorConfiguration.getColor(self)
|
||||
} else {
|
||||
return super.containerBackgroundColor
|
||||
}
|
||||
}
|
||||
|
||||
internal override var minWidth: CGFloat { fieldType.handler().minWidth }
|
||||
internal override var maxWidth: CGFloat {
|
||||
let frameWidth = frame.size.width
|
||||
@ -60,7 +68,11 @@ open class InputField: EntryFieldBase {
|
||||
//--------------------------------------------------
|
||||
// MARK: - CreditCard/SecurityCode
|
||||
//--------------------------------------------------
|
||||
open var cardType: CreditCardType = .generic { didSet { setNeedsUpdate() } }
|
||||
open var cardType: CreditCardType = .placeholder {
|
||||
didSet {
|
||||
setNeedsUpdate()
|
||||
}
|
||||
}
|
||||
//--------------------------------------------------
|
||||
// MARK: - Password
|
||||
//--------------------------------------------------
|
||||
@ -89,7 +101,7 @@ open class InputField: EntryFieldBase {
|
||||
/// UITextField shown in the InputField.
|
||||
open var textField = TextField().with {
|
||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||
$0.font = TextStyle.bodyLarge.font
|
||||
$0.textStyle = TextStyle.bodyLarge
|
||||
}
|
||||
|
||||
/// Color configuration for the textField.
|
||||
@ -178,9 +190,11 @@ open class InputField: EntryFieldBase {
|
||||
successLabel.textColorConfiguration = primaryColorConfiguration.eraseToAnyColorable()
|
||||
|
||||
backgroundColorConfiguration.setSurfaceColors(VDSColor.feedbackSuccessBackgroundOnlight, VDSColor.feedbackSuccessBackgroundOndark, forState: .success)
|
||||
|
||||
borderColorConfiguration.setSurfaceColors(VDSColor.feedbackSuccessOnlight, VDSColor.feedbackSuccessOndark, forState: .success)
|
||||
backgroundColorConfiguration.setSurfaceColors(VDSColor.feedbackSuccessBackgroundOnlight, VDSColor.feedbackSuccessBackgroundOndark, forState: [.success, .focused])
|
||||
|
||||
borderColorConfiguration.setSurfaceColors(VDSColor.feedbackSuccessOnlight, VDSColor.feedbackSuccessOndark, forState: .success)
|
||||
|
||||
textField.textColorConfiguration = textFieldTextColorConfiguration
|
||||
}
|
||||
|
||||
open override func getFieldContainer() -> UIView {
|
||||
@ -209,19 +223,14 @@ open class InputField: EntryFieldBase {
|
||||
|
||||
super.updateView()
|
||||
|
||||
textField.surface = surface
|
||||
textField.isEnabled = isEnabled
|
||||
textField.isUserInteractionEnabled = isEnabled && !isReadOnly
|
||||
textField.textColor = textFieldTextColorConfiguration.getColor(self)
|
||||
}
|
||||
|
||||
|
||||
open override func updateAccessibility() {
|
||||
super.updateAccessibility()
|
||||
let label = "\(isReadOnly ? "read only" : "")"
|
||||
if let errorText, showError {
|
||||
textField.accessibilityLabel = "\(label) ,error, \(errorText)"
|
||||
} else {
|
||||
textField.accessibilityLabel = label
|
||||
}
|
||||
textField.accessibilityLabel = accessibilityLabelText
|
||||
textField.accessibilityHint = isReadOnly || !isEnabled ? "" : "Double tap to open."
|
||||
}
|
||||
|
||||
@ -239,9 +248,9 @@ open class InputField: EntryFieldBase {
|
||||
successLabel.isHidden = false
|
||||
errorLabel.isHidden = true
|
||||
statusIcon.name = .checkmarkAlt
|
||||
statusIcon.color = VDSColor.paletteBlack
|
||||
statusIcon.color = iconColorConfiguration.getColor(self)
|
||||
statusIcon.surface = surface
|
||||
statusIcon.isHidden = !isEnabled
|
||||
statusIcon.isHidden = !isEnabled || state.contains(.focused)
|
||||
} else {
|
||||
successLabel.isHidden = true
|
||||
}
|
||||
@ -296,6 +305,7 @@ extension InputField: UITextFieldDelegate {
|
||||
public func textFieldDidBeginEditing(_ textField: UITextField) {
|
||||
fieldType.handler().textFieldDidBeginEditing(self, textField: textField)
|
||||
updateContainerView()
|
||||
updateErrorLabel()
|
||||
}
|
||||
|
||||
public func textFieldDidEndEditing(_ textField: UITextField) {
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
import Foundation
|
||||
import UIKit
|
||||
import Combine
|
||||
import VDSTokens
|
||||
|
||||
@objc(VDSTextField)
|
||||
open class TextField: UITextField, ViewProtocol, Errorable {
|
||||
@ -46,6 +47,23 @@ open class TextField: UITextField, ViewProtocol, Errorable {
|
||||
//--------------------------------------------------
|
||||
// MARK: - Properties
|
||||
//--------------------------------------------------
|
||||
private var formatLabel = Label().with {
|
||||
$0.tag = 999
|
||||
$0.textColorConfiguration = ViewColorConfiguration().with {
|
||||
$0.setSurfaceColors(VDSColor.interactiveDisabledOnlight, VDSColor.interactiveDisabledOndark, forDisabled: true)
|
||||
$0.setSurfaceColors(VDSColor.elementsSecondaryOnlight, VDSColor.elementsSecondaryOndark, forDisabled: false)
|
||||
}.eraseToAnyColorable()
|
||||
}
|
||||
|
||||
/// Format String similar to placeholder
|
||||
open var formatText: String?
|
||||
|
||||
/// TextStyle used on the titleLabel.
|
||||
open var textStyle: TextStyle = .defaultStyle { didSet { setNeedsUpdate() } }
|
||||
|
||||
/// Will determine if a scaled font should be used for the titleLabel font.
|
||||
open var useScaledFont: Bool = false { didSet { setNeedsUpdate() } }
|
||||
|
||||
/// Key of whether or not updateView() is called in setNeedsUpdate()
|
||||
open var shouldUpdateView: Bool = true
|
||||
|
||||
@ -55,6 +73,22 @@ open class TextField: UITextField, ViewProtocol, Errorable {
|
||||
|
||||
open var errorText: String? { didSet { setNeedsUpdate() } }
|
||||
|
||||
open var lineBreakMode: NSLineBreakMode = .byClipping { didSet { setNeedsUpdate() } }
|
||||
|
||||
open override var isEnabled: Bool { didSet { setNeedsUpdate() } }
|
||||
|
||||
open var textColorConfiguration: AnyColorable = ViewColorConfiguration().with {
|
||||
$0.setSurfaceColors(VDSColor.interactiveDisabledOnlight, VDSColor.interactiveDisabledOndark, forDisabled: true)
|
||||
$0.setSurfaceColors(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark, forDisabled: false)
|
||||
}.eraseToAnyColorable(){ didSet { setNeedsUpdate() }}
|
||||
|
||||
open override var textColor: UIColor? {
|
||||
get { textColorConfiguration.getColor(self) }
|
||||
set { }
|
||||
}
|
||||
|
||||
override public var text: String! { didSet { setNeedsUpdate() } }
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Lifecycle
|
||||
//--------------------------------------------------
|
||||
@ -63,6 +97,8 @@ open class TextField: UITextField, ViewProtocol, Errorable {
|
||||
initialSetupPerformed = true
|
||||
backgroundColor = .clear
|
||||
translatesAutoresizingMaskIntoConstraints = false
|
||||
setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
|
||||
clipsToBounds = true
|
||||
setup()
|
||||
setNeedsUpdate()
|
||||
}
|
||||
@ -84,10 +120,43 @@ open class TextField: UITextField, ViewProtocol, Errorable {
|
||||
|
||||
@objc func doneButtonAction() {
|
||||
// Resigns the first responder status when 'Done' is tapped
|
||||
resignFirstResponder()
|
||||
let _ = resignFirstResponder()
|
||||
}
|
||||
|
||||
open func updateView() {}
|
||||
open func updateView() {
|
||||
updateLabel()
|
||||
updateFormat()
|
||||
}
|
||||
|
||||
open func updateFormat() {
|
||||
guard let formatText else {
|
||||
formatLabel.text = ""
|
||||
return
|
||||
}
|
||||
|
||||
if viewWithTag(999) == nil {
|
||||
addSubview(formatLabel)
|
||||
formatLabel.pinToSuperView()
|
||||
}
|
||||
|
||||
var attributes: [any LabelAttributeModel]?
|
||||
var finalFormatText = formatText
|
||||
|
||||
if let text, !text.isEmpty {
|
||||
//make the color of the matching text clear
|
||||
attributes = [ColorLabelAttribute(location: 0, length: text.count, color: .clear)]
|
||||
|
||||
let startIndex = formatText.index(formatText.startIndex, offsetBy: text.count)
|
||||
if startIndex < formatText.endIndex {
|
||||
finalFormatText = text + formatText[startIndex...]
|
||||
}
|
||||
}
|
||||
|
||||
//set the label
|
||||
formatLabel.surface = surface
|
||||
formatLabel.text = finalFormatText
|
||||
formatLabel.attributes = attributes
|
||||
}
|
||||
|
||||
open func updateAccessibility() {
|
||||
if let errorText, showError {
|
||||
@ -139,6 +208,28 @@ open class TextField: UITextField, ViewProtocol, Errorable {
|
||||
}
|
||||
return success
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Private Methods
|
||||
//--------------------------------------------------
|
||||
private func updateLabel() {
|
||||
|
||||
//clear the arrays holding actions
|
||||
accessibilityCustomActions = []
|
||||
if let text, !text.isEmpty {
|
||||
//create the primary string
|
||||
let mutableText = NSMutableAttributedString.mutableText(for: text,
|
||||
textStyle: textStyle,
|
||||
useScaledFont: useScaledFont,
|
||||
textColor: textColor!,
|
||||
alignment: .left,
|
||||
lineBreakMode: lineBreakMode)
|
||||
attributedText = mutableText
|
||||
} else {
|
||||
attributedText = nil
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
extension UITextField {
|
||||
|
||||
@ -163,9 +163,6 @@ open class TextArea: EntryFieldBase {
|
||||
|
||||
textViewHeightConstraint = textView.heightAnchor.constraint(greaterThanOrEqualToConstant: containerSize.height)
|
||||
textViewHeightConstraint?.isActive = true
|
||||
backgroundColorConfiguration.setSurfaceColors(VDSColor.feedbackSuccessBackgroundOnlight, VDSColor.feedbackSuccessBackgroundOndark, forState: .success)
|
||||
borderColorConfiguration.setSurfaceColors(VDSColor.feedbackSuccessOnlight, VDSColor.feedbackSuccessOndark, forState: .success)
|
||||
borderColorConfiguration.setSurfaceColors(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark, forState: .focused)
|
||||
characterCounterLabel.textColorConfiguration = primaryColorConfiguration.eraseToAnyColorable()
|
||||
bottomContainerStackView.spacing = VDSLayout.space2X
|
||||
|
||||
@ -190,11 +187,7 @@ open class TextArea: EntryFieldBase {
|
||||
textViewHeightConstraint?.constant = minHeight.value
|
||||
|
||||
characterCounterLabel.text = getCharacterCounterText()
|
||||
|
||||
statusIcon.color = iconColorConfiguration.getColor(self)
|
||||
containerView.layer.borderColor = isReadOnly ? readOnlyBorderColorConfiguration.getColor(self).cgColor : borderColorConfiguration.getColor(self).cgColor
|
||||
textView.isEditable = !isEnabled || isReadOnly ? false : true
|
||||
textView.backgroundColor = backgroundColorConfiguration.getColor(self)
|
||||
textView.tintColor = iconColorConfiguration.getColor(self)
|
||||
characterCounterLabel.surface = surface
|
||||
highlightCharacterOverflow()
|
||||
@ -202,12 +195,7 @@ open class TextArea: EntryFieldBase {
|
||||
|
||||
open override func updateAccessibility() {
|
||||
super.updateAccessibility()
|
||||
let label = "\(isReadOnly ? "read only" : "")"
|
||||
if let errorText, showError {
|
||||
textView.accessibilityLabel = "\(label) ,error, \(errorText)"
|
||||
} else {
|
||||
textView.accessibilityLabel = label
|
||||
}
|
||||
textView.accessibilityLabel = accessibilityLabelText
|
||||
textView.accessibilityHint = isReadOnly || !isEnabled ? "" : "Double tap to open."
|
||||
}
|
||||
|
||||
|
||||
@ -108,7 +108,7 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
|
||||
$0.clipsToBounds = true
|
||||
}
|
||||
|
||||
private var containerView = View()
|
||||
internal var containerView = View()
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Public Properties
|
||||
@ -341,6 +341,7 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
|
||||
super.updateAccessibility()
|
||||
containerView.isAccessibilityElement = onClickSubscriber != nil
|
||||
containerView.accessibilityHint = "Double tap to open."
|
||||
containerView.accessibilityLabel = nil
|
||||
}
|
||||
|
||||
open override var accessibilityElements: [Any]? {
|
||||
@ -354,10 +355,18 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
|
||||
}
|
||||
items.append(containerView)
|
||||
}
|
||||
items.append(contentsOf: contentView.subviews.filter({ $0.isAccessibilityElement == true }))
|
||||
|
||||
let elements = gatherAccessibilityElements(from: contentView)
|
||||
let views = elements.compactMap({ $0 as? UIView })
|
||||
|
||||
//update accessibilityLabel
|
||||
containerView.setAccessibilityLabel(for: views)
|
||||
|
||||
//append all children that are accessible
|
||||
items.append(contentsOf: elements)
|
||||
|
||||
return items
|
||||
}
|
||||
|
||||
set {}
|
||||
}
|
||||
|
||||
|
||||
@ -415,29 +415,37 @@ open class Tilelet: TileContainerBase<Tilelet.Padding> {
|
||||
|
||||
/// Used to update any Accessibility properties.
|
||||
open override var accessibilityElements: [Any]? {
|
||||
|
||||
get {
|
||||
var elements = [Any]()
|
||||
if let superElements = super.accessibilityElements {
|
||||
elements.append(contentsOf: superElements)
|
||||
}
|
||||
var views = [UIView]()
|
||||
|
||||
// grab the available views in order
|
||||
if badgeModel != nil {
|
||||
elements.append(badge)
|
||||
views.append(badge)
|
||||
}
|
||||
|
||||
if titleModel != nil || subTitleModel != nil || eyebrowModel != nil {
|
||||
elements.append(titleLockup)
|
||||
views.append(titleLockup)
|
||||
}
|
||||
if descriptiveIconModel != nil {
|
||||
elements.append(descriptiveIcon)
|
||||
|
||||
containerView.setAccessibilityLabel(for: views)
|
||||
|
||||
// get the views to return
|
||||
var items = [Any]()
|
||||
if containerView.isAccessibilityElement {
|
||||
if !accessibilityTraits.contains(.button) && !accessibilityTraits.contains(.link) {
|
||||
containerView.accessibilityTraits = .button
|
||||
} else {
|
||||
containerView.accessibilityTraits = accessibilityTraits
|
||||
}
|
||||
items.append(containerView)
|
||||
}
|
||||
if directionalIconModel != nil {
|
||||
elements.append(directionalIcon)
|
||||
}
|
||||
return elements
|
||||
|
||||
//append all other accessible views to traverse
|
||||
items.append(contentsOf: views)
|
||||
|
||||
return items
|
||||
}
|
||||
|
||||
set {}
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
@ -532,19 +540,21 @@ open class Tilelet: TileContainerBase<Tilelet.Padding> {
|
||||
var showIconContainerView = false
|
||||
if let descriptiveIconModel {
|
||||
descriptiveIcon.name = descriptiveIconModel.name
|
||||
descriptiveIcon.colorConfiguration = descriptiveIconModel.colorConfiguration
|
||||
if let color = descriptiveIconModel.iconColor?.uiColor {
|
||||
descriptiveIcon.color = color
|
||||
}
|
||||
descriptiveIcon.size = descriptiveIconModel.size
|
||||
descriptiveIcon.surface = backgroundColorSurface
|
||||
descriptiveIcon.accessibilityLabel = descriptiveIconModel.accessibleText
|
||||
showIconContainerView = true
|
||||
}
|
||||
|
||||
if let directionalIconModel {
|
||||
directionalIcon.name = directionalIconModel.iconType.iconName
|
||||
directionalIcon.colorConfiguration = directionalIconModel.colorConfiguration
|
||||
if let color = directionalIconModel.iconColor?.uiColor {
|
||||
directionalIcon.color = color
|
||||
}
|
||||
directionalIcon.size = directionalIconModel.size.value
|
||||
directionalIcon.surface = backgroundColorSurface
|
||||
directionalIcon.accessibilityLabel = directionalIconModel.accessibleText
|
||||
showIconContainerView = true
|
||||
}
|
||||
|
||||
|
||||
@ -11,13 +11,33 @@ import VDSTokens
|
||||
|
||||
extension Tilelet {
|
||||
|
||||
public enum IconColor: Equatable {
|
||||
case token(UIColor.VDSColor)
|
||||
case custom(UIColor)
|
||||
|
||||
private var reflectedValue: String { String(reflecting: self) }
|
||||
|
||||
public static func == (lhs: Self, rhs: Self) -> Bool {
|
||||
lhs.reflectedValue == rhs.reflectedValue
|
||||
}
|
||||
|
||||
public var uiColor: UIColor {
|
||||
switch self {
|
||||
case .token(let color):
|
||||
return color.uiColor
|
||||
case .custom(let color):
|
||||
return color
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Model that represents the options available for the descriptive icon.
|
||||
public struct DescriptiveIcon {
|
||||
/// A representation that will be used to render the icon with corresponding name.
|
||||
public var name: Icon.Name
|
||||
|
||||
/// Color of the icon.
|
||||
public var colorConfiguration: SurfaceColorConfiguration
|
||||
public var iconColor: IconColor?
|
||||
|
||||
/// Enum for a preset height and width for the icon.
|
||||
public var size: Icon.Size
|
||||
@ -26,12 +46,12 @@ extension Tilelet {
|
||||
public var accessibleText: String
|
||||
|
||||
public init(name: Icon.Name = .multipleDocuments,
|
||||
colorConfiguration: SurfaceColorConfiguration = .init(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark),
|
||||
iconColor: IconColor? = nil,
|
||||
size: Icon.Size = .medium,
|
||||
accessibleText: String? = nil) {
|
||||
|
||||
self.name = name
|
||||
self.colorConfiguration = colorConfiguration
|
||||
self.iconColor = iconColor
|
||||
self.accessibleText = accessibleText ?? name.rawValue
|
||||
self.size = size
|
||||
}
|
||||
@ -57,7 +77,7 @@ extension Tilelet {
|
||||
}
|
||||
|
||||
/// Color of the icon.
|
||||
public var colorConfiguration: SurfaceColorConfiguration
|
||||
public var iconColor: IconColor?
|
||||
|
||||
/// Accessible Text for the Icon
|
||||
public var accessibleText: String
|
||||
@ -68,13 +88,13 @@ extension Tilelet {
|
||||
/// Enum for a preset height and width for the icon.
|
||||
public var size: IconSize
|
||||
|
||||
public init(iconType: IconType = .rightArrow,
|
||||
colorConfiguration: SurfaceColorConfiguration = .init(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark),
|
||||
public init(iconType: IconType = .rightArrow,
|
||||
iconColor: IconColor? = nil,
|
||||
size: IconSize = .medium,
|
||||
accessibleText: String? = nil) {
|
||||
|
||||
self.iconType = iconType
|
||||
self.colorConfiguration = colorConfiguration
|
||||
self.iconColor = iconColor
|
||||
self.accessibleText = accessibleText ?? iconType.iconName.rawValue
|
||||
self.size = size
|
||||
}
|
||||
|
||||
@ -274,6 +274,7 @@ open class TitleLockup: View {
|
||||
if subTitleModel != nil {
|
||||
elements.append(subTitleLabel)
|
||||
}
|
||||
setAccessibilityLabel(for: elements.compactMap({$0 as? UIView}))
|
||||
accessibilityElements = elements.count > 0 ? elements : nil
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,8 @@ extension TitleLockup {
|
||||
public enum TextColor: Equatable {
|
||||
case primary
|
||||
case secondary
|
||||
case custom(UIColor, UIColor)
|
||||
case token(UIColor.VDSColor)
|
||||
case custom(UIColor)
|
||||
|
||||
private var reflectedValue: String { String(reflecting: self) }
|
||||
|
||||
@ -31,15 +32,18 @@ extension TitleLockup {
|
||||
TitleLockup.textColorPrimaryConfiguration
|
||||
case .secondary:
|
||||
TitleLockup.textColorSecondaryConfiguration
|
||||
case .custom(let lightColor, let darkColor):
|
||||
SurfaceColorConfiguration(lightColor, darkColor).eraseToAnyColorable()
|
||||
case .token(let color):
|
||||
SurfaceColorConfiguration(color.uiColor, color.uiColor).eraseToAnyColorable()
|
||||
case .custom(let color):
|
||||
SurfaceColorConfiguration(color, color).eraseToAnyColorable()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum TitleTextColor: Equatable {
|
||||
case primary
|
||||
case custom(UIColor, UIColor)
|
||||
case token(UIColor.VDSColor)
|
||||
case custom(UIColor)
|
||||
|
||||
private var reflectedValue: String { String(reflecting: self) }
|
||||
|
||||
@ -51,8 +55,10 @@ extension TitleLockup {
|
||||
switch self {
|
||||
case .primary:
|
||||
TitleLockup.textColorPrimaryConfiguration
|
||||
case .custom(let lightColor, let darkColor):
|
||||
SurfaceColorConfiguration(lightColor, darkColor).eraseToAnyColorable()
|
||||
case .token(let color):
|
||||
SurfaceColorConfiguration(color.uiColor, color.uiColor).eraseToAnyColorable()
|
||||
case .custom(let color):
|
||||
SurfaceColorConfiguration(color, color).eraseToAnyColorable()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,4 +15,7 @@ extension UIControl.State {
|
||||
|
||||
/// State for Success
|
||||
public static var success = UIControl.State(rawValue: 1 << 17)
|
||||
|
||||
/// State for Success
|
||||
public static var readonly = UIControl.State(rawValue: 1 << 18)
|
||||
}
|
||||
|
||||
@ -50,4 +50,16 @@ extension UIView {
|
||||
return isIntersecting
|
||||
}
|
||||
|
||||
public func gatherAccessibilityElements(from view: UIView) -> [Any] {
|
||||
var elements: [Any] = []
|
||||
|
||||
for subview in view.subviews {
|
||||
if subview.isAccessibilityElement && subview.isVisibleOnScreen {
|
||||
elements.append(subview)
|
||||
}
|
||||
elements.append(contentsOf: gatherAccessibilityElements(from: subview))
|
||||
}
|
||||
|
||||
return elements
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public enum Font: FontProtocol {
|
||||
/// - size: Size of the font
|
||||
/// - Returns: UIFont for the fontName and Size.
|
||||
public func font(ofSize size: CGFloat) -> UIFont{
|
||||
DispatchQueue.once(block: { self.register() })
|
||||
DispatchQueue.once(block: { Self.register() })
|
||||
switch self {
|
||||
case .custom(let font):
|
||||
return font
|
||||
|
||||
@ -18,7 +18,7 @@ public protocol FontProtocol {
|
||||
extension FontProtocol {
|
||||
|
||||
/// Registers the fonts used in the VDS Framework.
|
||||
public func register() {
|
||||
public static func register() {
|
||||
guard let bundle = Bundle(identifier: "com.vzw.vds") else { return }
|
||||
Self.allCases.forEach{ font in
|
||||
if let url = bundle.url(forResource: font.fontName, withExtension: font.fontFileExtension){
|
||||
@ -51,7 +51,7 @@ extension FontProtocol {
|
||||
/// - size: Size of the font
|
||||
/// - Returns: UIFont for the fontName and Size.
|
||||
public func font(ofSize size: CGFloat) -> UIFont{
|
||||
DispatchQueue.once(block: { self.register() })
|
||||
DispatchQueue.once(block: { Self.register() })
|
||||
guard let found = UIFont(name: self.fontName, size: size) else { return .systemFont(ofSize: size) }
|
||||
return found
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "DCI_Horizontal-2_onlight.svg",
|
||||
"filename" : "DCI_Horizontal-2_ondark-2.svg",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
|
||||
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33.100002288818359 23.099998474121094">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-3 {
|
||||
stroke-width: 0px;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: #0069aa;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: #fff;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g>
|
||||
<path class="cls-1" d="M10.600000381469727,20.5h-.199999809265137v1.100000381469727h.199999809265137c.399999618530273,0,.600000381469727-.100000381469727.600000381469727-.600000381469727s-.199999809265137-.5-.5-.5h-.100000381469727Z"/>
|
||||
<polygon class="cls-1" points="16.200000762939453 21.799999237060547 16.899999618530273 21.799999237060547 16.5 20.799999237060547 16.200000762939453 21.799999237060547"/>
|
||||
<path class="cls-1" d="M12.300000190734863,16.5c0-.399999618530273-.199999809265137-.600000381469727-.600000381469727-.600000381469727s-.699999809265137.299999237060547-.800000190734863.799999237060547h1.199999809265137q.199999809265137,0,.199999809265137-.200000762939453l.000000953674316.000001907348633Z"/>
|
||||
<path class="cls-1" d="M2.099999904632568,18.600000381469727c1.5,0,2-1.100000381469727,2-2.200000762939453s-.799999952316284-2.199999809265137-2.200000047683716-2.199999809265137-.399999976158142,0-.5,0v3.800000190734863c0,.5.399999976158142.600000381469727.700000047683716.600000381469727h0Z"/>
|
||||
<path class="cls-1" d="M23.200000762939453,20.5c-.600000381469727,0-.899999618530273.600000381469727-.899999618530273,1.100000381469727s.299999237060547,1.299999237060547.899999618530273,1.299999237060547.899999618530273-.600000381469727.899999618530273-1.200000762939453-.299999237060547-1.200000762939453-.899999618530273-1.200000762939453v.000001907348633Z"/>
|
||||
<path class="cls-1" d="M30.899999618530273,18.700000762939453c.799999237060547,0,1.100000381469727-.700000762939453,1.100000381469727-1.399999618530273s-.600000381469727-1.399999618530273-1.100000381469727-1.399999618530273-.5.200000762939453-.700000762939453.299999237060547v1.700000762939453c0,.299999237060547.200000762939453.700000762939453.700000762939453.700000762939453h0v.099998474121094Z"/>
|
||||
<polygon class="cls-1" points="28.600000381469727 21.799999237060547 29.299999237060547 21.799999237060547 29 20.799999237060547 28.600000381469727 21.799999237060547"/>
|
||||
<path class="cls-1" d="M32.700000762939453,20.299999237060547c-.200000762939453,0-.299999237060547.100000381469727-.299999237060547.299999237060547s.099998474121094.299999237060547.299999237060547.299999237060547.299999237060547-.100000381469727.299999237060547-.299999237060547-.099998474121094-.299999237060547-.299999237060547-.299999237060547ZM32.900001525878906,20.899999618530273h0l-.099998474121094-.200000762939453h0v.200000762939453h-.200000762939453v-.299999237060547h.200000762939453s.099998474121094,0,.099998474121094.100000381469727v.100000381469727h0v.200000762939453h0v-.100002288818359Z"/>
|
||||
<path class="cls-3" d="M2,18.799999237060547c2.5,0,2.900000095367432-1.700000762939453,2.900000095367432-2.399999618530273,0-1.199999809265137-1-2.399999618530273-2.799999952316284-2.399999618530273s-.899999976158142,0-1.200000047683716,0H.100000083446503v.199999809265137c.300000011920929,0,.600000023841858,0,.600000023841858.600000381469727v3.40000057220459c0,.5-.199999988079071.5-.600000023841858.5v.200000762939453h1.899999916553497v-.100002288818359ZM1.399999976158142,14.199999809265137h.600000023841858c1.400000095367432,0,2.199999809265137.899999618530273,2.199999809265137,2.199999809265137,0,1.30000114440918-.5,2.200000762939453-2,2.200000762939453s-.700000047683716,0-.700000047683716-.600000381469727v-3.800000190734863h-.099999785423279Z"/>
|
||||
<path class="cls-3" d="M5.800000190734863,14.5c.199999809265137,0,.300000190734863-.199999809265137.300000190734863-.399999618530273s-.199999809265137-.300000190734863-.300000190734863-.300000190734863-.300000190734863.199999809265137-.300000190734863.300000190734863.199999809265137.399999618530273.300000190734863.399999618530273Z"/>
|
||||
<path class="cls-3" d="M6.599999904632568,18.799999237060547v-.200000762939453h-.099999904632568c-.199999809265137,0-.300000190734863,0-.300000190734863-.200000762939453v-2.800000190734863h-.099999904632568s-.400000095367432.100000381469727-.800000190734863.199999809265137h0c.300000190734863.199999809265137.400000095367432.299999237060547.400000095367432.600000381469727v1.899999618530273c0,.200000762939453-.099999904632568.200000762939453-.300000190734863.200000762939453h-.099999904632568v.200000762939453h1.5l-.199999809265137.100000381469727Z"/>
|
||||
<path class="cls-3" d="M10.300000190734863,18.600000381469727h-.100000381469727c-.199999809265137,0-.399999618530273,0-.399999618530273-.200000762939453v-1.799999237060547c0-.5-.199999809265137-1-.800000190734863-1s-.800000190734863.199999809265137-1.199999809265137.5v-.5h0c-.300000190734863.100000381469727-.599999904632568.199999809265137-.900000095367432.300000190734863h0c.300000190734863.300000190734863.400000095367432.300000190734863.400000095367432.59999942779541v1.899999618530273c0,.200000762939453-.099999904632568.200000762939453-.300000190734863.200000762939453h-.099999904632568v.200000762939453h1.500000476837158v-.200000762939453h-.100000381469727c-.199999809265137,0-.300000190734863,0-.300000190734863-.200000762939453v-2.100000381469727c.199999809265137-.100000381469727.600000381469727-.300000190734863.800000190734863-.300000190734863.399999618530273,0,.600000381469727.199999809265137.600000381469727.59999942779541v1.799999237060547c0,.200000762939453-.100000381469727.200000762939453-.300000190734863.200000762939453h-.100000381469727v.200000762939453h1.5v-.200000762939453h0l-.199999809265137.000001907348633Z"/>
|
||||
<path class="cls-3" d="M11.600000381469727,18.899999618530273c.600000381469727,0,1-.399999618530273,1.300000190734863-.799999237060547h-.100000381469727c-.300000190734863.200000762939453-.600000381469727.399999618530273-.899999618530273.399999618530273-.600000381469727,0-1-.5-1-1.200000762939453v-.399999618530273h2v-.200000762939453c0-.699999809265137-.600000381469727-1.100000381469727-1.199999809265137-1.100000381469727s-1.399999618530273.399999618530273-1.399999618530273,1.799999237060547.199999809265137,1.5,1.300000190734863,1.5l-.000000953674316.000001907348633ZM11.699999809265137,15.800000190734863c.399999618530273,0,.600000381469727.300000190734863.600000381469727.59999942779541s0,.200000762939453-.199999809265137.200000762939453h-1.199999809265137c0-.5.399999618530273-.800000190734863.800000190734863-.800000190734863h-.000000953674316Z"/>
|
||||
<path class="cls-3" d="M14.899999618530273,18.799999237060547v-.200000762939453h-.399999618530273c-.199999809265137,0-.300000190734863,0-.300000190734863-.200000762939453v-1.600000381469727c0-.399999618530273.399999618530273-.600000381469727.5-.600000381469727.199999809265137,0,.199999809265137.200000762939453.5.200000762939453s.300000190734863-.200000762939453.300000190734863-.399999618530273-.199999809265137-.399999618530273-.399999618530273-.399999618530273c-.399999618530273,0-.699999809265137.5-.899999618530273.700000762939453h0v-.600000381469727h0s-.300000190734863.199999809265137-.899999618530273.399999618530273h0c.100000381469727.200000762939453.399999618530273.200000762939453.399999618530273.399999618530273v2c0,.200000762939453-.100000381469727.200000762939453-.300000190734863.200000762939453h-.199999809265137v.200000762939453h1.800000190734863l-.100001335144043-.100000381469727Z"/>
|
||||
<path class="cls-3" d="M16.600000381469727,18.700000762939453c-.5,0-.800000190734863-.399999618530273-.899999618530273-.899999618530273h-.100000381469727v.899999618530273c.199999809265137.100000381469727.600000381469727.200000762939453.899999618530273.200000762939453.799999237060547,0,1.200000762939453-.5,1.200000762939453-1,0-1.100000381469727-1.600000381469727-.899999618530273-1.600000381469727-1.700000762939453s.299999237060547-.5.5-.5c.5,0,.700000762939453.299999237060547.799999237060547.700000762939453h.200000762939453v-.699999809265137c-.299999237060547-.100000381469727-.600000381469727-.199999809265137-.799999237060547-.199999809265137-.799999237060547,0-1.100000381469727.5-1.100000381469727.899999618530273,0,1.100000381469727,1.5.899999618530273,1.5,1.700000762939453s-.100000381469727.5-.600000381469727.5h0v.099998474121094Z"/>
|
||||
<path class="cls-3" d="M23.899999618530273,18.5l.200000762939453-1h-.200000762939453c-.100000381469727.700000762939453-.700000762939453,1.200000762939453-1.399999618530273,1.200000762939453-1.100000381469727,0-2.100000381469727-1-2.100000381469727-2.399999618530273s1.200000762939453-2.199999809265137,2-2.199999809265137,1.399999618530273.300000190734863,1.5,1.100000381469727h.200000762939453v-1c-.600000381469727-.199999809265137-1.100000381469727-.399999618530273-1.700000762939453-.399999618530273-1.399999618530273,0-2.600000381469727,1-2.600000381469727,2.500000953674316,0,1.5,1,2.600000381469727,2.700000762939453,2.600000381469727s1.200000762939453-.200000762939453,1.5-.399999618530273h0l-.100000381469727-.000003814697266Z"/>
|
||||
<path class="cls-3" d="M25.799999237060547,18.799999237060547v-.200000762939453h-.100000381469727c-.200000762939453,0-.399999618530273,0-.399999618530273-.200000762939453v-4.90000057220459h-.100000381469727c-.100000381469727,0-.399999618530273.199999809265137-.700000762939453.300000190734863h0c.299999237060547.199999809265137.399999618530273.199999809265137.399999618530273.699999809265137v3.90000057220459c0,.200000762939453-.100000381469727.200000762939453-.299999237060547.200000762939453h-.100000381469727v.200000762939453h1.5-.19999885559082Z"/>
|
||||
<path class="cls-3" d="M26.200000762939453,16.299999237060547v1.799999237060547c0,.600000381469727.399999618530273.799999237060547.799999237060547.799999237060547s.799999237060547-.200000762939453,1.200000762939453-.600000381469727v.600000381469727h0c.100000381469727,0,.700000762939453-.200000762939453,1-.200000762939453h0c0-.100000381469727-.200000762939453-.100000381469727-.299999237060547-.100000381469727-.100000381469727,0-.200000762939453,0-.200000762939453-.100000381469727v-2.700000762939453s-.5,0-1.100000381469727.100000381469727h0c.200000762939453.200000762939453.600000381469727.299999237060547.600000381469727.399999618530273v1.899999618530273c-.299999237060547.200000762939453-.600000381469727.399999618530273-.899999618530273.399999618530273-.600000381469727,0-.600000381469727-.600000381469727-.600000381469727-.799999237060547v-2h-.899999618530273c.399999618530273.199999809265137.399999618530273.299999237060547.399999618530273.5v.000003814697266Z"/>
|
||||
<path class="cls-3" d="M29.600000381469727,14.5v3c0,.399999618530273,0,.799999237060547-.100000381469727,1.200000762939453h.30000114440918c.200000762939453,0,.5.200000762939453,1,.200000762939453,1,0,1.69999885559082-.899999618530273,1.69999885559082-1.799999237060547s-.5-1.5-1.299999237060547-1.5-.799999237060547.300000190734863-1,.5v-2.700000762939453h-.100000381469727c-.100000381469727,0-.399999618530273.199999809265137-.700000762939453.300000190734863h0c.299999237060547.199999809265137.399999618530273.199999809265137.399999618530273.699999809265137h0l-.19999885559082.099998474121094ZM30.200000762939453,16.299999237060547c.200000762939453-.200000762939453.399999618530273-.300000190734863.700000762939453-.300000190734863.5,0,1.099998474121094.59999942779541,1.099998474121094,1.40000057220459s-.299999237060547,1.399999618530273-1.100000381469727,1.399999618530273-.700000762939453-.5-.700000762939453-.700000762939453v-1.700000762939453h0l.000001907348633-.099998474121094Z"/>
|
||||
<path class="cls-3" d="M.600000023841858,20.299999237060547h-.600000023841858v.200000762939453c.100000001490116,0,.300000011920929,0,.300000011920929.200000762939453v2c0,.200000762939453-.099999994039536.200000762939453-.300000011920929.200000762939453h0v.099998474121094h1.200000047683716v-.100000381469727c-.100000023841858,0-.300000011920929,0-.300000011920929-.200000762939453v-2c0-.200000762939453.099999964237213-.200000762939453.300000011920929-.200000762939453h0v-.100000381469727h-.600000023841858v-.099998474121094Z"/>
|
||||
<path class="cls-3" d="M3.900000095367432,20.299999237060547h-.5v.100000381469727c.099999904632568,0,.299999952316284,0,.299999952316284.299999237060547v1.399999618530273l-1.700000047683716-1.899999618530273h-.799999952316284v.100000381469727c.200000047683716,0,.299999952316284.100000381469727.299999952316284.299999237060547v1.600000381469727c0,.299999237060547,0,.5-.299999952316284.5h0v.100000381469727h1v-.100000381469727c-.299999952316284,0-.299999952316284-.100000381469727-.299999952316284-.399999618530273v-1.5l1.900000095367432,2.100000381469727h.199999809265137v-2.100000381469727c0-.5.199999809265137-.5.300000190734863-.5h0v-.100000381469727h-.5l.099999904632568.100000381469727Z"/>
|
||||
<path class="cls-3" d="M7,20.200000762939453h0q0,.100000381469727-.199999809265137.100000381469727h-2s-.199999809265137,0-.199999809265137-.100000381469727h0v.599998474121094h.099999904632568q0-.299999237060547.300000190734863-.399999618530273h.599999904632568v2q0,.299999237060547-.300000190734863.299999237060547h0v.100000381469727h1.199999809265137v-.100000381469727c-.199999809265137,0-.300000190734863,0-.300000190734863-.299999237060547v-2h.599999904632568c.199999809265137,0,.300000190734863.200000762939453.300000190734863.399999618530273h.099999904632568v-.599998474121094h-.199999809265137Z"/>
|
||||
<path class="cls-3" d="M9.300000190734863,22.399999618530273h0c-.100000381469727.5-.300000190734863.5-.800000190734863.5s-.399999618530273,0-.399999618530273-.200000762939453v-.899999618530273h.399999618530273c.199999809265137,0,.199999809265137.100000381469727.300000190734863.399999618530273h.100000381469727v-1h-.100000381469727c0,.200000762939453,0,.299999237060547-.300000190734863.299999237060547h-.399999618530273v-1h.5c.399999618530273,0,.399999618530273.200000762939453.399999618530273.399999618530273h.100000381469727v-.600000381469727h-1.900000095367432v.100000381469727c.099999904632568,0,.300000190734863,0,.300000190734863.200000762939453v2c0,.200000762939453-.099999904632568.200000762939453-.300000190734863.200000762939453h0v.100000381469727h2.000000476837158c0-.200000762939453,0-.399999618530273.100000381469727-.600000381469727h-.100000381469727l.09999942779541.100000381469727Z"/>
|
||||
<path class="cls-3" d="M11.899999618530273,22.600000381469727l-.600000381469727-1c.300000190734863-.100000381469727.5-.299999237060547.5-.700000762939453,0-.5-.399999618530273-.700000762939453-.899999618530273-.700000762939453h-1.200000762939453v.100000381469727c.100000381469727,0,.199999809265137,0,.199999809265137.299999237060547v1.899999618530273c0,.100000381469727-.100000381469727.200000762939453-.199999809265137.200000762939453h0v.100000381469727h1.300000190734863v-.100000381469727c-.199999809265137,0-.300000190734863,0-.300000190734863-.299999237060547v-.799999237060547h.199999809265137c.199999809265137.399999618530273.5.799999237060547.800000190734863,1.200000762939453h.799999237060547v-.100000381469727q-.199999809265137,0-.399999618530273-.200000762939453h0l-.19999885559082.100000381469727ZM10.600000381469727,21.600000381469727h-.199999809265137v-1.100000381469727h.199999809265137c.300000190734863,0,.5.200000762939453.5.5s-.199999809265137.600000381469727-.600000381469727.600000381469727h.100000381469727Z"/>
|
||||
<path class="cls-3" d="M15.399999618530273,20.5h0v-.100000381469727h-1c0,.100000381469727.100000381469727.100000381469727.100000381469727.100000381469727.100000381469727,0,.300000190734863,0,.300000190734863.299999237060547v1.399999618530273l-1.699999809265137-1.899999618530273h-.799999237060547v.100000381469727c.199999809265137,0,.300000190734863.100000381469727.300000190734863.299999237060547v1.600000381469727c0,.299999237060547,0,.5-.300000190734863.5h0v.100000381469727h1v-.100000381469727c-.300000190734863,0-.300000190734863-.100000381469727-.300000190734863-.399999618530273v-1.5l1.899999618530273,2.100000381469727h.199999809265137v-2.100000381469727c0-.5.199999809265137-.5.300000190734863-.5h0l-.000000953674316.100000381469727Z"/>
|
||||
<path class="cls-3" d="M17.799999237060547,22.700000762939453c0-.100000381469727,0-.200000762939453-.100000381469727-.399999618530273l-.700000762939453-2v-.100000381469727h0s-.200000762939453.100000381469727-.399999618530273.200000762939453c0,.100000381469727-.100000381469727.299999237060547-.100000381469727.5l-.600000381469727,1.799999237060547c0,.100000381469727-.199999809265137.200000762939453-.300000190734863.200000762939453h0v.100000381469727h.899998664855957v-.100000381469727c-.100000381469727,0-.299999237060547,0-.299999237060547-.100000381469727v-.69999885559082h1v.399999618530273c.200000762939453.100000381469727.200000762939453.200000762939453.200000762939453.299999237060547h-.200000762939453v.100000381469727h1.100000381469727v-.100000381469727c-.100000381469727,0-.200000762939453,0-.200000762939453-.100000381469727h-.299997329711914ZM16.200000762939453,21.799999237060547l.299999237060547-1,.299999237060547,1h-.700000762939453.100002288818359Z"/>
|
||||
<path class="cls-3" d="M20.299999237060547,20.200000762939453h0q0,.100000381469727-.200000762939453.100000381469727h-2c-.100000381469727,0-.200000762939453,0-.200000762939453-.100000381469727h-.100000381469727v.599998474121094h.100000381469727q0-.299999237060547.299999237060547-.399999618530273h.600000381469727v2q0,.299999237060547-.299999237060547.299999237060547h0v.100000381469727h1.200000762939453v-.100000381469727c-.200000762939453,0-.299999237060547,0-.299999237060547-.299999237060547v-2h.600000381469727c.200000762939453,0,.299999237060547.200000762939453.299999237060547.399999618530273h.100000381469727v-.599998474121094h-.100000381469727Z"/>
|
||||
<path class="cls-3" d="M21.100000381469727,20.299999237060547h-.600000381469727v.100000381469727c.100000381469727,0,.299999237060547,0,.299999237060547.200000762939453v2c0,.200000762939453-.100000381469727.200000762939453-.299999237060547.200000762939453h0v.100000381469727h1.200000762939453v-.100000381469727c-.100000381469727,0-.299999237060547,0-.299999237060547-.200000762939453v-2c0-.200000762939453.100000381469727-.200000762939453.299999237060547-.200000762939453h0v-.100000381469727h-.600000381469727Z"/>
|
||||
<path class="cls-3" d="M23.200000762939453,20.299999237060547c-.799999237060547,0-1.399999618530273.600000381469727-1.399999618530273,1.399999618530273s.600000381469727,1.399999618530273,1.399999618530273,1.399999618530273,1.5-.600000381469727,1.5-1.5c0-.799999237060547-.700000762939453-1.299999237060547-1.5-1.299999237060547h0ZM23.299999237060547,22.899999618530273c-.600000381469727,0-.899999618530273-.600000381469727-.899999618530273-1.299999237060547s.200000762939453-1.100000381469727.899999618530273-1.100000381469727.899999618530273.700000762939453.899999618530273,1.200000762939453-.100000381469727,1.200000762939453-.899999618530273,1.200000762939453v-.000001907348633Z"/>
|
||||
<path class="cls-3" d="M27.799999237060547,20.5h0v-.100000381469727h-1c0,.100000381469727.100000381469727.100000381469727.100000381469727.100000381469727.100000381469727,0,.299999237060547,0,.299999237060547.299999237060547v1.399999618530273l-1.700000762939453-1.899999618530273h-.799999237060547v.100000381469727c.200000762939453,0,.299999237060547.100000381469727.299999237060547.299999237060547v1.600000381469727c0,.299999237060547,0,.5-.299999237060547.5h0v.100000381469727h1v-.100000381469727c-.299999237060547,0-.299999237060547-.100000381469727-.299999237060547-.399999618530273v-1.5l1.899999618530273,2.100000381469727h.200000762939453v-2.100000381469727c0-.5.200000762939453-.5.299999237060547-.5h0v.100000381469727Z"/>
|
||||
<path class="cls-3" d="M30.200000762939453,22.700000762939453c0-.100000381469727-.100000381469727-.200000762939453-.100000381469727-.399999618530273l-.700000762939453-2v-.100000381469727h0s-.200000762939453.100000381469727-.399999618530273.200000762939453c0,.100000381469727-.100000381469727.299999237060547-.100000381469727.5l-.600000381469727,1.799999237060547c0,.100000381469727-.200000762939453.200000762939453-.299999237060547.200000762939453h0v.100000381469727h.899999618530273v-.100000381469727c-.100000381469727,0-.299999237060547,0-.299999237060547-.100000381469727v-.69999885559082h1v.399999618530273c.200000762939453.100000381469727.200000762939453.200000762939453.200000762939453.299999237060547h-.200000762939453v.100000381469727h1.100000381469727v-.100000381469727c-.100000381469727,0-.200000762939453,0-.200000762939453-.100000381469727h-.299999237060547ZM28.700000762939453,21.799999237060547l.299999237060547-1,.299999237060547,1h-.700000762939453.100002288818359Z"/>
|
||||
<path class="cls-3" d="M32.599998474121094,22.299999237060547h0c0,.100000381469727,0,.200000762939453-.099998474121094.299999237060547,0,0-.200000762939453.200000762939453-.299999237060547.200000762939453h-.5c-.100000381469727,0-.200000762939453,0-.200000762939453-.200000762939453v-2c0-.200000762939453.100000381469727-.200000762939453.200000762939453-.200000762939453h.100000381469727v-.100000381469727h-1.200000762939453v.100000381469727c.100000381469727,0,.299999237060547,0,.299999237060547.200000762939453v2c0,.200000762939453-.100000381469727.200000762939453-.299999237060547.200000762939453h0v.100000381469727h1.999998092651367c0-.200000762939453,0-.399999618530273.099998474121094-.700000762939453h-.099998474121094v.100000381469727Z"/>
|
||||
<path class="cls-3" d="M32.700000762939453,20.200000762939453c-.200000762939453,0-.400001525878906.200000762939453-.400001525878906.399999618530273s.200000762939453.399999618530273.400001525878906.399999618530273.400001525878906-.200000762939453.400001525878906-.399999618530273-.200000762939453-.399999618530273-.400001525878906-.399999618530273ZM32.700000762939453,21c-.200000762939453,0-.299999237060547-.100000381469727-.299999237060547-.299999237060547s.099998474121094-.299999237060547.299999237060547-.299999237060547.299999237060547.100000381469727.299999237060547.299999237060547-.099998474121094.299999237060547-.299999237060547.299999237060547Z"/>
|
||||
<path class="cls-3" d="M32.700000762939453,20.600000381469727v-.100000381469727q0-.100000381469727-.099998474121094-.100000381469727h-.200000762939453v.299999237060547h.200000762939453v-.100000381469727c0,.100000381469727.099998474121094.200000762939453.099998474121094.200000762939453h0v-.100000381469727h0v-.099998474121094ZM32.700000762939453,20.600000381469727h0v-.200000762939453h0v.100000381469727h0v.100000381469727Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-3" d="M8.920000076293945,6.800000190734863C8.920000076293945,3.230000019073486,11.810000419616699.349999994039536,15.369999885559082.349999994039536c3.560000419616699,0,6.449999809265137,2.890000015497208,6.449999809265137,6.44999971985817,0,3.559999942779541-2.889999389648438,6.450000286102295-6.449999809265137,6.450000286102295s-6.449999809265137-2.890000343322754-6.449999809265137-6.449999809265137"/>
|
||||
<path class="cls-2" d="M15.380000114440918,13.359999656677246c-3.699999809265137.020000457763672-6.739999771118164-2.980000495910645-6.739999771118164-6.619999885559082,0-3.989999771118164,3.039999961853027-6.739999771118164,6.739999771118164-6.739999771118164h1.730000495910645c3.649999618530273,0,6.989999771118164,2.75,6.989999771118164,6.739999771118164,0,3.640000343322754-3.329999923706055,6.619999885559082-6.989999771118164,6.619999885559082h-1.730000495910645ZM15.40000057220459.549999237060547c-3.380000114440918,0-6.109999656677246,2.740000009536743-6.109999656677246,6.119999885559082,0,3.380000114440918,2.739999771118164,6.109999656677246,6.110000610351562,6.109999656677246,3.380001068115234,0,6.119998931884766-2.739999771118164,6.119998931884766-6.110000133514404,0-3.380000114440918-2.739999771118164-6.110000133514404-6.119999885559082-6.119999885559082M14.010000228881836,10.279998779296875V3.049999952316284c-1.449999809265137.559999942779541-2.479999542236328,1.970000028610229-2.489999771118164,3.620000123977661,0,1.649999618530273,1.029999732971191,3.059999465942383,2.489999771118164,3.619999885559082M19.280000686645508,6.670000076293945c0-1.650000095367432-1.039999008178711-3.059999942779541-2.489999771118164-3.619999885559082v7.239999771118164c1.450000762939453-.560000419616699,2.489999771118164-1.970000267028809,2.489999771118164-3.619999885559082"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
@ -1,819 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 34 23.7"
|
||||
style="enable-background:new 0 0 34 23.7;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#0069AA;}
|
||||
</style>
|
||||
<switch>
|
||||
<foreignObject requiredExtensions="&ns_ai;" x="0" y="0" width="1" height="1">
|
||||
<i:aipgfRef xlink:href="#adobe_illustrator_pgf">
|
||||
</i:aipgfRef>
|
||||
</foreignObject>
|
||||
<g i:extraneous="self">
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M11.1,20.8c-0.1,0-0.2,0-0.2,0v1.1H11c0.4,0,0.6-0.1,0.6-0.6C11.6,21,11.4,20.8,11.1,20.8z"/>
|
||||
<polygon class="st0" points="16.6,22.1 17.3,22.1 17,21.1 "/>
|
||||
<path class="st0" d="M12.7,16.7c0-0.4-0.2-0.6-0.6-0.6c-0.4,0-0.7,0.3-0.8,0.8h1.2C12.7,16.9,12.7,16.8,12.7,16.7z"/>
|
||||
<path class="st0" d="M2.5,18.9c1.5,0,2-1.1,2-2.2c0-1.3-0.8-2.3-2.2-2.3c-0.3,0-0.4,0-0.5,0v3.8C1.8,18.8,2.1,18.9,2.5,18.9z"/>
|
||||
<path class="st0" d="M23.6,20.7c-0.7,0-0.8,0.6-0.8,1.1c0,0.7,0.3,1.3,0.9,1.3c0.7,0,0.9-0.6,0.9-1.2
|
||||
C24.5,21.4,24.2,20.7,23.6,20.7z"/>
|
||||
<path class="st0" d="M31.3,19c0.7,0,1.1-0.7,1.1-1.4c0-0.8-0.6-1.4-1.1-1.4c-0.3,0-0.5,0.2-0.7,0.3v1.7
|
||||
C30.6,18.6,30.9,19,31.3,19z"/>
|
||||
<path class="st0" d="M33.1,20.7L33.1,20.7l0,0.2h0C33.1,20.9,33.2,20.9,33.1,20.7C33.2,20.7,33.1,20.7,33.1,20.7z"/>
|
||||
<polygon class="st0" points="29,22.1 29.7,22.1 29.4,21.1 "/>
|
||||
<path class="st0" d="M33.1,20.6c-0.2,0-0.3,0.2-0.3,0.3c0,0.2,0.1,0.3,0.3,0.3c0.2,0,0.3-0.2,0.3-0.3
|
||||
C33.4,20.7,33.3,20.6,33.1,20.6z M33.3,21.1L33.3,21.1c-0.1,0-0.1-0.1-0.2-0.2h0v0.1c0,0,0,0,0.1,0v0h-0.2v0c0,0,0.1,0,0.1,0
|
||||
v-0.3c0,0,0-0.1-0.1-0.1v0h0.2c0.1,0,0.1,0,0.1,0.1c0,0.1,0,0.1-0.1,0.1l0.1,0.1C33.2,21,33.3,21.1,33.3,21.1L33.3,21.1z"/>
|
||||
<path class="st1" d="M2.4,19.1c2.5,0,2.9-1.7,2.9-2.4c0-1.2-1-2.4-2.8-2.4c-0.5,0-0.9,0-1.2,0c-0.3,0-0.6,0-0.8,0v0.2
|
||||
c0.3,0,0.6,0,0.6,0.6v3.4c0,0.5-0.2,0.5-0.6,0.5v0.2c0.3,0,0.6,0,0.9,0C1.7,19.1,2,19.1,2.4,19.1z M1.8,14.4c0.1,0,0.3,0,0.5,0
|
||||
c1.4,0,2.2,0.9,2.2,2.3c0,1-0.5,2.2-2,2.2c-0.3,0-0.7-0.1-0.7-0.6V14.4z"/>
|
||||
<path class="st1" d="M6.3,14.8c0.2,0,0.3-0.2,0.3-0.3c0-0.2-0.2-0.3-0.3-0.3c-0.2,0-0.3,0.2-0.3,0.3C5.9,14.6,6.1,14.8,6.3,14.8
|
||||
z"/>
|
||||
<path class="st1" d="M7,19.1v-0.2H6.9c-0.2,0-0.3,0-0.3-0.2V16c0-0.1,0-0.1,0-0.1c0,0-0.1,0-0.1,0c0,0-0.4,0.2-0.7,0.3v0.1
|
||||
C5.9,16.4,6,16.5,6,16.8v1.9c0,0.2-0.1,0.2-0.3,0.2H5.5v0.2c0.3,0,0.5,0,0.8,0S6.8,19.1,7,19.1z"/>
|
||||
<path class="st1" d="M10.7,18.9h-0.1c-0.2,0-0.3,0-0.3-0.2v-1.8c0-0.5-0.2-1-0.8-1c-0.5,0-0.8,0.2-1.2,0.5v-0.5
|
||||
c0-0.1,0-0.1,0-0.1c-0.3,0.1-0.6,0.2-0.9,0.3v0.1c0.3,0.1,0.4,0.2,0.4,0.5v1.9c0,0.2-0.1,0.2-0.3,0.2H7.2v0.2c0.3,0,0.5,0,0.8,0
|
||||
c0.3,0,0.5,0,0.7,0v-0.2H8.6c-0.2,0-0.4,0-0.4-0.2v-2.1c0.2-0.2,0.6-0.3,0.8-0.3c0.4,0,0.6,0.2,0.6,0.6v1.8
|
||||
c0,0.2-0.1,0.2-0.3,0.2H9.2v0.2c0.3,0,0.5,0,0.8,0c0.3,0,0.5,0,0.7,0V18.9z"/>
|
||||
<path class="st1" d="M12,19.2c0.6,0,1-0.4,1.3-0.8l-0.1-0.1c-0.3,0.3-0.6,0.5-0.9,0.5c-0.6,0-1-0.5-1-1.2c0-0.2,0-0.3,0-0.4h2
|
||||
l0.1,0c0,0,0-0.1,0-0.1c0-0.7-0.6-1.1-1.2-1.1c-0.5,0-1.4,0.4-1.4,1.8C10.7,18.1,10.9,19.2,12,19.2z M12.1,16.1
|
||||
c0.4,0,0.6,0.3,0.6,0.6c0,0.1,0,0.2-0.2,0.2h-1.2C11.4,16.4,11.7,16.1,12.1,16.1z"/>
|
||||
<path class="st1" d="M15.3,19.1v-0.2h-0.4c-0.2,0-0.3,0-0.3-0.2V17c0-0.4,0.4-0.6,0.5-0.6c0.2,0,0.2,0.2,0.5,0.2
|
||||
c0.2,0,0.3-0.2,0.3-0.4c0-0.3-0.2-0.4-0.4-0.4c-0.4,0-0.7,0.4-0.9,0.7h0V16c0-0.1,0-0.1-0.1-0.1c-0.1,0-0.3,0.2-0.9,0.4v0.1
|
||||
c0.1,0.1,0.4,0.1,0.4,0.3v2c0,0.2-0.1,0.2-0.3,0.2h-0.2v0.2c0.3,0,0.5,0,0.8,0C14.6,19.1,14.9,19.1,15.3,19.1z"/>
|
||||
<path class="st1" d="M17,19c-0.5,0-0.8-0.4-0.9-0.9l-0.1,0l0.1,0.8c0.2,0.1,0.6,0.2,0.9,0.2c0.8,0,1.2-0.5,1.2-1
|
||||
c0-1.1-1.6-0.8-1.6-1.7c0-0.3,0.3-0.5,0.5-0.5c0.4,0,0.7,0.3,0.8,0.7H18l0-0.7c-0.3-0.1-0.6-0.2-0.8-0.2c-0.8,0-1.1,0.5-1.1,0.9
|
||||
c0,1.1,1.5,0.9,1.5,1.7C17.6,18.7,17.4,19,17,19z"/>
|
||||
<path class="st1" d="M24.3,18.8l0.2-1l-0.2,0c-0.1,0.7-0.7,1.2-1.4,1.2c-1.1,0-2.1-1-2.1-2.4c0-1.7,1.2-2.2,2-2.2
|
||||
c0.8,0,1.4,0.3,1.5,1.1h0.2l-0.1-1c-0.5-0.2-1.1-0.4-1.7-0.4c-1.4,0-2.7,1-2.7,2.5c0,1.6,1,2.6,2.7,2.6
|
||||
C23.2,19.2,24,19,24.3,18.8z"/>
|
||||
<path class="st1" d="M26.2,19.1v-0.2h-0.1c-0.2,0-0.4,0-0.4-0.2v-4.8c0-0.1,0-0.1-0.1-0.1c0,0-0.1,0-0.2,0.1
|
||||
c-0.1,0.1-0.4,0.2-0.7,0.3v0.1c0.3,0.1,0.4,0.1,0.4,0.5v3.9c0,0.2-0.1,0.2-0.3,0.2h-0.1v0.2c0.3,0,0.5,0,0.8,0
|
||||
C25.7,19.1,26,19.1,26.2,19.1z"/>
|
||||
<path class="st1" d="M26.6,16.6v1.8c0,0.6,0.4,0.8,0.8,0.8c0.5,0,0.8-0.2,1.2-0.6v0.6l0,0c0.1,0,0.7-0.2,1-0.2v-0.1
|
||||
c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0-0.2-0.1v-2.6c0-0.1,0-0.1-0.1-0.1c-0.1,0-0.5,0.1-1.1,0.1v0.1c0.3,0.1,0.6,0.1,0.6,0.3v1.9
|
||||
c-0.3,0.2-0.6,0.4-0.8,0.4c-0.6,0-0.6-0.6-0.6-0.8v-1.8c0-0.2,0-0.2-0.1-0.2c-0.1,0-0.6,0-0.9,0v0.1
|
||||
C26.6,16.2,26.6,16.4,26.6,16.6z"/>
|
||||
<path class="st1" d="M30.1,14.8v3c0,0.4,0,0.8-0.1,1.2l0.1,0.1l0.2-0.2c0.2,0.1,0.5,0.2,1,0.2c1,0,1.7-0.9,1.7-1.8
|
||||
c0-0.8-0.5-1.5-1.3-1.5c-0.4,0-0.8,0.3-1,0.5v-2.6c0-0.1,0-0.1-0.1-0.1c0,0-0.1,0-0.2,0.1c-0.1,0.1-0.4,0.2-0.7,0.3v0.1
|
||||
C29.9,14.3,30.1,14.3,30.1,14.8z M30.6,16.6c0.2-0.2,0.4-0.3,0.7-0.3c0.5,0,1.1,0.6,1.1,1.4c0,0.6-0.3,1.4-1.1,1.4
|
||||
c-0.5,0-0.7-0.4-0.7-0.7V16.6z"/>
|
||||
<path class="st1" d="M1,20.6c-0.2,0-0.4,0-0.6,0h0v0.1v0h0.1c0.1,0,0.3,0,0.3,0.2v2c0,0.2-0.1,0.2-0.3,0.2H0.4h0v0v0.1v0h0
|
||||
c0.1,0,0.4,0,0.6,0c0.2,0,0.4,0,0.6,0h0v-0.1v0H1.5c-0.1,0-0.3,0-0.3-0.2v-2c0-0.2,0.1-0.2,0.3-0.2h0.1h0v-0.1v0h0
|
||||
C1.4,20.6,1.2,20.6,1,20.6z"/>
|
||||
<path class="st1" d="M4.3,20.6c-0.2,0-0.4,0-0.5,0h0v0.1v0h0.1c0.1,0,0.3,0,0.3,0.3v1.4l-1.7-1.9c-0.1,0-0.2,0-0.4,0
|
||||
c-0.1,0-0.3,0-0.4,0h0v0.1v0h0.1c0.2,0,0.3,0.1,0.3,0.3v1.6c0,0.3-0.1,0.5-0.3,0.5H1.7h0v0.1v0h0c0.2,0,0.3,0,0.5,0
|
||||
c0.2,0,0.3,0,0.5,0h0v-0.1v0H2.7c-0.3,0-0.3-0.1-0.3-0.4v-1.5l1.9,2.2l0.2,0h0l0,0c0-0.1,0-0.2,0-0.4v-1.7
|
||||
c0-0.4,0.2-0.5,0.3-0.5h0.1h0v-0.1v0h0C4.6,20.6,4.5,20.6,4.3,20.6z"/>
|
||||
<path class="st1" d="M7.4,20.5L7.4,20.5c0,0.1-0.1,0.1-0.2,0.1h-2h0c-0.1,0-0.2,0-0.2-0.1l0,0H5h0v0c0,0.1,0,0.2,0,0.3
|
||||
c0,0.1,0,0.2,0,0.3l0,0H5h0l0,0c0.1-0.3,0.1-0.3,0.3-0.3H6v2c0,0.3-0.1,0.3-0.3,0.3H5.6h0v0.1v0h0c0.2,0,0.4,0,0.6,0
|
||||
c0.2,0,0.5,0,0.6,0h0v-0.1v0H6.8c-0.2,0-0.3,0-0.3-0.3v-2h0.6c0.2,0,0.3,0.2,0.3,0.4l0,0l0.1,0l0,0v0c0-0.1,0-0.2,0-0.3
|
||||
c0-0.1,0-0.2,0-0.3l0,0L7.4,20.5L7.4,20.5z"/>
|
||||
<path class="st1" d="M9.7,22.6L9.7,22.6c-0.1,0.4-0.3,0.5-0.8,0.5c-0.2,0-0.4,0-0.4-0.2V22l0.4,0c0.3,0,0.3,0.1,0.3,0.4l0,0
|
||||
l0.1,0l0,0v0c0-0.1,0-0.3,0-0.4c0-0.1,0-0.3,0-0.4v0H9.2h0l0,0c0,0.2-0.1,0.3-0.3,0.3H8.5v-1H9c0.4,0,0.4,0.2,0.4,0.4l0,0l0.1,0
|
||||
l0,0v0c0-0.1,0-0.3,0-0.4c0-0.1,0-0.1,0-0.2v0h0c-0.3,0-0.7,0-1,0c-0.3,0-0.7,0-0.9,0h0v0.1v0h0.1c0.1,0,0.3,0,0.3,0.2v2
|
||||
c0,0.2-0.1,0.2-0.3,0.2H7.7h0v0v0.1v0h0c0.2,0,0.7,0,1,0c0.3,0,0.8,0,1,0h0l0,0c0-0.2,0.1-0.4,0.1-0.6l0,0L9.7,22.6L9.7,22.6z"
|
||||
/>
|
||||
<path class="st1" d="M12.3,22.9l-0.6-1c0.3-0.1,0.5-0.3,0.5-0.7c0-0.6-0.4-0.7-0.9-0.7c-0.2,0-0.4,0-0.6,0c-0.2,0-0.5,0-0.6,0h0
|
||||
v0.1v0h0.1c0.1,0,0.3,0,0.3,0.3v1.9c0,0.1-0.1,0.2-0.3,0.2H10h0v0.1v0h0c0.2,0,0.4,0,0.6,0c0.2,0,0.4,0,0.7,0h0v-0.1v0h-0.1
|
||||
c-0.2,0-0.3,0-0.3-0.3V22h0.2c0.2,0.4,0.5,0.8,0.8,1.2c0.1,0,0.3,0,0.4,0c0.1,0,0.2,0,0.4,0h0v-0.1v0l0,0
|
||||
C12.4,23.1,12.4,23.1,12.3,22.9z M11,21.9h-0.2v-1.1c0,0,0.1,0,0.2,0c0.3,0,0.5,0.2,0.5,0.5C11.6,21.7,11.4,21.9,11,21.9z"/>
|
||||
<path class="st1" d="M15.8,20.7v-0.1v0h0c-0.2,0-0.3,0-0.5,0c-0.2,0-0.4,0-0.5,0h0v0.1v0h0.1c0.1,0,0.3,0,0.3,0.3v1.4l-1.7-1.9
|
||||
c-0.1,0-0.2,0-0.3,0c-0.1,0-0.3,0-0.4,0h0v0.1v0h0.1c0.2,0,0.3,0.1,0.3,0.3v1.6c0,0.3-0.1,0.5-0.3,0.5h-0.1h0v0.1v0h0
|
||||
c0.2,0,0.3,0,0.5,0c0.2,0,0.3,0,0.5,0h0v-0.1v0h-0.1c-0.3,0-0.3-0.1-0.3-0.4v-1.5l1.9,2.2l0.2,0h0l0,0c0-0.1,0-0.2,0-0.4v-1.7
|
||||
C15.4,20.8,15.6,20.7,15.8,20.7L15.8,20.7L15.8,20.7z"/>
|
||||
<path class="st1" d="M18.2,23c0-0.1-0.1-0.3-0.1-0.4l-0.7-2c0,0,0-0.1,0-0.1c0,0,0,0,0,0c0,0,0,0,0,0c-0.1,0-0.2,0.1-0.3,0.2
|
||||
c0,0.2-0.1,0.3-0.2,0.5l-0.6,1.7c-0.1,0.2-0.2,0.2-0.3,0.2h0h0v0.1v0l0,0c0.1,0,0.3,0,0.4,0c0.2,0,0.3,0,0.5,0l0,0v-0.1v0h-0.1
|
||||
c-0.1,0-0.3,0-0.3-0.1c0-0.1,0-0.2,0.1-0.3l0.1-0.4h0.8l0.1,0.4c0,0.1,0.1,0.2,0.1,0.3c0,0.1-0.1,0.1-0.2,0.1h0h0v0.1v0l0,0
|
||||
c0.2,0,0.4,0,0.6,0c0.2,0,0.4,0,0.5,0l0,0v-0.1v0h0C18.3,23.1,18.2,23.1,18.2,23z M16.6,22.1l0.3-1l0.3,1H16.6z"/>
|
||||
<path class="st1" d="M20.7,20.5L20.7,20.5c0,0.1-0.1,0.1-0.2,0.1h-2h0c-0.1,0-0.2,0-0.2-0.1l0,0h-0.1h0v0c0,0.1,0,0.2,0,0.3
|
||||
c0,0.1,0,0.2,0,0.3l0,0h0.1h0l0,0c0.1-0.3,0.1-0.3,0.3-0.3h0.6v2c0,0.3-0.1,0.3-0.3,0.3h-0.1h0v0.1v0h0c0.2,0,0.4,0,0.6,0
|
||||
c0.2,0,0.5,0,0.6,0h0v-0.1v0H20c-0.2,0-0.3,0-0.3-0.3v-2h0.6c0.2,0,0.3,0.2,0.3,0.4v0l0.1,0l0,0v0c0-0.1,0-0.2,0-0.3
|
||||
c0-0.1,0-0.2,0-0.3l0,0L20.7,20.5L20.7,20.5z"/>
|
||||
<path class="st1" d="M21.5,20.6c-0.2,0-0.4,0-0.6,0h0v0.1v0H21c0.1,0,0.3,0,0.3,0.2v2c0,0.2-0.1,0.2-0.3,0.2h-0.1h0v0v0.1v0h0
|
||||
c0.1,0,0.4,0,0.6,0c0.2,0,0.4,0,0.6,0h0v-0.1v0H22c-0.1,0-0.3,0-0.3-0.2v-2c0-0.2,0.1-0.2,0.3-0.2h0.1h0v-0.1v0h0
|
||||
C21.9,20.6,21.7,20.6,21.5,20.6z"/>
|
||||
<path class="st1" d="M23.6,20.5c-0.8,0-1.4,0.6-1.4,1.4c0,0.8,0.6,1.4,1.4,1.4c0.8,0,1.5-0.6,1.5-1.5
|
||||
C25.1,21,24.4,20.5,23.6,20.5z M23.7,23.1c-0.6,0-0.9-0.6-0.9-1.3c0-0.5,0.2-1.1,0.8-1.1c0.6,0,0.9,0.7,0.9,1.2
|
||||
C24.5,22.5,24.4,23.1,23.7,23.1z"/>
|
||||
<path class="st1" d="M28.2,20.7v-0.1v0h0c-0.2,0-0.3,0-0.5,0c-0.2,0-0.4,0-0.5,0h0v0.1v0h0.1c0.1,0,0.3,0,0.3,0.3v1.4l-1.7-1.9
|
||||
c-0.1,0-0.2,0-0.4,0c-0.1,0-0.3,0-0.4,0h0v0.1v0h0.1c0.2,0,0.3,0.1,0.3,0.3v1.6c0,0.3-0.1,0.5-0.3,0.5h-0.1h0v0.1v0h0
|
||||
c0.2,0,0.3,0,0.5,0c0.2,0,0.3,0,0.5,0h0v-0.1v0h-0.1c-0.3,0-0.3-0.1-0.3-0.4v-1.5l1.9,2.2l0.2,0h0l0,0c0-0.1,0-0.2,0-0.4v-1.7
|
||||
C27.8,20.8,28,20.7,28.2,20.7L28.2,20.7L28.2,20.7z"/>
|
||||
<path class="st1" d="M30.6,23c0-0.1-0.1-0.3-0.1-0.4l-0.7-2c0,0,0-0.1,0-0.1c0,0,0,0,0,0c0,0,0,0,0,0c-0.1,0-0.2,0.1-0.3,0.2
|
||||
c0,0.2-0.1,0.3-0.2,0.5l-0.6,1.7c-0.1,0.2-0.2,0.2-0.3,0.2h0h0v0.1v0l0,0c0.1,0,0.3,0,0.4,0c0.2,0,0.3,0,0.5,0l0,0v-0.1v0H29
|
||||
c-0.1,0-0.3,0-0.3-0.1c0-0.1,0-0.2,0.1-0.3l0.1-0.4h0.8l0.1,0.4C30,22.9,30,23,30,23c0,0.1-0.1,0.1-0.2,0.1h0h0v0.1v0l0,0
|
||||
c0.2,0,0.4,0,0.6,0c0.2,0,0.4,0,0.5,0l0,0v-0.1v0h0C30.7,23.1,30.6,23.1,30.6,23z M29,22.1l0.3-1l0.3,1H29z"/>
|
||||
<path class="st1" d="M33,22.6L33,22.6c0,0.1-0.1,0.2-0.1,0.3c-0.1,0.1-0.2,0.2-0.4,0.2c-0.1,0-0.2,0-0.3,0c-0.1,0-0.1,0-0.2,0
|
||||
c-0.1,0-0.2-0.1-0.2-0.2v-2c0-0.2,0.1-0.2,0.2-0.2h0.1h0v-0.1v0h0c-0.2,0-0.4,0-0.6,0c-0.2,0-0.4,0-0.6,0h0v0.1v0H31
|
||||
c0.1,0,0.3,0,0.3,0.2v2c0,0.2-0.1,0.2-0.3,0.2H31h0v0.1v0h0c0.3,0,0.7,0,1,0c0.3,0,0.7,0,1,0h0l0,0c0-0.2,0.1-0.4,0.1-0.6l0,0
|
||||
H33L33,22.6z"/>
|
||||
<path class="st1" d="M33.1,20.5c-0.2,0-0.4,0.2-0.4,0.4c0,0.2,0.2,0.4,0.4,0.4c0.2,0,0.4-0.2,0.4-0.4
|
||||
C33.5,20.7,33.3,20.5,33.1,20.5z M33.1,21.2c-0.2,0-0.3-0.2-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.2,0,0.3,0.2,0.3,0.3
|
||||
C33.4,21.1,33.3,21.2,33.1,21.2z"/>
|
||||
<path class="st1" d="M33.1,20.9c0.1,0,0.1-0.1,0.1-0.1c0-0.1-0.1-0.1-0.1-0.1h-0.2v0c0.1,0,0.1,0,0.1,0.1v0.3c0,0,0,0-0.1,0v0
|
||||
h0.2v0c0,0-0.1,0-0.1,0v-0.1L33.1,20.9c0,0.1,0,0.2,0.1,0.2h0.1v0C33.3,21.1,33.2,21,33.1,20.9L33.1,20.9z M33.1,20.9L33.1,20.9
|
||||
l0-0.2h0c0,0,0.1,0,0.1,0.1C33.2,20.9,33.1,20.9,33.1,20.9z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M9.3,7.1c0-3.6,2.9-6.4,6.4-6.4s6.4,2.9,6.4,6.4s-2.9,6.4-6.4,6.4S9.3,10.6,9.3,7.1"/>
|
||||
<path class="st2" d="M15.8,13.6c-3.7,0-6.7-3-6.7-6.6c0-4,3-6.7,6.7-6.7h1.7c3.7,0,7,2.8,7,6.7c0,3.6-3.3,6.6-7,6.6H15.8z
|
||||
M15.8,0.8c-3.4,0-6.1,2.7-6.1,6.1c0,3.4,2.7,6.1,6.1,6.1c3.4,0,6.1-2.7,6.1-6.1C21.9,3.6,19.2,0.8,15.8,0.8 M14.4,10.5V3.3
|
||||
c-1.5,0.6-2.5,2-2.5,3.6C11.9,8.6,13,10,14.4,10.5 M19.7,6.9c0-1.7-1-3.1-2.5-3.6v7.2C18.6,10,19.7,8.6,19.7,6.9"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</switch>
|
||||
<i:aipgf id="adobe_illustrator_pgf" i:pgfEncoding="zstd/base64" i:pgfVersion="24">
|
||||
<![CDATA[
|
||||
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
|
||||
]]>
|
||||
<![CDATA[
|
||||
qGU7DxtlumCOK2MU/FCmC+ZwFjTT5ZpEsO+aRJQUQUlrYGpwStyWQyNmjYhhyFyLYcjcWeQEZhwy
|
||||
HoYhczMOmw9KThmHDARkyNyLWQjYIDWUBLMAwSxgMGYBg0MeBoJZcJw1jcxhYbBA7uW1C0wZB5qC
|
||||
l7Kag4ylED7+eCBpqCAaIE0CrQiBV3eMjVIqstGoJoF2W8PJActGCwXHA6naeXosyBY0kOPHlwLt
|
||||
NtKFwLNWKM9ldBsmEbQ090GjcNLdZuDCAl5N1U5GQqDb/gQnNMef3UVPxuKDcu22cISJIDx15SEq
|
||||
D68I4uDhFUGcvifzPRKEQ7ZIEBmHUgSBMiglCBeKGS6eB5vS1KRSOrhUF0UgLJlTABJ8tQvjdV2K
|
||||
kceGFKhJpds6TO1ledjPgNdB+Kth+NUQVZ1Mp0hGVTVs2Wo6UabtmGjHBDsmNYeBhsm0XftVGoOX
|
||||
uC07O81Os9PsNDvNThuwZEqcGDI3DAsYMpXWaJVMD4xgljZmySwhhB3IArkhqrFAbrhJYuhoEUyQ
|
||||
x0FJ2pSkDWkDkkimWiXFsaE42g8ljhYljlYm2lw+M4TBhFKr0P4i1zyX4pF5MO0vcs1zKd3W+Nwu
|
||||
A2aPzJP43NrsLzLquRSD1wtteDUyDgrDkTZgBwV3Hh6ZTlWhDZiDOSiYgp7BKF1Q0nsQAb17wHFh
|
||||
jmvzQRRMz75BzUtJ2nTl4sfwhuXwUFIztGFtUB/D3bZheRqNqKmZEmIGsQE9TZ5FTlvGgTE7bSQY
|
||||
hsydRU6SU8YhEznNQobMLSMn0FbMAqSGwixAEg3MAuSszGQMETgqcEQYLNttXQxVOxEDBYlRUcCq
|
||||
EXjJRYjcxIlidDQJNJOIIAQQuIIBoeAKjws9J3YjqkpfrFNwToPGujQJ9HTSM0hCBfLa6FcJEMgA
|
||||
b1Qx8A0IgW7Lp3OzsRuxSTictIIX8IvGShw0CYZHbLRQOWbmooHaT+QdCIEYJmYOgBv1kSDCGOgh
|
||||
RCxUBFF7LDgQByxUBEFyKEUQCSNMBHEDPhBEt6EkXoIAxUAPQXp4RRB9MXIgUg/KFcJDk0rBeXpZ
|
||||
QBQWBl/IyaSCoja2ZEwODoypB6EPdTmo7rnJLfs1GJcMmaGqk8dInC41bNWwZXMNES/TBZ9MkpPp
|
||||
ghsmk6TET1S3najNdUxa9pFV6cJAAzsmLRtxTLpNkrgte21CvDWUEG8klBBv4rYsjYHGQGPYgAk0
|
||||
UEL0Ngnx0hqtbXYqlUwl09lhyNyQ1mhZCK3RstiLoaPttgHPfH1fDbBAriTAArmQAAvk5hhqljag
|
||||
WdqYJQRzYoHcx7ZALmawbHhg2g5MB6bHo0oi3sPxSHFseFHiaLtNJtqAJJMjxbFhQ5Hi2EZGGEwo
|
||||
n9n20R0CJSMMJhTG4zGAQPnMPt1FoHxmkA6BklPRhNJtnmfbudtqnksZmaUN6Hks7S9y6KBEyR5Z
|
||||
404W+VI8ssRkkbNHVruNxrABvU63vVDNwwVyU4yD0nl4NLy0AXceOooUbcCXkdh5eGwl2oAzYoNl
|
||||
Ow+bD0oeWdVtKJjSJgyWDTkujDJdcEVxZgIP0CdgkTmuxyfjoHicRMx04WQV6HE2jsvBdMHdRgNT
|
||||
cKGGLQXHpGWiNVobVml8GC0CShytYhEbaGDFj0UyERB7vsIFb1gO1QDsQ/wY5jQW4t2wNh/cdBtq
|
||||
Gmjg08dAj6YNChZq2LKe4xLJYZcBP5daA9aIjkhooIEbtc6PgZ6m22hYBXqzi6o2H0I62sqJ6rYP
|
||||
w/hs8iwhho4248CQiTagx6ii0SokoM+leJkSQyaNnBiP1CYzi5xAz6ypmd1Oiduys9Mm4gVkkyGa
|
||||
dUgNFTKYUHL6Qoi6rcYQgZ6BQSQTyR1LaWAFZnx9HWZ8fZfQArmXkchxSE6gGYp0GRD0NmhD5mIW
|
||||
Nh/EmMSOkeJYEcLmg92maYhAD4OalwTVAOzruu2xl5FYITFMhgj0us1gRNKfLb0UZ7YQuQiRWzlg
|
||||
OWbgOcBg2ctI5NhuI2sazEEY1SOIJBQ99HmCGPR5dlvABCEQmShgX7cpQp4BKiCXC47fLBBkbLeZ
|
||||
DAj8yHqNIMbBgamx3YZlmgS6cNIMNU5TKPhIFiDg1ZuqnQuSdiQEyE0A6GXSHJkno94EPRUMButL
|
||||
NonUSYshWEGn4AaXA439WJqE6aS7zUQIdJDXDhWsAjyJaKCBE6doYuDRTMICuQ/VAOxThARaoFwX
|
||||
EALnWTMNfLZR+tC3QM4QFByPfrWRFWAm6c/OSBv0vM93CcNVvYTdVgUyCpiDk0YBc+qUA03YSL9K
|
||||
dxFgpcvSYSgGlZCihFCx6FboM2ERI8v+97q1CQZm+XQPUeU2sEYWFk2n3bZRms/OHiFik1240GDZ
|
||||
ECIJRxF9mTxsNISodApEY+DRbjsZvYE6EgKlshuAHK+5zBQoZIITmuGKvKcXEmonBSEAEUEKD47/
|
||||
tEbLoggCHEa3cTwlokjP74DAI0AE9IwgBLqNIcCRF5yb4NHTy5wnwsNgWQ7nNJDoto4TeDGR5jwR
|
||||
CIEGqfV1kQJ3OLvtLjSdixWElNZwptJEAbk5F5cEoaa6QRswhBpOBnLTD/TGVyBhw+OSC/nk2HjU
|
||||
EcI8Gk4TGsAi04C88QzExrtQhlMzWLZTHYQYgabxjk5EgeE8QAMUUoGAg9JhMz4Pp/tgwXCM4Jor
|
||||
T8Lgc0kaB8blKlQhnPrXIe4PpN5uO1EIj9SdkB8bQVIB3gsyS3gFfoxJTJqMQFscHCyFIQcgONjP
|
||||
4GmQkxhnJkofQglVg/3QTA0OyArxMHYIJA0EZwGmsYQcBiIKFtZtDV2hYEWKAIclYZK4LYv4VF0C
|
||||
oyRJsN1GY1iIFgkUAoSj1PggCWawLJhZEBEYHJRAwYZDyXYWNmlCHEAglCxn4fURjAfdBkttqS9s
|
||||
QKS09pGU+kTU+nwepM6B1QuOUOXA1gX90RsQppQeqNt6DpG2BEM6zVo/Co0PrfVyeQLSTgLtNlIB
|
||||
WWAdRp1Vgc0oqBwyId9tPoaOqREE+7ElM0ubVYoFsrPOYFlNuejebbQYx8MMls28UfLZiwPJvwOy
|
||||
oIKDpD+LcwVkBxS6TRMLDd8g6YNqMxcOF53k4+IJXRIyDrOgYWJqClmxn5Um1xoJoBt6VFplYBLx
|
||||
2IvGDH0SkeOSK4ZDVhyTUJTifA4O+yEnI6cEBBa5KlIcyyeq0XbblqWf9aVQRqN5eA8TnkopjYFu
|
||||
2KCnXSFGvg0b9BwJJ9CzDRv0bMGDkWvDBhmLkg2oODx+JNORSMwV9sMihskKMAecwlbhU1ihFDbo
|
||||
cVlABusEEzUvXk7YoGcm3IQNeo8GFejZhC9hg94XGmBwwqpTMFgfZIfTZ7vtHmzQsyKWQga2qJEs
|
||||
Lq/QsBkXonRfBkAGAhrOA1+6kITofDCg1kpk6TaIq5KXUUCF8sAHG/QkWvLAJ4qTEQxW9xps0PMd
|
||||
yup+Bhv07oBkdbvtEoqAk75YRQw26FXPpTLYoJdHFM69BBv0skbCqSw4txKwtGtzuy1CoHIgbCAE
|
||||
G/QgtMvmusLZN3aHyJWsPJAnpv/xeTUi136a/Z0LpgtuDOzPzjoJ8Tb6dtxG3Slqg151pN952hFS
|
||||
hCpDDioEz5WEjCim+JoAFvpVEqyQgHebabRpCDM1lgJjGjUKmFrYcZCbwsgNIXRscXgMyMpmxDGr
|
||||
+NUMfTVWDSqbBi9mZxCBmHV8VCD9KiGFcywfBQvn8zRmxGIxCKUuqocSuSlFcOPQkZUIejLyQ6Ly
|
||||
8gwCSWHPAUOXO7JZ6HOQngf+MAiUFoxr8cCOENqAExuT5iYS9YEZHQFLrsk46XtQaAgVTwDFy92W
|
||||
xhQhywMbhCywyx7HU2OySoSALcJ9nM4Wb+AALN3Wbd3Wbd3G6DZ9GtCglpVwvmPSsjQwnaVpCnrd
|
||||
htLSs0y7j1xEyAfJIBEKspamNLQ8YzHaK7Z4rBSMhGIF1lQ1WlqqTAxoTOVwvlS0UaUwU6lIr1ID
|
||||
wYBihUIhUUOcDrXyRIBAmtLYCX2dHM6x2xhoqpMJdQI9fGI4gatTiGNlp8QpOpmmbouJXiKTFlIW
|
||||
kFHhVIkcUKIZg4LDSeRQEiFIhnTcnBpQ1cbEcKJMDIpTg1kyMZgYC6hGIGoLp8uZ+UyEiVMb/CUX
|
||||
MoGA2G0KBi7s8HBgKYSPO1HlcwHSbYmx4LO3hs8zVtAzwhQhPCRqA+fzuCg+4sscKc5GJ8TLMFqo
|
||||
HHggxVCoDns60s/SSBHQs+BXQYbM9TgR0JOADJmLCSKg91A0OAxODZ8nCvJgBQZCgSKg+BVh6FgO
|
||||
iSJwnqcBhkB3306MlvPwDZynpHNQXQzinEvwUW37gTZWhTZgiWYTShVQtFfZ1ARocx8Er85CcjVl
|
||||
gryQsV814GetKeDBfAOuyP1s0JN4oMhdYDlkrmMycThYtp5MF+zQ4GcZD9vZ26fZnw3omQo2H6zh
|
||||
/qyEExnYEM4GvUgMHa2DgxJHK2YSKNluC+RKXmgDhpAGGhgyFny2DG3GVzCjRTwx0EMIOEyS1UXg
|
||||
GphF0WqIVUIWBYUT44bgKzgbr1vgkXhwt8kKEDaXsTlZYbCfAY9WsqMAS87dKiHhY+GYShmPN2zQ
|
||||
297GYzuKYuTfhVKaUEJS6gHgA6IppVs/pJ+ljQYaGLPSz14x/Wy3OSp3c61Duqqm9LNe4clLgYa/
|
||||
wtbDYeSyWEcLpfBn4YHSoDLCAasyKwaCKA2scogtxD5T7LMShWQU06wsqj5r4s4HsYNqQWVNqg9B
|
||||
9dmIIsWxkgKVmJDwsXSbFk8KFPnAHXxwTafPsjqYg7FR0Wz8N/CexxaWCfF+kIFp89AoXROGgPhh
|
||||
JAop0OmzsspgWYWAAvS8gw16OUYKfXlB9EEQRJ/ttsi2QO5XIPrsWZAQrwdhVHvVAOy7jAyZC1Gk
|
||||
ODaiEX0WVRF9toZAoOQ72ny29oA2YI8BEmGwbO1sHCLhxgEysPks2aU41uEWWFwBi/x1KAgKFywJ
|
||||
B8KF6A2Ajw7+VOTYhoQE29mf/bTYKpNOEFoaJOFs0JM4Ji3rcTboebRGy3I26EHGBwdKHO1XHdam
|
||||
sr/INRH7LOhyRa4P4YzGFG0QFXBDD3uayDGFIghWtkgQFI9ZILqNIGHgITyNT/J5zAKBiYEeotT4
|
||||
JAhNIPBAMFKsYD2vO6o1QvdRmlyyoiMs2Sxwjb4GguV1MxwBRg5d/7qSvWFkSP44HqlQD3mNkL5g
|
||||
t80Gui1MCKUuA56JwUZDYLDiBxkFDEGKcyxctjmWTJ58KgulRgGTIsxua7kUCuz1RmwZCGOjlaFM
|
||||
USUMN6M1z1no04iTyLXIwshloKgmR0JoA45kHBTvZBs23SbzdBvjHrQ6kdFkIUhdLgKmRJiQAQV4
|
||||
FEwOgRQCFCJUvA7QwuouHgZGjFjQQt/nk2FkDEWGweUME7OcB85ou8nogU3HgylZdVuC6qELui30
|
||||
PRJEAAl7ICoMlNPw0Yw4YXpWlwEyYsvlN0SVbpt1IN3qxsDM5gqIs81lnJ5zGXvroA==
|
||||
]]>
|
||||
<![CDATA[
|
||||
VO3sNnSxORaNAEKrMvoyRiA3C6lYwzxsZzvkIpNZTBCPwBKONgQfwSM0qQwgqDy2PLVEFVlAQ1RJ
|
||||
2CpLNjnblHQbVhBFAlYbsNs0DZGAbkvYCLQyE23Qbd2GMFGsqTDQbSFUVFceosAUiiDqwsKBGEm8
|
||||
BEFrcUe3GUQau6Iq2JQWDyyCLaan4VpKjWv0kSrf64I2Bl7W7IWRpcESNfkA9Qx4PDXb+OAzEaZu
|
||||
m2RQ6AOJcbCQILOpaLoEdBgQyYuPBh4LCFjoaIwUxINIWjQQMobSWL5NK20wM9HniUBpHB4QDiwM
|
||||
kBGFT0AY1bUEnXq0saG/wnRsXNtria/pNpOmHGjOWRmxeLZHwWgIDFaWip1FLASnS0IG23oJOZrT
|
||||
dK9ByAjdU+AL3Y1EgJHDjsq75YAZ+hyTTMzGPIwH5ghkLLmGAiAsxwwU9W4DHxC6TWaAwRLsSLcH
|
||||
7rYZ54G77WHBuafMQkV8K/VAFEi8BBGQMPAaHl4RRMOh4CG6zYFhcskdTk5hE2XGKmYlX5aCr9Mq
|
||||
lYJQdQlGCeljPBR4mcF7h0jCbmuJuk0MI7fbuo0A7TaXZNVtpnTsNk+3YWox0Ou2bnNsIJQGLp26
|
||||
XiKgqxbAUXgaQtZo8TXgVnyN5SwFZoIxGZOKANqINYxAKhEQQHAyLXs+UDB48SsEn4mWQqicmkNW
|
||||
OB8YI3ebaa68uzAPdoUzeTC/hRu53TYa8CyEk01GnQoaI8UWtgFRzKKEAHK6rdtGMU9A5TakKE2C
|
||||
QK0YnNBtqAsCImQoTG4wSkPLmANLbGCzwTBgFp+AbgO7zTyBFbYBXzP0q9iFzbEwmErkBixBCgEO
|
||||
E4czE1n5zK9wcOZCwngawhOxOZYPJf0qINIlIUO6tb3BNZ/5BAqC1KXbLgKcY6lwzrH8kKhh0l0U
|
||||
U+ycVUYBkhFvRA6jD6KqBpWXLOBez9dple6IeGxBJyuwIMQorTTxs6OI7rb9yQ2IIL2klDRSjNa6
|
||||
3G2nUaNUSX20shLLpMRMRXSIXEe3jVSj7dzTBXcbXsxcEMSZUDqwvBRgXgZVcNADGwKW3KEuiGhC
|
||||
Oc9XAU9lEAcpStNtnYFPqTKWGj3m3eoZLItg1EACtNsMHI7YBTZmJpURaNJtlcojgiCZQhHEKVl5
|
||||
iE8M9BCgxidBgGa0CEJA0YAQaHAEcakrD/EVCB4InjI0oMi9k1a31A/Fy7/i2Nxy5DD6ui1FfauL
|
||||
AClkpRPQoVUqp5YqpROIVtpgtzHAAIqX+KBcDSYUVthtoMNtWYU1fSwoyJRZztMGP5QGgkIAPVzT
|
||||
gPcTYWHFodaALzILR1cY5nJJjAaFyToYy2ehVS5MxMkwOIQHFhQmzBMGWmZSWSw46HWbTz0UKY4N
|
||||
0Aehb2Bh8rGOz0DbqFVKzKgwYZ4oZowWxiAS0G0YxGnJp5NjVmimRqlyMjSwsGJWGDISAYcixbGV
|
||||
8aB4joipw3Foal0E4wWAMKopBSsMVigMnJhGAwIdoQYtzEJjDiwgAVeBRcGJoDSqcqAVnqlRxXQb
|
||||
6sUQUIGgVvjRAaluRJMYMvcsu9fHITe0qqEIVBKOGsni4QsdjOMh4MCS2hujaaiICi4lBrWeIsWx
|
||||
ZWiDHshCaNnuNPBZb0GCwZATAQqorBKxz54GPhs2mN0rwVLI1IYoZkAjDq2/EDWSJXb+MQBt9Iph
|
||||
KBuxSxjOFNxnf8kPlOaz3SaRrbrc+CyQu8CMr+9iBiUGeghbVx6CwaCUIEAS9kA4SLwEEblAHohQ
|
||||
gyMIgrryHg4FD+FhoSIIjSY9RLdVHAoegqDxSRB4hImkskfMNryDbilAKO0KpAAsLbPZQnI3BJdY
|
||||
pUw5hD7Ew2FXCCwLIwtHg0DJ3WZwFiTE2wA7EZKOJoFqPIbMfWCAuiTDMHIaAb5vfuvHfWPtP8hi
|
||||
XnvnuH6c7+8f14+3Fa4fc7vbX7W3dtePLf9b2D+vH//9c/24b4w9qO+qtzDfurnsd8bV41873la1
|
||||
49uzrZ3n36vOdctyv7Xv/LfmlWPsf924bvwzrhv73v2vGnfc+bfcV41v3xakNf/V/1s31pnrjL/1
|
||||
9u6PMa8/Y4591Thjfbu9deP6udz1rhtz/uvPmNeNsfW8brytcre2142tvVn3ujG3u/4btD+2v/4t
|
||||
3L1ujO/9deNub+WY47Dn67PHtmqcse69YpxvvVhfbnnd1t/aMa8e21stznhb6d0rxlrz+nGuGXNd
|
||||
P+ex95z7mnHH9XMZY78tKPPdQ+6rxv56fqvGfpW19RXja7Gu3/9fL97X++q3lccW1+59r5vzvlrc
|
||||
ffb1Yq3zvr9iXDOu+2b/6wbpX3fHXleNN5nFv+qNca4a46yx1rXfj/PGtu66K7/c7r5uvn/l+etc
|
||||
e+V3Z+5z5Xdb1f4//z3Xfr3+vte+ref9a97vBsq6Y2urv1v4d/6V137x5h33Xvv1e3O8ve+29nsv
|
||||
/phv/3vl+PbOtef81o73313nyiv//+/KtxWuO/N9q797+1773Va88vtt17xqnnWu/HZ//66b89hW
|
||||
frfw6mt97vpWfje/ddufceX3+7srv5vs2tx71R/b2u/W2sJvva/6dr8997hqj/P/v+brLdcd8207
|
||||
yOe8teYZlG3mvf+a88X6317z1xnbrC+v+ea/bee/d6/xrfpuq6u+2+p6z/XdVd/sd7768g7y94Zc
|
||||
76qvttriXnXW+tqrdd3X68svr/tyG+vcvc6+7ot9t93fu+u+W1+N719pW/fFfmebf9U339otvvlz
|
||||
7POu+ub9s/Wd5+6rvjx72c35b47rxqstbG2r/P/91d6Oed3byn6vu628a6517fzzaq+9Fd+s++ad
|
||||
V3xrX22b7+2V13y5/5xXrjHvmP/LPQhjnLffGO98Nf79Vu6t5hvXe++um8v943qv37hrr7XHFd9f
|
||||
tf791t33vv1/bX3WdXMbf4xrvluoc90153x/1VzW29qar+f3dssrvpus6mwrvq0NFNqbcbX3a8ux
|
||||
//X//LPvuv4NBOIY17+F3OtdP2gLM//dV45/x5fv7nn92ypza7W29Vvsq//Y5o9r30D2cp+v7T7r
|
||||
j/2ufgu597ZXn7mu/lp/cfXb6tfe9e2156sz5rr2DaQ3B9mLe84c5107aAuxzRj/yq3X1t+sscad
|
||||
145r33/XvoH+xz5vof387tr55xzX3vmuXXPba9fb176F//J8L9ae++xBWmfftzB3nGvPuHrr9eW1
|
||||
65t59V5v3X/120r7rr3FPttqr64dhD/uvnLsNa722o6tBvm/tedW417tx1trC7/Vn/fKtxXuuHJ8
|
||||
vcW2cvw973VvINDeQmuz5nhfbr3Pvm7QFv7Mf+W349r79v3Xra++uXafdfd1b6Cfuc1bb+Hmu/at
|
||||
L6+b2/1nzmvXPutf9++1651z5VuYf7/+Z54rz/tu7Wu3H19ducd668q3lf9eV47x9rXf/rfGu3K8
|
||||
vb0exLvevfYtxNpzW/f92edd+edaY+995RvIW86zl3G75253t7b2u7W2Ve+ad1s57zj7b7fu+/66
|
||||
+97Z28q3VeeX12+/tlpXrj/X2+p3fL+t3/LK7d/Wa135JtP32vyrx5UjQLbWBgo3GYazrW3V98a2
|
||||
Yr0/r3dbaWs7z/Xi3jmvOvuqvfbV4u+r/t1vIJ7r3sL8Me/V447xz/V3W6/duf6dQVuI9bW92qs9
|
||||
5tf/ardVv9jrjevFu36vd72/3m3V/+6b64o/93nXv3vHVW+r7ce5+m31va2d858r57ju++/fvupN
|
||||
9vvOevOqPd78+lzxvQiQrdxA4eWZa423xzb3ivX1GPuKs9cVW1xz9jp7X3HWv+LLr635Y41rzndf
|
||||
bXfHtmZ9O/YYY/9vtjVzu1/e+7U1a7x3/+Hvf/+Kr/0V5w2kcdbc8qy/rTnz/7Xu2W9ta/a+a7s7
|
||||
B4Ub/9y79RV/jm2322LLNe7+grzWGH/Pb8a84o5t9ncrtxWu2e/cr645e9x/xzXnbeW/3RVvq96t
|
||||
rRn7XnG+v+b+L7YWw90apNxA/etv/cX9Z59BHvPb68ebDHN+Na/X1o/DvO/Ft+Zse/5W+9x9xX/f
|
||||
mvPueeebva05Y/v/9zr7ikE825rzJsvY1lwzv5xv7qvN/vp8f78gzfXdeGtd9xZqv7/Wt/Zq8+5b
|
||||
c3s/tr7azDH+19abt9X/Xf+O681X285117VzPuvcO9b5buzrzd9+rT23nH9vK9d1c9lm/H+uOOe8
|
||||
tbcV501WNeet1nfnXG/2Gf+L8cVV45wr3l133+vl/Na2f8s5xxnXa73dVev8sc9V423Vdf+7Wp59
|
||||
37xmfLG//++acd9/74zr/X9rzr3Puev7a+9aX6yz7RZ377nuFWNb8/bX6l8x3mT9Wltz9jn/XTNe
|
||||
4X151rd/q3/VoM65ztbrurdQ65tx97h+rvvP2O9efe764/q5jfnm/Vu7va/334v7tRVvq40tx9rm
|
||||
iv/1+ub6Ofb8681r5rn6bWUxt7Vv76+tvGec9ddVX921/7/mTaa7vZb77qvmds/af287x9zristt
|
||||
1b21v/Kc9eccdHneX1d8t3Bbe33lXN78ft5xvdfajvXNtXMeY3t5rvfefffmH+t9va34esxr5zK3
|
||||
mvO9Lc5dV3wx1rn2vbX/lV/9v+cV663cQKCrrb+cV8ztnv/21nu8f+V3A2W+Ocbdaqw9rv1usuut
|
||||
t5rXy218eeV3Qy1c3spt5b3ePfN9d965e+xzvdvyrTvvFfvN/99Wn1+Nd9YVe935/Xlv/H+9nM/f
|
||||
3u77zd7vevu9+/9/+cVf//7z7p5rmzHPF9t67wayOOd9sd++3i3U/Pp7ed+dd+7v9tVebuOb9+c9
|
||||
X875r5jbmNufrf3V3py73l7/au8m69Zmv/uvmPP+dp453vpuWy9q4bbdatto4e4GABNnNwtnN1S3
|
||||
BaSnBWW5x0VxEw7TQUhPy4fqtoyFu1sJ4h6Xc2wqEGc5uznL7Y05jy/3+z3HAIggVplB3buBA0Al
|
||||
BA6FQreVoQ12W7d13VbDvS3utg9XSQR7OG/w9MLQgObkr9vw/VIca7/6SSKf94m+8LNJoAqOI91m
|
||||
I1+kgCLWTofDoJJfNRKJRFKPSLdd+3hUSbd1m/dwPL4v9hdZ7AULNQYSikmVEa9hgeJ4iI2GIsVJ
|
||||
USjDBr2MQhtqyXTBkeqwud0WwSTEexcCGFkSwJC5MXOA3DhgG4vIZNJAzA0FTCQ4+fQdmJOhLEIv
|
||||
A4s8Sii2hAlEgcbcFRRloQ14tMRSIafUQe8j2KD3TWabe2IcFK/bJAQb9CTVwSOADGwoHhvOIrd+
|
||||
Nuh1wM/SRhVw1oWR+0mVNnI/jJCzwe7jKFSHza20v8gVzgY9WzJdMEOE4032Q++KdhtDlIB9MZMp
|
||||
CppaqASzZZShYE+DkKEREAEwIAGzEgAgGDQaD0pG0wk1vQMUgAJBOihKTlAyNB6TiUPCSCgMB8RY
|
||||
jMIojqIojMSYYgoyGwSkR/Kee3NPFKU5hZEjM/pEUy6JdOamZYAn2yq3jHGxdNF+9w==
|
||||
]]>
|
||||
<![CDATA[
|
||||
xtAonvICATAmrM83dZ2gR1KnD4mZx4Kpk2k33mPI8fPxbbDfVsc6wcpDWp2XDHWhbpC23gSj/jdj
|
||||
6av319WK+TeLXWfNVgaRCdMQLgYYyZBjpSA21np8lVUswdpMNsoIOtqldOKk3HoN/leH5yf957+g
|
||||
hyPz9cFLGNWpxbHx/PwEp+LKSKh4pzYUcp4XCJ1mIsMFDXlLVyNUIpssawiI25G7pGOLRGS9QQla
|
||||
Fw4xqlVBfMnJfXLWQasbysLGiNQbqzWaTmgjmUBXS5h4hLGuO33zV+x6/vOA9Mb79uUGQfpigucQ
|
||||
Pw0ykwj/Z5CriDURf4OEfplLCV6AE5g1BaiHVMhTs/4JIGmdAfCMHEF8g9d7aspmAWhHjpvpwfag
|
||||
FaaPyWN7XnJnpLqTVqjptan7DbCGP1tieizHLoW7Ve4CQFYo53niXArH83c6UBY6VFvqhlxTNdCk
|
||||
YcMMbqvxiHfZQvw2VINGN3p4UyMcJbE/QTLR/e8pe4aD3sjb2+0tWFiERMOnJ8n+KufuG8Y8UZ39
|
||||
Rr9Bx3a5h9ppSE6mlLiAKXN5R8BlTpZDZ86cLOgjV3c6hoRRpRymktssocHEgd50jh2Tf9sVWHjf
|
||||
KtaBjdWh82/q6EooAwLRCSUN2yhHIYV5ydn5AdH9wAyoBISF2WXgB0rSGHwxM1XmeABkBKg9H5IT
|
||||
haYPmO/AzbiXMuTFgqRsIC6DguK0YFShRLNp2S+hHSzh4F3bgO8ZrDfxBScmSla69Lpn+P5xqGbL
|
||||
0V7teEc9oIuawvE6ie3pFIBITt4nqf2kv6vuMTl10xk+IkUReDu6hw+ImMslhNLPCGaY4jaGP8si
|
||||
FQo/jfMzlg+TfegZND8cCh2HVuwTWCfTCwbyh3ThByhoVGuRvP+tzdaKVFMKFU0qEkGgIz7T2Qsn
|
||||
b5oB4gTOhne0s5InuCsYbyktCKAmxfWhc/nRvQY+JDiFQkXxE/XN/i7ETZG6suvRDsgL1fKcMZzD
|
||||
wJICYCy9wVWh7MWAvzFFp3kFOePPh9JgIxfntccXVA5aBSGsAt4O4EfPFdFqoJ8sxrwXFfcZNTqd
|
||||
j7ru/pXPZyc4fqOw19LgPjpLTe4LV2lAJbnzQFqVrPkV0tOXfiZrF4dpco2MChDu93VpVCyds+Ko
|
||||
PaElmLakWCzRqlcswzaWx24eUEwjESgE6Wqk0AP91heJ9BILZc3+mrLCIJ0ChmQLbvTNq730YtHZ
|
||||
/fk9igZ9UZ1+vxmAtpSEwumOtuOcnhn8KFkNtKxC0AzndO6hCWSHB70VGtEcNLdYZFTXCAq3E7L3
|
||||
7dwzyg/hijVo4K4wXRYqOFj2zExkl6Hsw8RxkGvNXXK/WTz0KjTZpwZJybOc+AVosy4H8pTUWXBS
|
||||
6y0rK9RYvrMApeCh/pkeCrX1rTtnmt48JioO+QFf3vJSw+wB4WOocKNbVt5cf+YAZ2pA+W+Y0weR
|
||||
rBQ8RCloC4RwWS46itnWMnaSBQFUL/wJ74G4rnzKf+unWtowPqw+sYWPi3z1TM/xvz/2gvPgafaP
|
||||
xSHK78QGQOz9VpWOhmNZVg5/RgVog0uy17Oi/Hu5IRl5cBEoou9bsCMOIXTTSrlPMpFlwUv60gOA
|
||||
QzIi1eHMLfNolAkISGYrWmapmcxHvoxJq9snXx3dRBHmWHZqbTGxDLLAjuHncO+Vx8ORKvrlAKXz
|
||||
7XwoOxy0incbCGxISyxD3CC3KPNoH+vKEbXZcKxuHylbwEEAv8Nrd79vBbR5OJVaeMHX+6u5mAT4
|
||||
K462GXgAHh27nTQIlmMLIEuB4ajhZdu1qq1BhCBYwB8vd6XWaI3AvhA8H2KvRgdMmSCvTSkGkcDF
|
||||
yaflgEdC+hHyS2EhnafgV2swJPj5c6fxqg2kkg1F6d5sK9humTPI13S67ZgpcFVcUKmcNMzZN2aB
|
||||
AyoLIh5eMocZXdXlF5avG+WYYb3iyVfzqmKOMAtjrv+u0jv/PrktOJaqeute1fi3ml3UBZeQcMoj
|
||||
3GbEQc3JHl8UQgg73Nvkgfty0+JMAwRmnqbPx47lfn8ORu4xezG52xEp2pMSc2DcY3kAtV4L0ERB
|
||||
gLCkMBkTHheNmBz8aO1bspjLtdGc9a82xKUlKEVTNMaI1DGnsD8Dd4ie046X00FXm+eCPNBPdY9W
|
||||
keAlOvYo4TEFIWUaBhwzU6PfICiirMj+syUObXugQtdh5PlQ6+8lA2PiQ8i7hAOB+UnS4OSI7LCx
|
||||
PFejodkJkfWukwDbRB8oDaQm5hp4k1O/nWa6rWBqYkzQ1LxARr8jw3K6G35WDjYfK0UUNSxohqot
|
||||
ZRwmvWFXatJEB5+NUOhZ17DiTbnL+YB8GXolBGco4NvGiufye0T/56gfreXBaVPmVeoTj2FhvseN
|
||||
bqdd2lvxCuoXAhkBZJdoNSj8EZYTINt6Y2+92IUoDSf+aA94yIJ/3gBGfIEa2D+/pj9Vi1Bm2whL
|
||||
ImUQOiK17F2bBwiTR3pJ/+LUCVW0wXCy0LMTXi4giIiP6THLZXK8DBFgNGSg76WcNHiCLOWiND88
|
||||
QwrH/SKY0piZxtLrMpZOi/EZ6KhoRhSil/l8BHPYVqDCmEBThg3IhmjEpV63xNPHAlyhBZFP7IGQ
|
||||
huRVkWUSLBFcGBgUcY6Gq3ICYrLh7AMEvoTdJOW1fw14iIpZw6DPX1C+0gAEiNVNATEe5fFCgsH2
|
||||
G57XDqcazIQvVDxeMQZ2zO+2HQe8lqRf+c1CEPkAdQUceK++0CA96Wihpcp8sYF10Uky28Wh3A2K
|
||||
zwMTkDln/srDWgJHLmwcWBhFqn7GJhmYdxfXBwewURySJAk37IYd0NgzOdVjpfBtk5xhYWfCf/Se
|
||||
evGgqp5cadB0LZUwrisHiwYXVIqlKge6By36p+U6Jfv5QJ1o6LzzRDY00mLkeKLQCxyyCDJcYurj
|
||||
DWPmysr0BD+KXQrNX0kDfGCEMNDKwjhAeIRMnAGoamgDJYmRThHBgPkFxBuO1JAqeJguC0dEcYdF
|
||||
gHBc20Dg5OD55Y+gVzP1yuypOd8+FJuvR8awv76cBfWJngZdcVCoDWIwfDTncq4+S1ctVHAVw3cx
|
||||
l/DpNRHK5J170rEfuRvn+ltU8UXUWffcPDr4zpHLIPTprso9+P6AnEokkzgYNxeUlhveWikvmcGg
|
||||
J5m+NHA53LCn9YsszYbbiRfITsse9Jit50Q7jl4UIcX2DvRTLE1GZUcZcsqvyI3G180uDh/N1g/U
|
||||
pkawLZGt3E6HVUZ46qsw0E4FjUx5Hs0OocMWgtGcoEjQs1jtpxXy2uV9iV+v+KDG8cP4mqEdHltf
|
||||
Qk9j6erEaTfCXERTG4KYKdiv4I954kmwytlB1P7nuLvisY5CC0tbn+F8zQVCJmQaAO4dlEaDgJVW
|
||||
UFKAXy3ZTcQdFdxOIrR0VvINaewhj1BSrgJJeR6mLyhncZQftg53iSX1smM/NHMVgaZiy9OpF1aQ
|
||||
qBpPY+S9pRduy00cyqkXLiFa9P66gSqlvu5utkllH0srdoTLvwmflYTKilbnW+LKfDprbf1a3w3n
|
||||
nH/bRq+TvnS9yVPBPd5jXv85xvNDJuTy7KKQoXGSAvsQQtJEQinCvnds/A/CWM5Xyt9lwVhaLPdZ
|
||||
AOspVQCYzo7h2a5Xm/zxtk0aSE/IXk3/MAyVJhm0IDv+vf84opceKZjtcvTczknoNnNju8cBfZ0H
|
||||
6ccdQJ7F9KPNHFti+kFbDJ/wxPaTmelnMFPRsMYS4JVymmIpOo2/Un2mUFMsZT2zzIGLpfQrLQfF
|
||||
0vbm7Cs1fyzZGigTwQxXZtSJm2Pp5dUw7mq/KA4lloImxjRfSVgpllQxxb7ScyKW3r1t65Wm9rG0
|
||||
VFCWvlJCRCypTTvnfaWpF0tT6D132eU3OEYCm9emxORJUSTRDzzRcJ2JhTRHQ8yLeV1YdhLk7wqr
|
||||
Cy9M/Pmg61A2yuOElMohTe8OoUl8bndiDbuBSI58/Wj+g54/pu6csYi7yak8CdYMnGcuUyVIT2SA
|
||||
dYZQXzkr1w95UJtgFtiwdViYRbFhXqrGDHNvzojvkHmGSIxeumfIhBZIKOX02BTHfnqC7EDCjzct
|
||||
gGOpbRqWA/+BaCEsm/jlFVbTW6CIgZ9004Ij5aw0ISMWWKYCI9iKjenGmmFhHctQD0u7i5ByJsEg
|
||||
sWT6g6zvEocv4L/JbPYXqImxHrSBgFjuxbDFO4UB6WZXICPuGS7AAynbJWPljptRKz9TXpCFoSQd
|
||||
/YCmVUX8wNihMGbBZ3WBIPvynwsmR9rSp+zRismEKDIRrtpz9rlDlBr2z9bXvep/0iMDD4Sgsr9k
|
||||
RIZ8XD/Bkt+bGbgFBWUu/xwCZ4lV+rnbVifYXO71uR/RUkEpiBlUrQydJELJ/1n0xbAkyl03dsOI
|
||||
h3iPaUyjARB9BEr0Yzr3a8UbNv+PhlKlsJp2Bltpulkp3kKbSQUtEfXYdNIvHGGToKORzeBYibhh
|
||||
h0Qz0bbps6gOyWntGKnxdlErCg/Rjl3M0+1fYt00Ujy8V2xiP/UtwzdvOm5305E4Rff+PyYh8hO4
|
||||
Cz9ywT3+3OBTwyGOPjo5ZshBe92tjzErSSYcAhO/Th4sYrDjiVHuvT8wwdDm2fK9iWyQlD8Ty4kI
|
||||
FS25iZGIOrFK70NEmqUTzlNv+BDO9tGGMZHVtPdG0aqStwjhFmZuUI8EX38QeW1UrGIiuxdRKghj
|
||||
XsVCORh3eUEMkwQeYtZd1Lu0ITb8twv0IoWb1XhMYoahAoFcxPS0psmOi0oI0Xk2/FHFeSxSsQB8
|
||||
hiV17zNFPqIRF6gNviQrG1m92bDsGYJan85sylOWF8SbbLpxmTmFnMbh7tZTBt3yZzRWRNxF6CxR
|
||||
5laABUUWs9H6BgZn5f9h5sScLmMOjsMyBMQVMzm826lvrUZZy4BLFUOwQBfF0FpvvYOvbYelkUWo
|
||||
LLMjTdcJTUklVjIVWUZsisgivhnAfdGjOVIvHUOBojdNnsuJcLWeOGvLi83QZocv4G7vhcfYMf9C
|
||||
xr3fEJoocdYHJJ0kNZ6vSShFtulLgls3dFZTXleuL1xbMB6F0QKKbMWSLip9naacI4tpJH6bvM9N
|
||||
Pp8pf1z/P8EFerEC7N/iXgpcqnIBFohU8/qSXssU6zKvotPX0XHVuoroHDqZZQDUGp1VZB6R9NRL
|
||||
nydMTFHBrNSrcy7UBG31Oztdf1bo9HX9ZPR1LUT0XWdbdF4TJ/quPk4zLaf1X1gg/2I5MZpxcqly
|
||||
8n5SU5lxsricAGaO3zjpvoUnRKaFDSFavEDQshMts5HxHpoe0UqDiSdaAUfQ2k20tizfdAlafric
|
||||
wr/0rVoEIpGzQ1aLaFtNa4iQtpzBtg68z7eUNdoW3tKWilSgbMszce6lrWNVc9L9BtqW1XvUJqSt
|
||||
TrCtS81EaEsS2A+PYJwJh0U5UineIb0hAiXxuTzS4CbIpUCPSepiNPc4TvfMm6gCMYFEjACgtBvk
|
||||
ABdnOCNEqSLSJdjK80fzIkSnU5TIEVZlj5E1UF5vLfjwgzg8bVD7IVm56icLbtIe9A==
|
||||
]]>
|
||||
<![CDATA[
|
||||
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
|
||||
]]>
|
||||
<![CDATA[
|
||||
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
|
||||
]]>
|
||||
<![CDATA[
|
||||
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
|
||||
]]>
|
||||
<![CDATA[
|
||||
EkDWfCXxIK7OJ3FKPFsvHjHc4cqlaioLV/JQFsIAU02pIoMusuzjEa40t0cIU+jK2sXBTqO3Rzjj
|
||||
XzHF9OudUTnBDW90W1lcWck18CATErMby9TJfxN+CPndOU3g7vvxiXeyuPHPc0A65wpamIuA5o9v
|
||||
K+yJX5KoieB7vbWzVbKV0RWpGSev/YXtXcjPdQi4f/AkRRE9F6nWtM2/dHBnUa3YfXfofcLeqpn/
|
||||
0sj9SOm/e11FmCSwEF8z0r+n3ckC1hCirVRqaWpP1ARq4hE86LRp2gjbXq7TVfKyEaF2gYPrLsOX
|
||||
ZSXAesk89+5RqJnmJ7tcA4psQzGp/R6UW8UNAlLG+J8wzb8E6OTPrKA/m4bdCIUCAcr4vB4dQDNI
|
||||
ig2DAg3qjje/rles2JTd3TtlWUFUxLCTlG/bAdkBzAEj4tswQS3iMIxjQYw4xiA2nXP0HBltZcGx
|
||||
oce9CE4NXTRllBta7jaKNjNCoUeLj+Lg7xdv70ehKqFgF/NRweEQ9U6DmDmEgm1ilpT/nGUmZS/m
|
||||
KXjchSWUmhOFMLg8XRhlfEUhFF4UuoYiV0cTVT80oVBXJB9GGLXCsPdXoRCGMJlCGIaOB3s+fUTy
|
||||
0xPEELvN4PZTNKEwrxpaaEIDJWLa9NlAMjJEhRX7IIYfdDFkKF1RekTKaIrSZNWQc7EDkYstl7Hx
|
||||
unRVmT5NGMq7qEMThpsxSyj8QhPXslLIjicMjaFSxRMK/Ej5ijqeQqCAosSnTJWtufxAGAgF1yq9
|
||||
s8MO9LthCQWyDWt3tiSqLKEBsdeOcTAVxRAZEZth3CAGSRAjbkqMwRhX9L0YR9uL0Zs7l/zGMLUw
|
||||
pCSLGsaZ2RWDQEG8/Iwdo1DgXfnkeOZRb8SztO5uPDP+YPzDOKEBG5thXCKIcbsC2fyM4fIQ+/pk
|
||||
5o/Vi4rxgylXixK3qX4+9yeKH43SHM9kl9O6NRifoWaOQ4HNPsG4FFgfVjU+NISCiViWsxJSmcsa
|
||||
ZFgF6+9FdB6OBFE4YmosuzPlo0zQbHfRIovPOVRRIpqtjxnfYycPqaD5YOroUTR7TBcB1SrtCi9O
|
||||
x1PDqbUXwimjl184tZMKpzbmlL/4+d6I+KFeNHx79xC+UcH3cjYUX6u7uLKYRvnW9KOr6IGmay+V
|
||||
5/vyr93EyunUrqzeGMJR5SMrCiV8Tks47ekdKLiEcVoYKDAhYpxu6b69oWM6E7pFd0v3jtq7GIPt
|
||||
wXjMvsKIPTPGPxbE6BhJ2Y7NYJ/ROZqqGYZVndFBRsKM+vy4YoyLPrCJn1GfUbmjGa1gDMcjFCri
|
||||
fhk1Rq2+iJpl2+AJDXRa+jov3ZGIY+PYEga2BAoYB/axfESuZcMs6PIYj1AQ47WMYXdEDCNhDDRX
|
||||
hUoUr6puhGcHj9DAFdEiShinidkwMrxRYhCGEwrFsqPtWA8bK8JAMcQQ64xVtJP8aDyaB38OCp7Q
|
||||
gFj8fHclN0O0KYhX/9BvGydFwiMUOjSR8GwReeVIrZQ1eIQhajjWcrRjTeUFTZOFLpxpKd0ImtCA
|
||||
SVwUeTSlEFbqvCMMRnX2TiY2zBP7FHtXXhVNsSc5GmGYYgkFRgyNSjFDjE/UfYpxPMIQZYMCuy3e
|
||||
EB4gDGR+xPxpWISCTWlYUS4/JMMiNEDhsVXrpH4QTe6wxm7oocmuYZ20aAq5yyIUyr3aDGqJRL0i
|
||||
jc1QIBLFNEgnJQH3YN1+ToGYEOPUYvxOdsanjBMVb+hQFeiMZ/KUg3HLHc8TczeF8Xw0O2o0t+KG
|
||||
4J3N89Fsmmv5UFqYZptmshgxaJahuZ7ybJ6PzLPFeRaezybEsw3xHEXmaX6fVtU8zzyfFM+l4vkk
|
||||
jFcM4zMVIkUzzQ8hY5nEWGb5HAcZhzRDSSYUSvLdzVzEieH4QxWHM5aiz/AafXrm2DecS43DMcvx
|
||||
oa66D0sqjmUrBc00U3DTGiBQMFah+EdiF1PBqYbJ7oz5HIPQQGkfjG1o67wWYRENOI4dhkJPxdqM
|
||||
ddAXtAkFC9p2xvqOohoGY10tW8fwMXxXnVkTKJibsB6OrhiuYrgK4VNJMfywHbZpauRn+FepiPFs
|
||||
HAwPZZhQsAuGW0IDvV7sqkbrjVaKo5VaXmOgCfNKKFh7Wk2rBI2IaW1pvUurVE1qpfXsSuvEaaXV
|
||||
7GSwDsPDMMNFDD9AaCBq2phptRDanIU2ph2r7Dys3i6s1p2jCt2wng+JFaqQbKpOatVajJKwKdFP
|
||||
SC2pD1Iposep1Ks8TM0Vpz9OZ+xWn8aGdpFKP6pIvYWRGneklpfaarNqVn8yz8+cWS0rX3Fbb8fP
|
||||
KqHwslaqoHWMcXCbghOpBAMOKAAAAAAAgOAABAxYsEEFEWBw4MAFFWSAgQMXQHDgAAQMWOBABgwc
|
||||
OKABAxhAQLjAgQkkYOACBAYYYDCAUOj9NTOVlGMr208hxRMmOOjRWYvGwqpjV/WoHgj147ppkF1Z
|
||||
iNaDxsSZVRyvxxQFlZOrIt7B0MkjprcUf1A08ZNyLBa9s5GiU3SkLDN13XxsD1pWQw+hGuP1oO7u
|
||||
v5QwwQFJxVZD4Z+IfDI3h+/q07hCMYBQKLvOxe6SMjIhu1OPNZXLelFm1ahPpHWEe2PEqNCM3N3Y
|
||||
wrdCYlR1d1YrqvnSelVVz6VolQ1J3ExuChma8i11kd8spd6dzK8oAQc9mCGpR2PIgr/zzdyHSix0
|
||||
kVbEqsiECe6oyPexzt1ZUDXKUyRyBzZkuXvsLYZNLOToJA0r2dXE6nT+UdiUnG7iHFKLCtfQzdRW
|
||||
ISFkrZgbH8RBa26zaRzQUIyQY8YdCsbBmTRu5CQPmyOTzpxMj2QAodCa9TajB76as99RtHypFxE6
|
||||
MrJp/8SIbKJOhtyql+dKLrJ71gv/TErXD5nDj5FzkdVORm6nwAIHAgRwcAkMw0DBUBiGggtDYQgK
|
||||
zPwLoss/fbCSyt91QSQMhzX8kwwR+xeKfYnBKFtUz86RNRiP/sP+ccV+oE9VGf+mjZDBFkb/x55Q
|
||||
EGJM0Beqln7tSqYvc/oM+i+y324e+zGoAYnFqMRyB8TRLKsVaRrYEAATEQAQACCScDQWjoel5vYY
|
||||
FAAFWSIMNDZQVEg+LA6R67IaGgEIAARGhjYBSIH9TZ104Z+SUGeWnANf99TSk/SqJbxX/bLobtEv
|
||||
vWiZkDpru52M5VIeqC6Rj52PmspmsfpvtRtVLEhXzzK1WJQAl2iaGWjLJy6KS0T8/piIKYVuiB9c
|
||||
lk0+Mx3eZCHVql6nleRXuvOnJE8LEQQHFAH8G1uW5/nCO4XCklLnGm08g9GUjK0qlUuAkxhgepH/
|
||||
lQnofLRCbEsvIjAU0QBDi6FMiXBoGP4gWSqDnF5y5XKj4lAQmegNlQhaPgIxqHdB0AtiqWJ2cJmn
|
||||
dfxoKPDNtXiXuhxtm4CRaPCyf6TUAhGIvo01e3SpNaIUwV8u4bvhrFHV0SABWt4hYmRQa9Ismewl
|
||||
xwGDtGtlmBqJYYEx0QM/0ivloX8+Zn9GRKeaHdBThbjBE4hBTaa/qSBK5vwIyI5OptKOruQF96Ta
|
||||
J4Dd8fDVW6nOHIXfPTH089dJBWjZce750aUieaGThX+qVDQND6KY+k/771663soFw8njiQRRPynf
|
||||
WRD08ga9bSyVAMtMf/FR3jgBarl7Nsvv4EyeWS+/mkOQNMS4H70mIpgVBESXBDRUxQFrOFRsiS7+
|
||||
bCJCVN15zQI78sNqd0hrvfGj5h8o+Qq2zrppDoJc6PxSeGf/dC4bncWY0GfFUtGQXMEjXJ+FJPM5
|
||||
t7aEsbXoeVRqbaPSWmXIOXKa7lN9GCwy9WUkNVUHI5p0VmI/8C9hB1TsO631m0G/9tZtSa39peU1
|
||||
r2+g9LkIE7sU03It5hA9P064fLJxOaFceTeevYotWJQ2auE5DUDLALn9DCHfLHtRLuyeB//nDsvF
|
||||
pF+53teVG7aVfwlYji0rB7dd5Sc6k6qqH4KMqKkiJSoQn9+JihGPIaV4OMBST6qfwOHqkpPXKXRW
|
||||
DQuR8tJl62Lz/qUoNlYE2HmHiVmIprYsgLNad9KWJAb4c2ktegEnbVGyztJi72Xc0WKHeRmomgiF
|
||||
H1CnHmaLQtmwJN87DSm5kb79+yT2eGQaOlA8zOY8MQVQMbOBbmWVp8JkU5Mw0fiNiQDzUr7Mx1fl
|
||||
hmt98ZdSWRWAu8WZ4M0G8EQZHJVJKMiQ8eLXXborgXhx6NYXmJKXXVgr0lHDMLCizgyC7Qx9BmpX
|
||||
spgLCv+VP9C0lZYZ0gxKo6FOWibuAiKaCRdL8LA+D6Q21KiJvM8GNPCRVWezalmhcOIkUxZ81giJ
|
||||
LSpcfAA2hFwk6QL0asQ3tpEQs7a9xWrsjcsOPp2hQNK54CACpmNffGqF1aJrhxwg9HI2Dnz508q0
|
||||
loIVHZitMmOIcHNItBitki4mp0JSJLmGlyZGheC7IOx28MPCxFggL8vmnpAqbLi0BlcfICOZQbeo
|
||||
JYTA38T7Gfv+hBv00Pc8G7Znqhh7Iq3JsK+wtFXeCvtCGwP6uCQ7c8j0EMVM0qSMvGtP5d5aIEEf
|
||||
y4AnThalSvLkauQHUXMCGWfEt5vGyvKrTKgRNGf9KMZj97LsYO9hWNVn56heMoxy30MkSGHMHx6l
|
||||
xKGb5cFQibICz8AkikBZXM8rF7Tl6uVt5mol+DGv/lscITcl1f6ppBwy6szPlJ4TGJmrVYf33B5W
|
||||
NFFqhfedzXpiAZTj98Ew+aXAidWrlp8Z3u9CCYruBaaPnuEDUTozKQGzJqiTKxlCASCMZ/wgVebr
|
||||
Ecf2x9H0HI1EF4xwoZYo0/MuKu5h234xjRM1VHDd46G7+gXH4Va+TxQJlNRL2I/MmunpWGCBOGQk
|
||||
tUOMUp+HU48zeJzEZzqjuBwxnJEEUHis1QGKG5Ou/qSZbHJrr2wSABvRAj5Gsi8Kc7OCMIUZ2Dro
|
||||
6SRYjZBlllL0593CtxZhAqoWjAP0fI4RwQiSVs2exAqMMpzkKn9llILvUEZyyy8+1fU4gDKNbF+0
|
||||
LtVZWzXui5wdZoztX65mht78SHhIVvwiwyN6yzVvMugbpa+awzEbDOvDzf0mPeopuJE1FUsPQodX
|
||||
lNmqk05WmTi8RbNe0r0CQArzts5ynAmGsVZ+IsWr6vUjStbGb9sUsWZ6C+jTX6ACoc06J+ipLtHU
|
||||
g6V2n4784P6mKl8814+jD7HRTmzV+bTehREqRxy1IIHDZuSkJAFJoJmD8dtLHBcd8JwA9vIjW0k8
|
||||
WqYYe93eqBemEy9Q0wt+d1uiq79kwfCkq0YFqaliuPTSAbCDDjKJzfbv6EHVRucysuNHz15CBC8R
|
||||
gEblS5vmoMmbENYDEqVOnJTNiIxB4QZdX+S3m3uPaRIO6Jjb9YV3c6LpykISKn0JAPR8N7sK802C
|
||||
HY+b+Tj2RS0fdzCMERAlkVGfjk6ocJAA+9KlOn1rNqxz9UH+cuJD85XhiylY2l8qQUWicKGziVPJ
|
||||
1GCBPxssh+aKh7+CLRfcpSuzwYVAG+2ssCFgsGcv/AvaqoiVd2rplyd4LPn1wMnmDg==
|
||||
]]>
|
||||
<![CDATA[
|
||||
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
|
||||
]]>
|
||||
<![CDATA[
|
||||
uvP4yBXo0j25QJPwb5+Pzh6f8fOH0Wodi9ATsgv5XNZQa66AbTT1a7GFPN+zCvNIuBmPq1vtj6Mj
|
||||
fjueOWcMhZ8I0AmiB3pmzCK3WXIzTr/qA5EyIJuQDj0hUAnfmqfoCUVGMS7muMg9L8GaT2NjYnqh
|
||||
jeGDcuSfLzEM5P67Vfz/FPVYQ0o+mnC9B9YCWtcVX8rZGUCPgiGX0RwB4UqsOqcw8GKaYj4+cj1w
|
||||
FOIwBHcFhe1Ak5tKeCxq2KM0BCi7Qa3ut4rrKcviKKirmjBfYQ9/eEnxnbrJpM+Ien5WoZIFgP8j
|
||||
+410HTwBDjtSSkSz0LpYrVxJ5p+Eufx7G6vxsZp1wm21shXK6cRxCnLfWbYCpD6uM9miaUAYAaSq
|
||||
nZAvJmbhgTI1ioIVwVo5kyXVSpkceZchOjb4I6Jy4ETW2w+vYpqBSa5T6JBnJV/i5kTloJOXT0eO
|
||||
zzBg3UkNHuRBDfK3NKwD
|
||||
]]>
|
||||
</i:aipgf>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 62 KiB |
@ -1,7 +1,7 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "generic-inverted.svg",
|
||||
"filename" : "generic_inverted.svg",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 32 20" style="enable-background:new 0 0 32 20;" xml:space="preserve">
|
||||
<path stroke="#FFFFFF" d="M1,0.5h30c0.3,0,0.5,0.2,0.5,0.5v18c0,0.3-0.2,0.5-0.5,0.5H1c-0.3,0-0.5-0.2-0.5-0.5V1C0.5,0.7,0.7,0.5,1,0.5z"
|
||||
/>
|
||||
<rect x="4" y="4" fill="#FFFFFF" width="24" height="2"/>
|
||||
<rect x="23" y="14" fill="#FFFFFF" width="2" height="2"/>
|
||||
<rect x="26" y="14" fill="#FFFFFF" width="2" height="2"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 663 B |
20
VDS/SupportingFiles/Icons.xcassets/CreditCard/generic-inverted.imageset/generic_inverted.svg
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 34 22.4" style="enable-background:new 0 0 34 22.4;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M31.6,21.9H2.4c-1.1,0-1.9-0.9-1.9-2V2.5c0-1.1,0.9-2,1.9-2h29.1c1.1,0,1.9,0.9,1.9,2v17.4
|
||||
C33.5,21,32.6,21.9,31.6,21.9z"/>
|
||||
<path class="st1" d="M31.6,21.9v-0.5H2.4c-0.8,0-1.5-0.7-1.5-1.5V2.5C1,1.7,1.6,1,2.4,1l29.1,0C32.4,1,33,1.7,33,2.5v17.4
|
||||
c0,0.8-0.7,1.5-1.5,1.5V21.9v0.5c1.3,0,2.4-1.1,2.4-2.5V2.5C34,1.1,32.9,0,31.6,0L2.4,0C1.1,0,0,1.1,0,2.5v17.4
|
||||
c0,1.4,1.1,2.5,2.4,2.5h29.1V21.9z"/>
|
||||
<rect x="4.4" y="4.4" class="st2" width="25.3" height="2"/>
|
||||
<rect x="27.7" y="16.4" class="st2" width="1.9" height="2"/>
|
||||
<rect x="24.8" y="16.4" class="st2" width="1.9" height="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -1,17 +1,19 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 20">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 34 22.4" style="enable-background:new 0 0 34 22.4;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M30.5,20h-29C0.7,20,0,19.3,0,18.5v-17C0,0.7,0.7,0,1.5,0h29C31.3,0,32,0.7,32,1.5v17C32,19.3,31.3,20,30.5,20z M1.5,1
|
||||
C1.2,1,1,1.2,1,1.5v17C1,18.8,1.2,19,1.5,19h29c0.3,0,0.5-0.2,0.5-0.5v-17C31,1.2,30.8,1,30.5,1H1.5z"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="4" y="4" fill-rule="evenodd" clip-rule="evenodd" width="24" height="2"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="23" y="14" fill-rule="evenodd" clip-rule="evenodd" width="2" height="2"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="26" y="14" fill-rule="evenodd" clip-rule="evenodd" width="2" height="2"/>
|
||||
</g>
|
||||
<path class="st0" d="M31.6,21.9H2.4c-1.1,0-1.9-0.9-1.9-2V2.5c0-1.1,0.9-2,1.9-2h29.1c1.1,0,1.9,0.9,1.9,2v17.4
|
||||
C33.5,21,32.6,21.9,31.6,21.9z"/>
|
||||
<path d="M31.6,21.9v-0.5H2.4c-0.8,0-1.5-0.7-1.5-1.5V2.5C1,1.7,1.6,1,2.4,1l29.1,0C32.4,1,33,1.7,33,2.5v17.4
|
||||
c0,0.8-0.7,1.5-1.5,1.5V21.9v0.5c1.3,0,2.4-1.1,2.4-2.5V2.5C34,1.1,32.9,0,31.6,0L2.4,0C1.1,0,0,1.1,0,2.5v17.4
|
||||
c0,1.4,1.1,2.5,2.4,2.5h29.1V21.9z"/>
|
||||
<rect x="4.4" y="4.4" class="st1" width="25.3" height="2"/>
|
||||
<rect x="27.7" y="16.4" class="st1" width="1.9" height="2"/>
|
||||
<rect x="24.8" y="16.4" class="st1" width="1.9" height="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 1.0 KiB |
15
VDS/SupportingFiles/Icons.xcassets/CreditCard/placeholder-Inverted.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "placeholder-Inverted.svg",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"preserves-vector-representation" : true
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 34 22.4" style="enable-background:new 0 0 34 22.4;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#333333;}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#333333;}
|
||||
</style>
|
||||
<g>
|
||||
<path d="M31.6,21.9H2.4c-1.1,0-1.9-0.9-1.9-2V2.5c0-1.1,0.9-2,1.9-2h29.1c1.1,0,1.9,0.9,1.9,2v17.4C33.5,21,32.6,21.9,31.6,21.9z"
|
||||
/>
|
||||
<path class="st0" d="M31.6,21.9v-0.5H2.4c-0.8,0-1.5-0.7-1.5-1.5V2.5C1,1.7,1.6,1,2.4,1l29.1,0C32.4,1,33,1.7,33,2.5v17.4
|
||||
c0,0.8-0.7,1.5-1.5,1.5V21.9v0.5c1.3,0,2.4-1.1,2.4-2.5V2.5C34,1.1,32.9,0,31.6,0L2.4,0C1.1,0,0,1.1,0,2.5v17.4
|
||||
c0,1.4,1.1,2.5,2.4,2.5h29.1V21.9z"/>
|
||||
<rect x="4.4" y="4.4" class="st1" width="25.3" height="2"/>
|
||||
<rect x="27.7" y="16.4" class="st1" width="1.9" height="2"/>
|
||||
<rect x="24.8" y="16.4" class="st1" width="1.9" height="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
15
VDS/SupportingFiles/Icons.xcassets/CreditCard/placeholder.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "placeholder.svg",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"preserves-vector-representation" : true
|
||||
}
|
||||
}
|
||||
20
VDS/SupportingFiles/Icons.xcassets/CreditCard/placeholder.imageset/placeholder.svg
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 34 22.4" style="enable-background:new 0 0 34 22.4;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#DBDADA;}
|
||||
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#DBDADA;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M31.6,21.9H2.4c-1.1,0-1.9-0.9-1.9-2V2.5c0-1.1,0.9-2,1.9-2h29.1c1.1,0,1.9,0.9,1.9,2v17.4
|
||||
C33.5,21,32.6,21.9,31.6,21.9z"/>
|
||||
<path class="st1" d="M31.6,21.9v-0.5H2.4c-0.8,0-1.5-0.7-1.5-1.5V2.5C1,1.7,1.6,1,2.4,1l29.1,0C32.4,1,33,1.7,33,2.5v17.4
|
||||
c0,0.8-0.7,1.5-1.5,1.5V21.9v0.5c1.3,0,2.4-1.1,2.4-2.5V2.5C34,1.1,32.9,0,31.6,0L2.4,0C1.1,0,0,1.1,0,2.5v17.4
|
||||
c0,1.4,1.1,2.5,2.4,2.5h29.1V21.9z"/>
|
||||
<rect x="4.4" y="4.4" class="st2" width="25.3" height="2"/>
|
||||
<rect x="27.7" y="16.4" class="st2" width="1.9" height="2"/>
|
||||
<rect x="24.8" y="16.4" class="st2" width="1.9" height="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -1,8 +1,29 @@
|
||||
1.0.66
|
||||
----------------
|
||||
- CXTDT-565087 - Input Field - Text - OnDark colors
|
||||
- CXTDT-565112 - Input Field - Credit Card icons
|
||||
- CXTDT-565117 - Input Field - Overflow not clipped
|
||||
- CXTDT-560823 – TextArea – Accessibility Labels/Error/ReadyOnly/Disabled
|
||||
- CXTDT-553663 - DropdownSelect – Accessibility
|
||||
- CXTDT-544662 - Breadcrumbs - Text Wrapping
|
||||
- CXTDT-565105 - InputField - Date - Typeover text not working
|
||||
- CXTDT-565115 - InputField - CreditCard - China UnionPay does not allow longer numbers
|
||||
- CXTDT-568398 - Calendar - Saturday missing (on smaller screen size devices)
|
||||
- CXTDT-568402 - Calendar - Extra row (on smaller screen size devices)
|
||||
- CXTDT-568409 - Calendar - Width control missing
|
||||
- CXTDT-568419 - Calendar - When hideContainerBorder=true, corner radius disappears
|
||||
- CXTDT-568413 - Calendar - Missing option for Transparent Background
|
||||
|
||||
1.0.65
|
||||
----------------
|
||||
- CXTDT-556996 - RadioboxGroup – Accessibility - Voice over does not render the group position
|
||||
- CXTDT-560458 - Dropdown & TextArea voiceover behaviour
|
||||
- CXTDT-560458 - Dropdown / TextArea - Accessibility
|
||||
- CXTDT-560485 - Tilelet - Accessibility
|
||||
- CXTDT-559318 - Calendar - Accessibility
|
||||
- CXTDT-563189 - Dropdown Select Readonly Border color
|
||||
- CXTDT-555854 - Dropdown Select - spacing issues
|
||||
- CXTDT-563194 - Dropdown Select - missing transparentBackground option
|
||||
- CXTDT-552834 – TileContainer – Voice over is not rendering the information.
|
||||
|
||||
1.0.64
|
||||
----------------
|
||||
|
||||
11
VDS/SupportingFiles/vds-dev.xcconfig
Normal file
@ -0,0 +1,11 @@
|
||||
//
|
||||
// vds-dev.xcconfig
|
||||
// VDS
|
||||
//
|
||||
// Created by Matt Bruce on 6/3/24.
|
||||
//
|
||||
|
||||
// Configuration settings file format documentation can be found at:
|
||||
// https://help.apple.com/xcode/#/dev745c5c974
|
||||
|
||||
#include? "../../../workspaceSettings.xcconfig"
|
||||
11
VDS/SupportingFiles/vds.xcconfig
Normal file
@ -0,0 +1,11 @@
|
||||
//
|
||||
// vds.xcconfig
|
||||
// VDS
|
||||
//
|
||||
// Created by Matt Bruce on 6/3/24.
|
||||
//
|
||||
|
||||
// Configuration settings file format documentation can be found at:
|
||||
// https://help.apple.com/xcode/#/dev745c5c974
|
||||
|
||||
#include? "../../../workspaceSettings.xcconfig"
|
||||